avr单片机 存在flash数据的读取 20

avr mega16 flash采用8K*16
iccavr定义flash区数据 const char a[]={1,2,3,4,5,6};
主程序直接引用a[0],a[1],a[2]……a[5]
用管flash采用16位式储存
再问  AVR-GCC要采用函数返形式呢 直接引用数组
我有更好的答案
推荐于2016-02-13 10:31:38 最佳答案
iccavr 直接用a[0]访问
编译器.用lpm种指令完读取.
iccavr 用 const函数指针比较

gccavr 能用a[0]访问.
用a[0],访问ramflash址.
必须使用函数调用形式访问..

两者编译器本质...都lpm ..iccavr编译器给
gccavr 需要手工完..
能跟gcc要适应处理器关.
毕竟x86移植..使用于其处理器.单单考虑avr
或者说gccavr没avr 特殊优化.

其他回答

直接使用a[0]、a[3]

看看AVR单片机DatasheetROM取数据指令LPM详细操作条指令ROM取8位数据使用
ATF144X | 发布于2009-04-28
评论

为您推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消