关于STM32的栈的地址 提问

2019-08-19 17:00发布

在stm32中栈的高地址是MSP=SRAMBASE+WR+ZI,让局部变量增加时地址就会增加,但是函数中的形参属于局部变量同样存放在栈中却无法通过编译的WE或ZI显示,那么这样的局部变量是否在ARAMBASE——MSP之间呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
钱辰STM32
1楼-- · 2019-08-20 18:26
mill 发表于 2017-5-10 16:24
WR-DATA跟ZI-DATA是什么?

http://www.openedv.com/thread-24152-1-1.html (在这个帖子里有)
liuchang
2楼-- · 2019-08-20 23:47
楼主语文是谁教的...语句能通顺嘛...
另外,谁告诉你WR和ZI是放在栈里了?
钱辰STM32
3楼-- · 2019-08-21 00:09
 精彩回答 2  元偷偷看……
钱辰STM32
4楼-- · 2019-08-21 01:23
钱辰STM32 发表于 2017-5-10 18:49
刚刚发现好像看错了 WR跟ZI应该是全局变量不在栈里面。但是还是不理解  为什么msp的值等于WR+ZI?因为栈 ...

主要就是有一个疑问  当我使用的全局变量跟我的栈向下的冲突加起来超过了MSP的内存容量是不是就会出问题?
JUSTNIUB
5楼-- · 2019-08-21 01:25
按照我的理解,全局变量是包含在魔术棒选项 ->target->Iram部分的。

引起冲突的原因是函数中参数和局部变量定义的太多,导致Stack空间不够,
钱辰STM32
6楼-- · 2019-08-21 07:12
liuchang 发表于 2017-5-10 21:41
这就是基本功了。。。建议你看看权威指南
简单说下。。。你刚才描述的问题其实可以换个方向思考
为什么不 ...

确实  因为做东西的时候用不到M3权威指南  所以很多CPU上的知识不能理解。

一周热门 更多>