summaryrefslogtreecommitdiff
path: root/libcpu/arm/cortex-a/stack.c
diff options
context:
space:
mode:
authorShell <[email protected]>2023-05-14 23:48:16 +0800
committerGitHub <[email protected]>2023-05-14 23:48:16 +0800
commitb7554a70d21582cab97028477941fb692ef248b8 (patch)
tree31fde2a378142f21ceeb4593c0bb21422d5a4651 /libcpu/arm/cortex-a/stack.c
parentf7337f9db6314723d6a46b1eb72c937cd1e66537 (diff)
[libcpu][component][debug] add debug info for gdb (#7033)
Diffstat (limited to 'libcpu/arm/cortex-a/stack.c')
-rw-r--r--libcpu/arm/cortex-a/stack.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcpu/arm/cortex-a/stack.c b/libcpu/arm/cortex-a/stack.c
index ec2a51a8e8..4c955677f8 100644
--- a/libcpu/arm/cortex-a/stack.c
+++ b/libcpu/arm/cortex-a/stack.c
@@ -35,7 +35,7 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
stack_addr += sizeof(rt_uint32_t);
stack_addr = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stack_addr, 8);
stk = (rt_uint32_t *)stack_addr;
- *(--stk) = (rt_uint32_t)tentry; /* entry point */
+ *(--stk) = (rt_uint32_t)_thread_start; /* entry point */
*(--stk) = (rt_uint32_t)texit; /* lr */
*(--stk) = 0xdeadbeef; /* r12 */
*(--stk) = 0xdeadbeef; /* r11 */
@@ -48,8 +48,8 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
*(--stk) = 0xdeadbeef; /* r4 */
*(--stk) = 0xdeadbeef; /* r3 */
*(--stk) = 0xdeadbeef; /* r2 */
- *(--stk) = 0xdeadbeef; /* r1 */
- *(--stk) = (rt_uint32_t)parameter; /* r0 : argument */
+ *(--stk) = (rt_uint32_t)tentry; /* r1 : argument 2 for trampoline */
+ *(--stk) = (rt_uint32_t)parameter; /* r0 : argument 1 */
/* cpsr */
if ((rt_uint32_t)tentry & 0x01)
*(--stk) = SVCMODE | 0x20; /* thumb mode */