如何在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中。还请高人指点下,多谢! 自己顶顶! #pragma data:code
const unsigned char table[]={1,2,3};
const unsigned char a[]="ICCAVR";
#pragma data:data 详细的看这个:
http://hi.baidu.com/xiayufeng520/item/7065c718214497f7dceeca08 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关键字了。我是要定义字符串数组指针。不是字符串数组。 feixiang1990 发表于 2013-1-20 09:50 static/image/common/back.gif
详细的看这个:
http://hi.baidu.com/xiayufeng520/item/7065c718214497f7dceeca08
这个我已经看过了,谢谢! 谢谢你的提醒,{:smile:} 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的截图
foxpro2005 发表于 2013-1-20 13:10 static/image/common/back.gif
const unsigned char *Buffer[]={"aaaaaaa","bbbbbbbbb"};
在编译的时候,本来就是把字符串放在flash中的 ...
多谢指点,搞定了。
页:
[1]