打印
[AVR单片机]

iar 如何定义大数组

[复制链接]
10849|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
流浪终生|  楼主 | 2008-12-30 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在iar中我定义一个int ADC_0[64]数组,系统提示我数组过大,请问各位高手如何解决,或者有那一个环境支持大数组的,我用的是AVR的单片机,谢谢各位指教。
沙发
avr| | 2008-12-30 22:42 | 只看该作者

64元的数组应该没有问题吧,是否栈设置得不正确.

使用特权

评论回复
板凳
流浪终生|  楼主 | 2008-12-31 08:59 | 只看该作者

不是堆栈问题,我使用的是全局变量

我想应该是IAR的数据段设置问题,但是我又不知道它的xcl如何改写,请各位指教。

使用特权

评论回复
地板
avr| | 2008-12-31 09:11 | 只看该作者

XCL的格式在帮助中有

你看一下MAP文件就知道如何分配的了,具体XCL的格式在帮助中有.

使用特权

评论回复
5
ic_ic| | 2008-12-31 09:45 | 只看该作者

应该没啥问题

应该没什么问题吧,我用的IAR,定义500字节的数组都没有问题

使用特权

评论回复
6
xullin| | 2008-12-31 13:21 | 只看该作者

你的memory model选的是tiny吧,换成small试试!

使用特权

评论回复
7
流浪终生|  楼主 | 2008-12-31 16:47 | 只看该作者

iar如何设置呢

我改成small后编译通过,但是程序不能正常运行。我只在memory model选择的是small,其他没有变。请问6楼的有问题么?
我的程序在cvavr中调试通过,只是代码效率很低。
请问5楼的你的500字节是怎么定义的,编译器有设置么?谢谢

使用特权

评论回复
8
xullin| | 2009-1-9 12:29 | 只看该作者

把CSTACK的大小调大点!0x10太小了!

使用特权

评论回复
9
avr| | 2009-1-11 09:21 | 只看该作者

动态数组才会在CSTACK中分配

使用特权

评论回复
10
ganwen100| | 2012-12-30 10:31 | 只看该作者
C:\Users\Administrator\Desktop\1
memory model选的是small  

使用特权

评论回复
11
qin552011373| | 2013-1-2 00:59 | 只看该作者
疑问:你为什么要用大数组?每个数据为什么都保存?不怕浪费资源?   如果不是必须保存每一个采样结果的话   建议每次直接复制给一个数  最后算结果

使用特权

评论回复
12
明月小厨| | 2013-1-2 02:22 | 只看该作者
改用SRAM更大的单片机;

使用特权

评论回复
13
cos12a| | 2013-9-6 01:01 | 只看该作者
IAR配置文件一定要留意,如果你能看懂xcl文件最好是直接更新此文件,我所使用的IAR评估版,很多MCU的XCL文件所描述的地址空间与实际MCU不相符.(如果程序使用没有超出Datasheet所描述的大小,那就一定要检查软件设置问题了)正式版没有钱买,也就没有骓过这些问题..
还有一点,如六楼所说:"你的memory model选的是tiny吧,换成small试试"也要注意更改设置,IAR默认为Tiny.堆栈大小的设置也有影响,请留意.

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

40

帖子

0

粉丝