Cortex M4F PendSV with FPU

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Cortex M4F PendSV with FPU

1,100件の閲覧回数
LijieDu
Contributor II

xPortPendSVHandler:

ldr r3, =pxCurrentTCB
ldr r2, [r3] /* r2 = pxCurrentTCB. */
ldr r1, [r2] /* r1 = Location where the context should be saved. */

/*------------ Save Context. ----------- */
mrs r3, control
mrs r0, psp
isb

add r0, r0, #0x20 /* Move r0 to location where s0 is saved. */
tst lr, #0x10
ittt eq
vstmiaeq r1!, {s16-s31} /* Store s16-s31. */
vldmiaeq r0, {s0-s16} /* Copy hardware saved FP context into s0-s16. */
vstmiaeq r1!, {s0-s16} /* Store hardware saved FP context. */
sub r0, r0, #0x20 /* Set r0 back to the location of hardware saved context. */

stmia r1!, {r3-r11, lr} /* Store CONTROL register, r4-r11 and LR. */
ldmia r0, {r4-r11} /* Copy hardware saved context into r4-r11. */
stmia r1!, {r0, r4-r11} /* Store original PSP (after hardware has saved context) and the hardware saved context. */
str r1, [r2] /* Save the location from where the context should be restored as the first member of TCB. */

/*---------- Select next task. --------- */
mov r0, #configMAX_SYSCALL_INTERRUPT_PRIORITY
#if ( configENABLE_ERRATA_837070_WORKAROUND == 1 )
cpsid i /* ARM Cortex-M7 r0p1 Errata 837070 workaround. */
#endif
msr basepri, r0
dsb
isb
#if ( configENABLE_ERRATA_837070_WORKAROUND == 1 )
cpsie i /* ARM Cortex-M7 r0p1 Errata 837070 workaround. */
#endif
bl vTaskSwitchContext
mov r0, #0
msr basepri, r0

/*------------ Program MPU. ------------ */
ldr r3, =pxCurrentTCB
ldr r2, [r3] /* r2 = pxCurrentTCB. */
add r2, r2, #4 /* r2 = Second item in the TCB which is xMPUSettings. */

dmb /* Complete outstanding transfers before disabling MPU. */
ldr r0, =0xe000ed94 /* MPU_CTRL register. */
ldr r3, [r0] /* Read the value of MPU_CTRL. */
bic r3, #1 /* r3 = r3 & ~1 i.e. Clear the bit 0 in r3. */
str r3, [r0] /* Disable MPU. */

ldr r0, =0xe000ed9c /* Region Base Address register. */
ldmia r2!, {r4-r11} /* Read 4 sets of MPU registers [MPU Region # 0 - 3]. */
stmia r0, {r4-r11} /* Write 4 sets of MPU registers [MPU Region # 0 - 3]. */

#ifdef configTOTAL_MPU_REGIONS
#if ( configTOTAL_MPU_REGIONS == 16 )
ldmia r2!, {r4-r11} /* Read 4 sets of MPU registers [MPU Region # 4 - 7]. */
stmia r0, {r4-r11} /* Write 4 sets of MPU registers. [MPU Region # 4 - 7]. */
ldmia r2!, {r4-r11} /* Read 4 sets of MPU registers [MPU Region # 8 - 11]. */
stmia r0, {r4-r11} /* Write 4 sets of MPU registers. [MPU Region # 8 - 11]. */
#endif /* configTOTAL_MPU_REGIONS == 16. */
#endif

ldr r0, =0xe000ed94 /* MPU_CTRL register. */
ldr r3, [r0] /* Read the value of MPU_CTRL. */
orr r3, #1 /* r3 = r3 | 1 i.e. Set the bit 0 in r3. */
str r3, [r0] /* Enable MPU. */
dsb /* Force memory writes before continuing. */

/*---------- Restore Context. ---------- */
ldr r3, =pxCurrentTCB
ldr r2, [r3] /* r2 = pxCurrentTCB. */
ldr r1, [r2] /* r1 = Location of saved context in TCB. */

ldmdb r1!, {r0, r4-r11} /* r0 contains PSP after the hardware had saved context. r4-r11 contain hardware saved context. */
msr psp, r0
stmia r0!, {r4-r11} /* Copy the hardware saved context on the task stack. */
ldmdb r1!, {r3-r11, lr} /* r3 contains CONTROL register. r4-r11 and LR restored. */
msr control, r3

tst lr, #0x10
ittt eq
vldmdbeq r1!, {s0-s16} /* s0-s16 contain hardware saved FP context. */
vstmiaeq r0!, {s0-s16} /* Copy hardware saved FP context on the task stack. */
vldmdbeq r1!, {s16-s31} /* Restore s16-s31. */

str r1, [r2] /* Save the location where the context should be saved next as the first member of TCB. */
bx lr

 

I don't understand why it is S0~S16?

S0~S15 and status reg are pushed into stack by hardware, why copy it again?

Hope get your direction and advice!

0 件の賞賛
返信
3 返答(返信)

1,075件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

There seems to be an error in the code. Could you please indicate where this code is taken from?

0 件の賞賛
返信

1,064件の閲覧回数
LijieDu
Contributor II

LijieDu_0-1753141549396.png

 Hi davidtosenovjan

It comes from :FreeRTOS-Kernel/portable/IAR/ARM_CM4F_MPU at main · FreeRTOS/FreeRTOS-Kernel · GitHub

Hope to get your advice, thanks very much

0 件の賞賛
返信

1,040件の閲覧回数
davidtosenovjan
NXP TechSupport
NXP TechSupport

The code in the FreeRTOS-Kernel/portable/IAR/ARM_CM4F_MPU directory is maintained by Amazon.com, Inc.

You can do so by opening an issue or a pull request on the GitHub repository. The FreeRTOS team actively monitors these channels.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2136881%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFPU%E6%90%AD%E8%BC%89Cortex%20M4F%20PendSV%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2136881%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ExPortPendSVHandler%3A%3C%2FP%3E%3CP%3Eldr%20r3%E3%80%81%3DpxCurrentTCB%3CBR%20%2F%3E%20ldr%20r2%2C%20%5Br3%5D%20%2F*%20r2%20%3D%20pxCurrentTCB%E3%80%82*%2F%3CBR%20%2F%3E%20ldr%20r1%2C%20%5Br2%5D%20%2F*%20r1%20%3D%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E5%A0%B4%E6%89%80%E3%80%82*%2F%3C%2FP%3E%3CP%3E%2F*------------%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82-----------%20*%2F%3CBR%20%2F%3E%20Mrs%20R3%E3%80%81%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%3CBR%20%2F%3Er0%E3%81%95%E3%82%93%E3%80%81psp%3CBR%20%2F%3E%E3%82%A4%E3%82%B9%E3%83%96%3C%2FP%3E%3CP%3Eadd%20r0%2C%20r0%2C%20%230x20%20%2F*%20r0%E3%82%92s0%E3%81%8C%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E6%89%80%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20tst%20lr%E3%80%81%230x10%3CBR%20%2F%3E%20ittt%20eq%3CBR%20%2F%3E%20vstmiaeq%20r1!%2C%20%7Bs16-s31%7D%20%2F*%20s16-s31%20%E3%82%92%E6%A0%BC%E7%B4%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20%3CFONT%20color%3D%22%23FF0000%22%3E%3CSTRONG%3Evldmiaeq%20r0%2C%20%7Bs0-s16%7D%20%2F*%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9FFP%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92s0-s16%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20*%2F%3C%2FSTRONG%3E%3C%2FFONT%3E%3CBR%20%2F%3E%20vstmiaeq%20r1!%2C%20%7Bs0-s16%7D%20%2F*%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9FFP%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20sub%20r0%2C%20r0%2C%20%230x20%20%2F*%20r0%20%E3%82%92%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E5%A0%B4%E6%89%80%E3%81%AB%E6%88%BB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FP%3E%3CP%3Estmia%20r1!%2C%20%7Br3-r11%2C%20lr%7D%20%2F*%20CONTROL%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%80%81r4-r11%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3LR%E3%82%92%E6%A0%BC%E7%B4%8D%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20ldmia%20r0%2C%20%7Br4-r11%7D%20%2F*%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%20r4-r11%20%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20stmia%20r1!%2C%20%7Br0%2C%20r4-r11%7D%20%2F*%20%E5%85%83%E3%81%AE%20PSP%20(%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%9F%E5%BE%8C)%20%E3%81%A8%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20str%20r1%2C%20%5Br2%5D%20%2F*%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%BE%A9%E5%85%83%E3%81%99%E3%82%8B%E5%A0%B4%E6%89%80%E3%82%92TCB%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FP%3E%3CP%3E%2F*----------%20%E6%AC%A1%E3%81%AE%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82---------%20*%2F%3CBR%20%2F%3E%20mov%20r0%E3%80%81%23configMAX_SYSCALL_INTERRUPT_PRIORITY%3CBR%20%2F%3E%20%23if%20(%20configENABLE_ERRATA_837070_WORKAROUND%20%3D%3D%201%20)%3CBR%20%2F%3E%20cpsid%20i%20%2F*%20ARM%20Cortex-M7%20r0p1%20Errata%20837070%20%E3%81%AE%E5%9B%9E%E9%81%BF%E7%AD%96%E3%80%82*%2F%3CBR%20%2F%3E%20%23endif%3CBR%20%2F%3E%20msr%20%E3%83%99%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AA%E3%80%81r0%3CBR%20%2F%3E%20dsb%3CBR%20%2F%3E%E3%82%A4%E3%82%B9%E3%83%96%3CBR%20%2F%3E%23if%20(%20configENABLE_ERRATA_837070_WORKAROUND%20%3D%3D%201%20)%3CBR%20%2F%3E%20cpsie%20i%20%2F*%20ARM%20Cortex-M7%20r0p1%20Errata%20837070%20%E3%81%AE%E5%9B%9E%E9%81%BF%E7%AD%96%E3%80%82*%2F%3CBR%20%2F%3E%20%23endif%3CBR%20%2F%3E%20bl%20v%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%3CBR%20%2F%3E%E7%A7%BB%E5%8B%95%20r0%2C%20%230%3CBR%20%2F%3E%20msr%20%E3%83%99%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AA%E3%80%81r0%3C%2FP%3E%3CP%3E%2F*------------%20MPU%20%E3%82%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%97%E3%81%BE%E3%81%99%E3%80%82------------%20*%2F%3CBR%20%2F%3E%20ldr%20r3%E3%80%81%3DpxCurrentTCB%3CBR%20%2F%3E%20ldr%20r2%2C%20%5Br3%5D%20%2F*%20r2%20%3D%20pxCurrentTCB%E3%80%82*%2F%3CBR%20%2F%3E%20add%20r2%2C%20r2%2C%20%234%20%2F*%20r2%20%3D%20TCB%20%E5%86%85%E3%81%AE%202%20%E7%95%AA%E7%9B%AE%E3%81%AE%E9%A0%85%E7%9B%AE%20(xMPUSettings)%E3%80%82*%2F%3C%2FP%3E%3CP%3Edmb%20%2F*%20MPU%20%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E6%9C%AA%E5%87%A6%E7%90%86%E3%81%AE%E8%BB%A2%E9%80%81%E3%82%92%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20ldr%20r0%2C%20%3D0xe000ed94%20%2F*%20MPU_CTRL%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%80%82*%2F%3CBR%20%2F%3E%20ldr%20r3%2C%20%5Br0%5D%20%2F*%20MPU_CTRL%E3%81%AE%E5%80%A4%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20bic%20r3%2C%20%231%20%2F*%20r3%20%3D%20r3%20%26amp%3B%20~1%20%E3%81%A4%E3%81%BE%E3%82%8Ar3%20%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%200%20%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20str%20r3%2C%20%5Br0%5D%20%2F*%20MPU%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FP%3E%3CP%3Eldr%20r0%2C%20%3D0xe000ed9c%20%2F*%20%E9%A0%98%E5%9F%9F%E3%83%99%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%80%82*%2F%3CBR%20%2F%3E%20ldmia%20r2!%2C%20%7Br4-r11%7D%20%2F*%20MPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF4%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%99%5BMPU%E9%A0%98%E5%9F%9F%230%20-%203%5D%E3%80%82%20*%2F%3CBR%20%2F%3E%20stmia%20r0%2C%20%7Br4-r11%7D%20%2F*%20MPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF4%E3%82%BB%E3%83%83%E3%83%88%5BMPU%E9%A0%98%E5%9F%9F%230%20-%203%5D%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%BE%E3%81%99%E3%80%82%20*%2F%3C%2FP%3E%3CP%3E%23ifdef%20configTOTAL_MPU_REGIONS%3CBR%20%2F%3E%20%23if%20(%20configTOTAL_MPU_REGIONS%20%3D%3D%2016%20)%3CBR%20%2F%3E%20ldmia%20r2!%2C%20%7Br4-r11%7D%20%2F*%20MPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF4%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%99%5BMPU%E9%A0%98%E5%9F%9F%234%20-%207%5D%E3%80%82%20*%2F%3CBR%20%2F%3E%20stmia%20r0%2C%20%7Br4-r11%7D%20%2F*%204%E3%82%BB%E3%83%83%E3%83%88%E3%81%AEMPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%BE%E3%81%99%E3%80%82%5BMPU%20%E9%A0%98%E5%9F%9F%20%23%204%20-%207%5D%E3%80%82*%2F%3CBR%20%2F%3E%20ldmia%20r2!%2C%20%7Br4-r11%7D%20%2F*%20MPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF4%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%99%5BMPU%E9%A0%98%E5%9F%9F%238%20-%2011%5D%E3%80%82%20*%2F%3CBR%20%2F%3E%20stmia%20r0%2C%20%7Br4-r11%7D%20%2F*%204%E3%82%BB%E3%83%83%E3%83%88%E3%81%AEMPU%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%82%92%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%81%BE%E3%81%99%E3%80%82%5BMPU%E9%A0%98%E5%9F%9F%238%20-%2011%5D%E3%80%82*%2F%3CBR%20%2F%3E%20%23endif%20%2F*%20configTOTAL_MPU_REGIONS%20%3D%3D%2016.%20*%2F%3CBR%20%2F%3E%20%23endif%3C%2FP%3E%3CP%3Eldr%20r0%2C%20%3D0xe000ed94%20%2F*%20MPU_CTRL%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%80%82*%2F%3CBR%20%2F%3E%20ldr%20r3%2C%20%5Br0%5D%20%2F*%20MPU_CTRL%E3%81%AE%E5%80%A4%E3%82%92%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20orr%20r3%2C%20%231%20%2F*%20r3%20%3D%20r3%20%7C%201%20%E3%81%A4%E3%81%BE%E3%82%8Ar3%20%E3%81%AE%E3%83%93%E3%83%83%E3%83%88%200%20%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20str%20r3%2C%20%5Br0%5D%20%2F*%20MPU%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20dsb%20%2F*%20%E7%B6%9A%E8%A1%8C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%83%A1%E3%83%A2%E3%83%AA%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FP%3E%3CP%3E%2F*----------%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E5%BE%A9%E5%85%83%E3%81%97%E3%81%BE%E3%81%99%E3%80%82----------%20*%2F%3CBR%20%2F%3E%20ldr%20r3%E3%80%81%3DpxCurrentTCB%3CBR%20%2F%3E%20ldr%20r2%2C%20%5Br3%5D%20%2F*%20r2%20%3D%20pxCurrentTCB%E3%80%82*%2F%3CBR%20%2F%3E%20ldr%20r1%2C%20%5Br2%5D%20%2F*%20r1%20%3D%20TCB%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E5%A0%B4%E6%89%80%E3%80%82*%2F%3C%2FP%3E%3CP%3Eldmdb%20r1!%2C%20%7Br0%2C%20r4-r11%7D%20%2F*%20r0%20%E3%81%AB%E3%81%AF%E3%80%81%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%9F%E5%BE%8C%E3%81%AE%20PSP%20%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82r4-r11%20%E3%81%AB%E3%81%AF%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20msr%20psp%E3%80%81r0%3CBR%20%2F%3E%20stmia%20r0!%2C%20%7Br4-r11%7D%20%2F*%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E3%82%BF%E3%82%B9%E3%82%AF%20%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20ldmdb%20r1!%2C%20%7Br3-r11%2C%20lr%7D%20%2F*%20r3%20%E3%81%AB%E3%81%AF%20CONTROL%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82r4-r11%E3%81%A8LR%E3%81%8C%E5%BE%A9%E5%85%83%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82*%2F%3CBR%20%2F%3E%20MSR%20%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%80%81R3%3C%2FP%3E%3CP%3Etst%20lr%E3%80%81%230x10%3CBR%20%2F%3E%20ittt%20eq%3CBR%20%2F%3E%20vldmdbeq%20r1!%2C%20%7Bs0-s16%7D%20%2F*%20s0-s16%20%E3%81%AB%E3%81%AF%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%20FP%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20vstmiaeq%20r0!%2C%20%7Bs0-s16%7D%20%2F*%20%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%9F%20FP%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E3%82%BF%E3%82%B9%E3%82%AF%20%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20vldmdbeq%20r1!%2C%20%7Bs16-s31%7D%20%2F*%20s16-s31%E3%82%92%E5%BE%A9%E5%85%83%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3C%2FP%3E%3CP%3Estr%20r1%2C%20%5Br2%5D%20%2F*%20%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E6%AC%A1%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E5%A0%B4%E6%89%80%E3%82%92TCB%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%A8%E3%81%97%E3%81%A6%E4%BF%9D%E5%AD%98%E3%81%97%E3%81%BE%E3%81%99%E3%80%82*%2F%3CBR%20%2F%3E%20bx%20lr%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSTRONG%3E%E3%81%AA%E3%81%9CS0%EF%BD%9E%20%3CFONT%20color%3D%22%23FF0000%22%3ES16%3C%2FFONT%3E%E3%81%AA%E3%81%AE%E3%81%8B%E5%88%86%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3ES0%E3%80%9CS15%E3%81%8A%E3%82%88%E3%81%B3%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%81%AF%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%AB%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%AA%E3%81%9C%E5%86%8D%E5%BA%A6%E3%82%B3%E3%83%94%E3%83%BC%E3%81%99%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E6%8C%87%E5%B0%8E%E3%81%A8%E3%82%A2%E3%83%89%E3%83%90%E3%82%A4%E3%82%B9%E3%82%92%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%EF%BC%81%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2138321%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cortex%20M4F%20PendSV%20with%20FPU%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2138321%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EFreeRTOS-Kernel%2F%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AB%2FIAR%2FARM_CM4F_MPU%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AFAmazon.com%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%3C%2FP%3E%0A%3CP%3ECAN%20SO%E3%81%AF%E3%80%81GitHub%20%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%A7%E5%95%8F%E9%A1%8C%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%97%E3%83%AB%20%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%82%92%E9%96%8B%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82FreeRTOS%20%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AF%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E3%82%92%E7%A9%8D%E6%A5%B5%E7%9A%84%E3%81%AB%E7%9B%A3%E8%A6%96%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137775%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cortex%20M4F%20PendSV%20with%20FPU%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137775%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22LijieDu_0-1753141549396.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22LijieDu_0-1753141549396.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F348648i9625467BF90FF6EB%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22LijieDu_0-1753141549396.png%22%20alt%3D%22LijieDu_0-1753141549396.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81davidtosenovjan%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E3%80%81%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FFreeRTOS%2FFreeRTOS-Kernel%2Ftree%2Fmain%2Fportable%2FIAR%2FARM_CM4F_MPU%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EFreeRTOS-Kernel%2F%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AB%2FIAR%2FARM_CM4F_MPU%20%E3%81%AE%E3%83%A1%E3%82%A4%E3%83%B3%E3%80%81FreeRTOS%2FFreeRTOS-Kernel%E3%80%81GitHub%3C%2FA%3E%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%89%E3%83%90%E3%82%A4%E3%82%B9%E3%82%92%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2137345%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Cortex%20M4F%20PendSV%20with%20FPU%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2137345%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%20class%3D%22HwtZe%22%3E%3CSPAN%20class%3D%22jCAhz%20ChMk0b%22%3E%3CSPAN%20class%3D%22ryNqvb%22%3E%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E3%81%82%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22jCAhz%20ChMk0b%22%3E%3CSPAN%20class%3D%22ryNqvb%22%3E%E3%81%93%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E3%81%A9%E3%81%93%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%95%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%8B%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E