mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(xtensa): fix registers curruption on context switch
a6, a7 registers may be corrupted on multicore ESP chips while FreeRTOS Kernel SMP context switch
This commit is contained in:
parent
e9ee047908
commit
06ac8505b9
@ -1045,13 +1045,17 @@ locking.
|
||||
bnone a2, a0, .L_xt_coproc_done /* if no match then done */
|
||||
and a2, a2, a0 /* a2 = which CPs to restore */
|
||||
extui a2, a2, 0, 8 /* extract low 8 bits */
|
||||
#if portNUM_PROCESSORS == 1
|
||||
s32i a6, sp, XT_STK_A6 /* save extra needed regs */
|
||||
s32i a7, sp, XT_STK_A7
|
||||
#endif /* portNUM_PROCESSORS == 1 */
|
||||
s32i a13, sp, XT_STK_A13
|
||||
s32i a14, sp, XT_STK_A14
|
||||
call0 _xt_coproc_restorecs /* restore CP registers */
|
||||
#if portNUM_PROCESSORS == 1
|
||||
l32i a6, sp, XT_STK_A6 /* restore saved registers */
|
||||
l32i a7, sp, XT_STK_A7
|
||||
#endif /* portNUM_PROCESSORS == 1 */
|
||||
l32i a13, sp, XT_STK_A13
|
||||
l32i a14, sp, XT_STK_A14
|
||||
j .L_xt_coproc_done
|
||||
|
Loading…
Reference in New Issue
Block a user