@ -81,6 +81,9 @@
# define portNVIC_PENDSV_PRI ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 16 )
# define portNVIC_SYSTICK_PRI ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 24 )
/* Masks off all bits but the VECTACTIVE bits in the ICSR register. */
# define portVECTACTIVE_MASK ( 0x1FUL )
/* Constants required to manipulate the VFP. */
# define portFPCCR ( ( volatile uint32_t * ) 0xe000ef34 ) /* Floating point context control register. */
# define portASPEN_AND_LSPEN_BITS ( 0x3UL << 30UL )
@ -240,6 +243,16 @@ void vPortEnterCritical( void )
ulCriticalNesting + + ;
__DSB ( ) ;
__ISB ( ) ;
/* This is not the interrupt safe version of the enter critical function so
assert ( ) if it is being called from an interrupt context . Only API
functions that end in " FromISR " can be used in an interrupt . Only assert if
the critical nesting count is 1 to protect against recursive calls if the
assert function also uses a critical section . */
if ( ulCriticalNesting = = 1 )
{
configASSERT ( ( ( * ( portNVIC_INT_CTRL ) ) & portVECTACTIVE_MASK ) = = 0 ) ;
}
}
/*-----------------------------------------------------------*/