以前写AVR的代码都用ICC-AVR编译器,简单也好用,但是前段时间发现它不支持结构体的指定初始化项目,而程序又需要这个功能,于是转向了AVR-GCC编译器,稍微改动一下,代码就能在AVR-GCC下编译通过了,可是今天由于内部RAM有不够用的迹象,准备把RAM中定义的一部分只读的内容放到flash中去,发现const不好用了,用const定义后的只读变量还是被分配在RAM中,原来AVR-GCC不可以像ICC那样直接用const就可以将只读变量定义在flash中,定义的时候要加参数而且不能够直接读取,需要通过函数来实现,真受不了,只好转向IAR了,据说IAR可以直接将变量定义在flash和EEPROM中去,而且可以像RAM一样访问。
原来是想用一套代码在AVR和Linux PC上都能用,一位AVR-GCC是GCC亲戚,没想到AVR-GCC还有这毛病,看来还是IAR要强些。
阅读(2200) | 评论(0) | 转发(0) |