在线时间0 小时
UID135332
注册时间2009-6-16
NXP金币0
该用户从未签到
新手上路

- 积分
- 39
- 最后登录
- 1970-1-1
|
1 在prm文件中,指定segment :
CONST_DATA INTO PAGE_C0,PAGE_C1;
2 在程序中,定义常量数据:
#pragma CONST_SEG CONST_DATA //0x700000 global address
volatile const uint16 aa = 16;
volatile const unsigned int table1[5] = {0,2,4,6,8};
volatile const unsigned int table2[5] = {255,256,257,258,259};
#pragma CONST_SEG default
调试时,发现在对应的全局地址0x700000并没有对应的常量数据,变量的逻辑地址都是0‘L,
3 保持同样的定义,在主函数中,增加了对这些变量的调用语句:
tmp = aa;
tmp = table1[0];
tmp = table2[0];
调试时,发现在对应的全局地址0x700000中初始化了常量数据,并且这些常数变量也分配了对应的地址.
感觉是不是对于只有初始化,而没调用的常量参数,在编译过程中都把它给优化掉了?有没有什么办法能在ROM中使用常量定义初始化一些常量参数,而这些参数又是永远不会被程序调用的(需要通过专用工具通过指针去读取,如一些配置信息)
|
|