Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions portable/MPLAB/PIC32MZ/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ static void prvTaskExitError( void )
portDISABLE_INTERRUPTS();
for( ;; );
}

/*-----------------------------------------------------------*/

/*
Expand Down Expand Up @@ -372,3 +373,25 @@ void vPortClearInterruptMaskFromISR( UBaseType_t uxSavedStatusRegister )
#endif /* __mips_hard_float == 1 */

/*-----------------------------------------------------------*/

portFORCE_INLINE BaseType_t xPortIsInsideInterrupt( void )
{
uint32_t ulCurrentInterrupt;
BaseType_t xReturn;

/* Obtain the number of the currently executing interrupt. */
__asm volatile("mfc0 %0, $12" : "=r" (ulCurrentInterrupt));

if( ulCurrentInterrupt == 0 )
{
xReturn = pdFALSE;
}
else
{
xReturn = pdTRUE;
}

return xReturn;
}

/*-----------------------------------------------------------*/
6 changes: 6 additions & 0 deletions portable/MPLAB/PIC32MZ/portmacro.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ extern void vPortClearInterruptMaskFromISR( UBaseType_t );
#define portSET_INTERRUPT_MASK_FROM_ISR() uxPortSetInterruptMaskFromISR()
#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusRegister ) vPortClearInterruptMaskFromISR( uxSavedStatusRegister )

extern BaseType_t xPortIsInsideInterrupt( void );

#if ( __mips_hard_float == 0 ) && ( configUSE_TASK_FPU_SUPPORT == 1 )
#error configUSE_TASK_FPU_SUPPORT can only be set to 1 when the part supports a hardware FPU module.
#endif
Expand Down Expand Up @@ -221,6 +223,10 @@ extern volatile UBaseType_t uxInterruptNesting;
#define portREMOVE_STATIC_QUALIFIER
#endif

#ifndef portFORCE_INLINE
#define portFORCE_INLINE __attribute__( ( always_inline ) )
#endif

/* *INDENT-OFF* */
#ifdef __cplusplus
}
Expand Down
Loading