ST_ATMEL_NXP 发表于 2013-1-19 22:48:55

如何在ICCAVR中将字符串数组指针定义到FLASH中?

RT,我在6.31A中和8.05中都测试过了,使用Const的关键字都不能将其定义到Flash中。其中在8.05中要使用__flash来定义到Flash中。
6.31A版本中,
const unsigned char Buffer[]={"aaaaaaa"};   //这个是可以定义的,并且可以定义到FLASH中。
8.05版本中
__flash unsigned char Buffer[]={"aaaaaaa"};   //这个是可以定义的,并且可以定义到FLASH中。

字符串数组指针
6.31A版本中
const unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};   //这个是可以编译通过,但是需要占用SRAM的空间。
8.05版本中
const unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};   //这个是可以编译通过,但是需要占用SRAM的空间。
如果用__flash定义就报错。
__flash unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};   //这个是可以编译通过,但是需要占用SRAM的空间。

main.c|27| invalid initialization type; found `pointer to char' expected `pointer to __flash unsigned char'|

不知道在ICCAVR中,如何将字符串数组指针定义到Flash中。还请高人指点下,多谢!

ST_ATMEL_NXP 发表于 2013-1-20 08:32:38

自己顶顶!

feixiang1990 发表于 2013-1-20 09:49:54

#pragma data:code
const unsigned char table[]={1,2,3};
const unsigned char a[]="ICCAVR";
#pragma data:data

feixiang1990 发表于 2013-1-20 09:50:24

详细的看这个:
http://hi.baidu.com/xiayufeng520/item/7065c718214497f7dceeca08

ST_ATMEL_NXP 发表于 2013-1-20 11:11:54

feixiang1990 发表于 2013-1-20 09:49 static/image/common/back.gif
#pragma data:code
const unsigned char table[]={1,2,3};
const unsigned char a[]="ICCAVR";


在6.31A中,不用#pragma data:code 也可以编译到在Flash中。在8.05中就需要__flash关键字了。我是要定义字符串数组指针。不是字符串数组。

ST_ATMEL_NXP 发表于 2013-1-20 11:12:13

feixiang1990 发表于 2013-1-20 09:50 static/image/common/back.gif
详细的看这个:
http://hi.baidu.com/xiayufeng520/item/7065c718214497f7dceeca08

这个我已经看过了,谢谢!

天使之翼 发表于 2013-1-20 13:04:05

谢谢你的提醒,{:smile:}

foxpro2005 发表于 2013-1-20 13:10:16

ST_ATMEL_NXP 发表于 2013-1-20 11:12 static/image/common/back.gif
这个我已经看过了,谢谢!

const unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};
在编译的时候,本来就是把字符串放在flash中的。(如果还是不行,就把 编译“选项”中的"String in flash only"选中)
以下是我在ICCAVR 8.05 Pro的截图

ST_ATMEL_NXP 发表于 2013-1-20 17:25:16

foxpro2005 发表于 2013-1-20 13:10 static/image/common/back.gif
const unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};
在编译的时候,本来就是把字符串放在flash中的 ...

多谢指点,搞定了。
页: [1]
查看完整版本: 如何在ICCAVR中将字符串数组指针定义到FLASH中?