打印
[AVR单片机]

用IAR 如何在程序空间定义数组?

[复制链接]
5268|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bai4004|  楼主 | 2007-5-17 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
bai4004|  楼主 | 2007-5-17 18:48 | 只看该作者

怎么读出来?

我现在就直接定义const unsigned char stone[];能编译通过,但不知道怎么把他读出来?再请教了!

使用特权

评论回复
板凳
maomao40| | 2007-5-18 10:25 | 只看该作者

定义FLASH数组

用以下方式定义:
__flash unsigned char f_test[]={0,1,2,3,4,5};
通过以下方式读取
unsigned char g_test[];
unsigned char i;
for(i=0;i<6;i++)
    g_test=f_test;

使用特权

评论回复
地板
bai4004|  楼主 | 2007-5-22 16:16 | 只看该作者

原文在哪里

谢谢各位的回答:
我又试了一下,flash unsigned char stone[];
__flash unsigned char f_test[]={0,1,2,3,4,5};都可以了
在comp_a90.h 30 里面有如下定义  #define flash    const __flash
因此两种都是可以的。
但是,我还没找到那里定义的__flash,四楼说的原文在哪里?

使用特权

评论回复
5
maomao40| | 2007-5-22 16:52 | 只看该作者

__flash是关键字,何来定义?!在HELP里面!

使用特权

评论回复
6
sdxinaa| | 2012-8-9 16:18 | 只看该作者
IAR开发环境下,在flash下定义数组的方法(本人使用的硬件平台是LPC2368)。
使用关键字const就能实现,但要注意调试方式选择在flash中调试,且在option的debug选项中一定要勾选use flash loader。如果不勾选将会报错。如果没有把数组定义在flash中,则不勾选use flash loader不会报错,不知为什么。。。有网友说使用关键字_flash能够实现,但是我没有调通,调试提示不识别该关键字

使用特权

评论回复
7
cool_coder| | 2012-8-9 17:01 | 只看该作者
__flash是编译程序内部定义的关键字,就像C语言里的const, extern...一样。

使用特权

评论回复
8
aaron96031| | 2012-8-14 20:35 | 只看该作者
支持8楼

使用特权

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

本版积分规则

8

主题

24

帖子

1

粉丝