|
|
|
@ -259,6 +259,11 @@ void vPortYieldFromISR( void )
|
|
|
|
|
{
|
|
|
|
|
/* Set a PendSV to request a context switch. */
|
|
|
|
|
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
|
|
|
|
|
|
|
|
|
|
/* Barriers are normally not required but do ensure the code is completely
|
|
|
|
|
within the specified behaviour for the architecture. */
|
|
|
|
|
__asm volatile( "dsb" );
|
|
|
|
|
__asm volatile( "isb" );
|
|
|
|
|
}
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
@ -266,6 +271,8 @@ void vPortEnterCritical( void )
|
|
|
|
|
{
|
|
|
|
|
portDISABLE_INTERRUPTS();
|
|
|
|
|
uxCriticalNesting++;
|
|
|
|
|
__asm volatile( "dsb" );
|
|
|
|
|
__asm volatile( "isb" );
|
|
|
|
|
}
|
|
|
|
|
/*-----------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
@ -438,6 +445,8 @@ void xPortSysTickHandler( void )
|
|
|
|
|
if( xModifiableIdleTime > 0 )
|
|
|
|
|
{
|
|
|
|
|
__asm volatile( "wfi" );
|
|
|
|
|
__asm volatile( "dsb" );
|
|
|
|
|
__asm volatile( "isb" );
|
|
|
|
|
}
|
|
|
|
|
configPOST_SLEEP_PROCESSING( xExpectedIdleTime );
|
|
|
|
|
|
|
|
|
|