fzkqi 发表于 2010-10-22 19:21:39

IAR msp430 用const定义数组为什么不是保存在ROM中而还是在RAM中

const unsigned char tab[]={1,2,3};
msp430f149,iar 5.10版本。我就是这样定义的,在调试时发现tab还是在RAM中而不是在ROM中,这是怎么回事?该怎样定义才能把数据放在flash中

liuqihui_panda 发表于 2010-10-23 20:24:00

回复【楼主位】fzkqi
-----------------------------------------------------------------------

const unsigned char pic[]@0xf240={}这样就到flash里去了
@0xf240是flash区的地址,注意,这个地址后后续需要用来存储数据的区段要保证是没有被占用的,不然会影响被写入的程序

liuqihui_panda 发表于 2010-10-23 20:24:46

你再试试   __flash const unsigned char tab[]={1,2,3};看看编译后会怎样

wangshaosh 发表于 2011-3-17 19:29:19

常数放在ROM里面不省资源了

如果非要定义在RAM里面,那你就当定义变量了

CC2530 发表于 2011-3-18 22:27:03

全局或者静态变量才会,局部变量不会。

boming 发表于 2011-5-8 08:36:37

vincent8941 发表于 2011-7-15 17:03:47

如果是全局变量的话应该会写到flash里面

ptz19861212 发表于 2011-11-17 11:18:12

MARK
页: [1]
查看完整版本: IAR msp430 用const定义数组为什么不是保存在ROM中而还是在RAM中