关于线程堆栈大小以及溢出问题

发布于 2020-12-06 15:15:22

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

这个时候thread->sp = 0x200093DC

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

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

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

查看更多

关注者
0
被浏览
281
caihaitao
caihaitao 2020-12-07

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

2 个回答
aozima
aozima 2020-12-06
拒绝白嫖,拒绝键盘侠!

ARM栈是向下生长的,才用几百字节。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览