[Work In Progress] Adding the xPortIsInsideInterrupt to the PIC32MZ port

This commit is contained in:
Kody Stribrny 2025-07-25 16:55:00 -07:00
parent 32e581636f
commit 9863019a0b
2 changed files with 24 additions and 0 deletions

View file

@ -372,3 +372,25 @@ void vPortClearInterruptMaskFromISR( UBaseType_t uxSavedStatusRegister )
#endif /* __mips_hard_float == 1 */
/*-----------------------------------------------------------*/
__attribute__((always_inline)) static 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;
}
/*-----------------------------------------------------------*/

View file

@ -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