IAR資料定位方法 ,定義序列號和要儲存的資料時會用到
阿新 • • 發佈:2019-02-14
資料定位方法如下三種
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;
函式定位如下面兩種寫法
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
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;
函式定位如下面兩種寫法
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