Add barrier instructions to GCC CM3/4 code.

pull/1/head
Richard Barry 12 years ago
parent a7fb62cb9c
commit 6d20e2b5cd

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

Loading…
Cancel
Save