打印
[AVR单片机]

ICC AVR 我用在LCD显示,程序定义了一些大数组,编译提示空间不够。

[复制链接]
1118|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cpu51|  楼主 | 2018-6-3 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用ICC AVR 7.0   ,显示部分定义了一些大数组,加了关键字const,勾选了Treat 'const' as '__flash'。实际程序不算数组,应该在4%,数组超出4KRAM 一点点。请问该如何正确定义,才能编译成功?
另外,下面这样定义,哪个正确?
const unsigned char AsciiDot0816[] =    {};
const AsciiDot0816[] =    {};

相关帖子

沙发
airwill| | 2018-6-6 20:57 | 只看该作者
const AsciiDot0816[] =    {}; 使用默认数据类型,  我没有用过, 很可能是 int 类型哦
建议不要使用默认类型. 而是强制明确类型, 便于阅读和移植.

优化代码, 来缩小使用空间,  没有啥好办法吧

使用特权

评论回复
板凳
Boreas_Tyr| | 2018-6-29 09:41 | 只看该作者
试试这个 typedef uint8_t PROGMEM prog_uint8_t;
prog_uint8_t const Duty_cycle_50HZ[64]
我用的atmel studio,用const不能存储到Flash。PROGMEM 用法请百度

使用特权

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

本版积分规则

98

主题

458

帖子

0

粉丝