一、在IAR的集成开发环境中实现数据变量定位方法如下三种
1、__no_initcharalpha@0x0200;
2、#pragmalocation=0x0202
constintbeta;
3、constintgamma@0x0204=3;
或:
1)__no_initintalpha@"MYSEGMENT";//MYSEGMENT段可在XCL中开辟
2)#pragmalocation="MYSEGMENT"
constintbeta;
3)constintgamma@"MYSEGMENT"=3;
二、如何实现函数定位
在IAR中函数定位有两种写法
1.voidg(void)@"MYSEGMENT"//MYSEGMENT段可在XCL中编辑开辟
{
}
2、#pragmalocation="MYSEGMENT"
voidh(void)
{
}
三、如何更改XCL文件
注意:在实现过程中可能涉及到.XCL连接文件的更改,请保存好原来的.XCL文件!
1.打开相应的*c.xcl文件,用"-Z(CONST)段名=程序定位的目标段-FFDF"定义段的起始地址.
2.在自己的C程序中用#pragmaconstseg(段名)定位自己的程序
3.结束后恢复编译器的默认定位#pragmadefault
例:
IAR1.26b环境下:
1、将常量数组放在FLASH段自定议的MYSEG段中
原来的MSP430F149XCL文件如下:
//Constantdata
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=1100-FFDF
如果想从中分出一部分做数据存储区,做如下修改:
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=1500-FFDF//将1100-14FF从ROM中分出存储arry数组
-Z(CONST)MYSEG=1100-14FF
区间大小可自行决定
在程序中描写如下即可:
#pragmamemory=constseg(MYSEG)//在.XCL文件中修改
chararry[]={1,2,3,4,5,6,7};
#pragmamemory=default
2、将变量放入所命名的段
在XCL文件中开辟一段MYSEG段,如上所述
#pragmamemory=dataseg(MYSEG)
chari;
charj;
intk;
#pragmamemory=default