iar 堆栈设置_IAR设置堆栈大小的问题

1

IAR

设置堆栈大小的问题

GCC

IAR

分配堆栈的方式不同,

IAR

先分配堆栈空间,相当于定义一个全局数组为堆栈

空间,堆栈初始为堆栈空间最高地址;

GCC

不用先分配堆栈,自动把

RAM

剩余空间作为

堆栈空间,堆栈初始为

RAM

最高地址。

初学者很容易忽视这个问题,造成程序跑飞而找不到问题的症结,我在用

IAR For MSP430

的时候没遇到过这个问题,因为

MSP430

RAM

比较大,

IAR

默认是

80

字节,足够一般

程序使用。

但是使用

IAR For SAM8

的时候,有一个比较耗费堆栈的程序运行一段时间后出问题,由于

要记录一个

24

小时的数组,而数组元素的值是在堆栈里改变的,所以,记录到一定时间以

后,出现了堆栈不足的情况,初学者如果没有仿真器,是很难发现这个问题的,还好我用的

仿真器在

Debug

的时候出现了堆栈不足的警告,我才意识到是这里问题。

IAR For SAM8

默认堆栈是

32

字节,

既然不够用,

那么就要增大,

但是设置到多少合适呢?

首先编译你的程序,看程序用了多少自己的

RAM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值