[STM8] stm8 的堆栈确切长度和地址是在哪里设置的?

[复制链接]
6067|21
 楼主| wenfen 发表于 2016-1-31 18:45 | 显示全部楼层 |阅读模式
tm8 的堆栈确切长度和地址是在哪里设置的?
zhuhuis 发表于 2016-1-31 18:46 | 显示全部楼层
这个网上答案太多了
tian111 发表于 2016-1-31 18:46 | 显示全部楼层
会占用内存吗?
 楼主| wenfen 发表于 2016-1-31 18:50 | 显示全部楼层
stvd里面有 short stack(+mods0)之类的选项
宋倩2010 发表于 2016-1-31 18:50 | 显示全部楼层
这个并不明确
担心由于 变量 和 堆栈 在内存区交叉重叠了,会导致程序概率性的异常
 楼主| wenfen 发表于 2016-1-31 18:51 | 显示全部楼层
我目前用的是 stm8sf103p,在写程序的过程中,遇到许多次奇奇怪怪的不符合逻辑的现象
chenho 发表于 2016-1-31 18:52 | 显示全部楼层
还碰到过什么吗
 楼主| wenfen 发表于 2016-1-31 18:52 | 显示全部楼层
有时候就仅仅是前面增加一个unsigned char hehe; 这样的语句(什么都不干),就会导致程序异常,去掉就好了
gongche 发表于 2016-1-31 18:52 | 显示全部楼层
堆栈当然也在内存里。从RAM的高地址开始(栈顶)。
huwr 发表于 2016-1-31 18:52 | 显示全部楼层
STM8的参考手册里应该有介绍,楼主可以去看看。
huanghuac 发表于 2016-1-31 18:53 | 显示全部楼层
Stack的大小在link文件里分配。使用STVD,可以在各个peoject的settings菜单,linker页中进行配置(category选择input).
happy_10 发表于 2016-1-31 18:53 | 显示全部楼层
怎么设置应该可以从STVD的用户手册里找到。
冰清玉洁 发表于 2016-1-31 18:53 | 显示全部楼层
堆栈是占内存的,编译前设置,应该是在程序里.有个地方设置.具体不记得了.看到就知道.你查查.
 楼主| wenfen 发表于 2016-1-31 18:53 | 显示全部楼层
之前一直没想到在线debug看一下函数内的变量地址就知道stack是不是占用内存,以及具体占用的地址
happy_10 发表于 2016-1-31 18:54 | 显示全部楼层
其实呢
 楼主| wenfen 发表于 2016-1-31 18:54 | 显示全部楼层
最后证明是从ram的屁股,即高地址0x3ff(假设1k的ram)开始占用
zhuhuis 发表于 2016-1-31 18:55 | 显示全部楼层
研究下stvd的手册,网络上似乎没个清晰的说法
 楼主| wenfen 发表于 2016-1-31 18:55 | 显示全部楼层
我想可能stvd真没有随意设置stack大小的办法
宋倩2010 发表于 2016-1-31 18:55 | 显示全部楼层
编译器有个什么 short stack  long stack的选项,但是没具体的大小可以设置
chenho 发表于 2016-1-31 18:55 | 显示全部楼层
手册快速浏览了一遍,没有发现STVD显式控制stack大小的地方
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部