AVR162 单片机中把数据定义在FLASH 区,应该用什么关键字【恢复】
马老师您好: 我在用AVR的时候需要定义一个大的数组,这个数组不需要改,所以我想把它定义在FLASH区,应该用哪个关键字?我看您写的书上有一个
程序里面是真么写的: flash int a={1,2,};那是不是就是说用关键字flash? 关键字const 是不是把数据定义在数据区,只是它是常量,不改变?我用的ICCAVR 编译器?我也没有发现有什么地方告诉我怎么做的,所以只好向您求助了。谢谢! 我看了看macros.h文件,发现里面是这么写的:define flash const; 说的是flash 和const是一回事,所以我用flash 和const 定义就都没有问题了。 好的,谢谢楼上的回复,我看看。 你看一下MACROS.H文件里面的宏定义文件就知道了。你调试这个程序的时候一定调用了MACROS.H这个文件吧 谢谢,大家的回答,我在编译器中flash 和const这两个关键字我都用了,结果编译的时候也没有告诉我错误,运行的时候还是可以正常运行。这是怎么一回事,是不是说都可以用?我用的是ICCV7 for AVR 这个编译器。 取决于编译器,CVAVR就是flash 变量名 值…… ICCAVR 就是const 看用什么编译器了 const 又学到东西了 我也有想同的问题,我用的是winavr编译器。 wnwnwn 发表于 2013-5-8 11:20 static/image/common/back.gif
我也有想同的问题,我用的是winavr编译器。
上面已经回答的非常清楚了,你用什么编译器,先真正看该编译器的使用说明 machao 发表于 2013-5-8 19:23 static/image/common/back.gif
上面已经回答的非常清楚了,你用什么编译器,先真正看该编译器的使用说明 ...
感谢马老师的解答,我已经懂了{:smile:} 本帖最后由 wnwnwn 于 2013-5-14 15:44 编辑
machao 发表于 2013-5-8 19:23 static/image/common/back.gif
上面已经回答的非常清楚了,你用什么编译器,先真正看该编译器的使用说明 ...
马老师,为什么我加入pgmspace.h头文件之后,编译的时候提示没有定义prog_uchar变量呢?然后用const uint8 s[] PROGMEM定义就能通过。
页:
[1]