diff --git a/kernel/arch/arm/cortex-m3/keil/los_dispatch.S b/kernel/arch/arm/cortex-m3/keil/los_dispatch.S index ba53feb67920661f733412ab7c27d3d8f1d491d5..f6bb1088c259f73e79bd33746f784df90025d958 100644 --- a/kernel/arch/arm/cortex-m3/keil/los_dispatch.S +++ b/kernel/arch/arm/cortex-m3/keil/los_dispatch.S @@ -111,6 +111,8 @@ HalTaskSchedule LDR R0, =OS_NVIC_INT_CTRL LDR R1, =OS_NVIC_PENDSVSET STR R1, [R0] + DSB + ISB BX LR HalPendSV diff --git a/kernel/arch/arm/cortex-m33/gcc/los_dispatch.S b/kernel/arch/arm/cortex-m33/gcc/los_dispatch.S index 298e7409f81d4907c892353473b9c1a06865377d..309fdde42a93291e6756f7dabb7cff371864df6e 100644 --- a/kernel/arch/arm/cortex-m33/gcc/los_dispatch.S +++ b/kernel/arch/arm/cortex-m33/gcc/los_dispatch.S @@ -142,6 +142,8 @@ HalTaskSchedule: ldr r0, =OS_NVIC_INT_CTRL ldr r1, =OS_NVIC_PENDSVSET str r1, [r0] + dsb + isb bx lr .fnend diff --git a/kernel/arch/arm/cortex-m4/gcc/los_dispatch.S b/kernel/arch/arm/cortex-m4/gcc/los_dispatch.S index 648cb7c9d164a634e0322d5a5f7da180ca47f844..5116cd9c8e32ed117038972c08613c7d357f33c7 100644 --- a/kernel/arch/arm/cortex-m4/gcc/los_dispatch.S +++ b/kernel/arch/arm/cortex-m4/gcc/los_dispatch.S @@ -145,6 +145,8 @@ HalTaskSchedule: ldr r1, =OS_NVIC_PENDSVSET str r1, [r0] bx lr + dsb + isb .fnend diff --git a/kernel/arch/arm/cortex-m4/iar/los_dispatch.S b/kernel/arch/arm/cortex-m4/iar/los_dispatch.S index e4c885279814e33a465f9fa93e9c0c9073fffe0c..dac97f6ebf5931bba311c00372fff693b1d8e17c 100755 --- a/kernel/arch/arm/cortex-m4/iar/los_dispatch.S +++ b/kernel/arch/arm/cortex-m4/iar/los_dispatch.S @@ -124,6 +124,8 @@ HalTaskSchedule LDR R0, =OS_NVIC_INT_CTRL LDR R1, =OS_NVIC_PENDSVSET STR R1, [R0] + DSB + ISB BX LR HalPendSV diff --git a/kernel/arch/arm/cortex-m7/gcc/los_dispatch.S b/kernel/arch/arm/cortex-m7/gcc/los_dispatch.S index 298e7409f81d4907c892353473b9c1a06865377d..309fdde42a93291e6756f7dabb7cff371864df6e 100644 --- a/kernel/arch/arm/cortex-m7/gcc/los_dispatch.S +++ b/kernel/arch/arm/cortex-m7/gcc/los_dispatch.S @@ -142,6 +142,8 @@ HalTaskSchedule: ldr r0, =OS_NVIC_INT_CTRL ldr r1, =OS_NVIC_PENDSVSET str r1, [r0] + dsb + isb bx lr .fnend diff --git a/kernel/arch/arm/cortex-m7/iar/los_dispatch.S b/kernel/arch/arm/cortex-m7/iar/los_dispatch.S index e4c885279814e33a465f9fa93e9c0c9073fffe0c..dac97f6ebf5931bba311c00372fff693b1d8e17c 100755 --- a/kernel/arch/arm/cortex-m7/iar/los_dispatch.S +++ b/kernel/arch/arm/cortex-m7/iar/los_dispatch.S @@ -124,6 +124,8 @@ HalTaskSchedule LDR R0, =OS_NVIC_INT_CTRL LDR R1, =OS_NVIC_PENDSVSET STR R1, [R0] + DSB + ISB BX LR HalPendSV