mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-08-06 15:15:15 +08:00
Merge branch 'fix/fix_enter_first_task_error' into 'master'
Fix entering first stack cover wrong memory See merge request sdk/ESP8266_RTOS_SDK!529
This commit is contained in:
@ -236,6 +236,8 @@ bool interrupt_is_disable(void);
|
|||||||
/* Get tick rate per second */
|
/* Get tick rate per second */
|
||||||
uint32_t xPortGetTickRateHz(void);
|
uint32_t xPortGetTickRateHz(void);
|
||||||
|
|
||||||
|
void _xt_enter_first_task(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -444,3 +444,26 @@ _xt_clear_ints:
|
|||||||
|
|
||||||
RET(16)
|
RET(16)
|
||||||
|
|
||||||
|
|
||||||
|
.section .text._xt_enter_first_task, "ax"
|
||||||
|
.globl _xt_enter_first_task
|
||||||
|
.type _xt_enter_first_task, @function
|
||||||
|
.align 4
|
||||||
|
_xt_enter_first_task:
|
||||||
|
movi sp, pxCurrentTCB
|
||||||
|
l32i sp, sp, 0
|
||||||
|
l32i sp, sp, 0
|
||||||
|
|
||||||
|
movi a14, pxCurrentTCB
|
||||||
|
l32i a14, a14, 0
|
||||||
|
addi a15, sp, XT_STK_FRMSZ
|
||||||
|
s32i a15, a14 ,0
|
||||||
|
|
||||||
|
movi a0, _xt_context_restore
|
||||||
|
callx0 a0
|
||||||
|
|
||||||
|
l32i a14, sp, XT_STK_A14
|
||||||
|
l32i a15, sp, XT_STK_A15
|
||||||
|
|
||||||
|
l32i a0, sp, XT_STK_EXIT
|
||||||
|
ret
|
||||||
|
@ -210,7 +210,7 @@ portBASE_TYPE xPortStartScheduler(void)
|
|||||||
vTaskSwitchContext();
|
vTaskSwitchContext();
|
||||||
|
|
||||||
/* Restore the context of the first task that is going to run. */
|
/* Restore the context of the first task that is going to run. */
|
||||||
XT_RTOS_INT_EXIT();
|
_xt_enter_first_task();
|
||||||
|
|
||||||
/* Should not get here as the tasks are now running! */
|
/* Should not get here as the tasks are now running! */
|
||||||
return pdTRUE;
|
return pdTRUE;
|
||||||
|
Reference in New Issue
Block a user