在IAR的集成开发环境中实现数据变量定位方法如下三种 1、__no_init char alpha @ 0x0200; 2、#pragma location = 0x0202 const int beta; 3、const int gamma @ 0x0204 = 3; 或: 1)__no_init int alpha @ "MYSEGMENT"; //MYSEGMENT段可在XCL中开辟 2)#pragma location="MYSEGMENT" const int beta; 3)const int gamma @ "MYSEGMENT" = 3;
二、如何实现函数定位 在IAR中函数定位有两种写法 1. void g(void) @ "MYSEGMENT" // MYSEGMENT段可在XCL中编辑开辟 { }
2、#pragma location = "MYSEGMENT" void h(void) { } 三、如何更改XCL文件 注意:在实现过程中可能涉及到.XCL连接文件的更改,请保存好原来的.XCL文件! 1. 打开相应的*c.xcl文件,用"-Z(CONST)段名=程序定位的目标段-FFDF"定义段的起始地址. 2. 在自己的C程序中用#pragma constseg(段名)定位自己的程序 3. 结束后恢复编译器的默认定位#pragma default
例: IAR 1.26b环境下: 1、将常量数组放在FLASH段自定议的MYSEG段中 原来的MSP430F149 XCL文件如下: // Constant data -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 区间大小可自行决定
在程序中描写如下即可: #pragma memory = constseg(MYSEG) //在.XCL文件中修改 char arry[]={1,2,3,4,5,6,7}; #pragma memory = default
2、将变量放入所命名的段 在XCL文件中开辟一段MYSEG段,如上所述 #pragma memory = dataseg(MYSEG) char i; char j; int k; #pragma memory = default |
|