mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Add barrier instructions to GCC CM3/4 code.
This commit is contained in:
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…
Reference in a new issue