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

[复制链接]
1299|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 用法请百度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

461

帖子

0

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