嵌入式技术论坛
直播中

qjqb

8年用户 1281经验值
擅长:5762
私信 关注
[问答]

使用rtt创建线程是不是非常容易发生堆栈溢出呀

请教一下: 使用rtt创建线程,线程堆栈大小10240
系统初始化后线程的相关信息如下:

1.jpg

这个时候thread->sp = 0x200093DC

通过threa->stack_addr + stack_size 计算得到线程堆栈 尾地址 应为 0x2000948C

离线程初始化后的thread->sp = 0x200093DC 非常近!

那么在系统运行后,这个线程是不是非常容易发生堆栈溢出呀?

回帖(2)

李军

2022-8-23 14:30:53
Cortex-M系列芯片栈是满减的;栈最高位置是:(0x20006C8C + 0x2800);现在栈指针为:0x200093DC,随着程序的运行,sp的值是动态调整的;只要sp的值不小于0x20006C8C,说明栈是没有溢出的。
举报

王强

2022-8-23 14:31:08
ARM栈是向下生长的,才用几百字节。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分