在IAR的集成開發環境中實現數據變量定位方法如下三種


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM