打印
[STM8]

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

[复制链接]
5012|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)之类的选项

使用特权

评论回复
5
宋倩2010| | 2016-1-31 18:50 | 只看该作者
这个并不明确
担心由于 变量 和 堆栈 在内存区交叉重叠了,会导致程序概率性的异常

使用特权

评论回复
6
wenfen|  楼主 | 2016-1-31 18:51 | 只看该作者
我目前用的是 stm8sf103p,在写程序的过程中,遇到许多次奇奇怪怪的不符合逻辑的现象

使用特权

评论回复
7
chenho| | 2016-1-31 18:52 | 只看该作者
还碰到过什么吗

使用特权

评论回复
8
wenfen|  楼主 | 2016-1-31 18:52 | 只看该作者
有时候就仅仅是前面增加一个unsigned char hehe; 这样的语句(什么都不干),就会导致程序异常,去掉就好了

使用特权

评论回复
9
gongche| | 2016-1-31 18:52 | 只看该作者
堆栈当然也在内存里。从RAM的高地址开始(栈顶)。

使用特权

评论回复
10
huwr| | 2016-1-31 18:52 | 只看该作者
STM8的参考手册里应该有介绍,楼主可以去看看。

使用特权

评论回复
11
huanghuac| | 2016-1-31 18:53 | 只看该作者
Stack的大小在link文件里分配。使用STVD,可以在各个peoject的settings菜单,linker页中进行配置(category选择input).

使用特权

评论回复
12
happy_10| | 2016-1-31 18:53 | 只看该作者
怎么设置应该可以从STVD的用户手册里找到。

使用特权

评论回复
13
冰清玉洁| | 2016-1-31 18:53 | 只看该作者
堆栈是占内存的,编译前设置,应该是在程序里.有个地方设置.具体不记得了.看到就知道.你查查.

使用特权

评论回复
14
wenfen|  楼主 | 2016-1-31 18:53 | 只看该作者
之前一直没想到在线debug看一下函数内的变量地址就知道stack是不是占用内存,以及具体占用的地址

使用特权

评论回复
15
happy_10| | 2016-1-31 18:54 | 只看该作者
其实呢

使用特权

评论回复
16
wenfen|  楼主 | 2016-1-31 18:54 | 只看该作者
最后证明是从ram的屁股,即高地址0x3ff(假设1k的ram)开始占用

使用特权

评论回复
17
zhuhuis| | 2016-1-31 18:55 | 只看该作者
研究下stvd的手册,网络上似乎没个清晰的说法

使用特权

评论回复
18
wenfen|  楼主 | 2016-1-31 18:55 | 只看该作者
我想可能stvd真没有随意设置stack大小的办法

使用特权

评论回复
19
宋倩2010| | 2016-1-31 18:55 | 只看该作者
编译器有个什么 short stack  long stack的选项,但是没具体的大小可以设置

使用特权

评论回复
20
chenho| | 2016-1-31 18:55 | 只看该作者
手册快速浏览了一遍,没有发现STVD显式控制stack大小的地方

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝