IAR 擴展關鍵字


 

1.擴展關鍵字:用於控制數據和指針


__eeprom 用於EEPROM 存儲空間, 控制數據存放,控制指針類型和存放
__tinyflash, __flash, __farflash, __hugeflash 用於flash 存儲空間, 控制數據存放,控制指針類型和存放
__ext_io, __io 用於I/O存儲空間, 控制數據存放,控制指針類型和存放
__regvar 放置一個變量在工作寄存器中

 

2.函數擴展關鍵字:


__nearfunc __farfunc 用於控制數據存放,這組關鍵字必須在函數聲明和定義的時候指定
__interrupt. 關鍵字控制函數的類型。這組關鍵字必須在函數聲明和定義的時候指定
__root. 關鍵字僅僅控制有定義的函數

 

3.其它特別的關鍵字:


@ 用於變量的絕對地址定位。也可以用#pragma location 命令
#pragma vector 提供中斷函數的入口地址。
__root 保證沒有使用的函數或者變量也能夠包含在目標代碼中
__no_init 禁止系統啟動的時候初始化變量.
asm, __asm 插入匯編代碼

====================================================================

 

__root 關鍵字保證沒有使用的函數或者變量也能夠包含在目標代碼中.
定義存放在__flash 空間的數據在程序編譯時會自動生成代碼嵌入到flash代碼中,對於程序沒有使用也要求編譯的數據(比如可以在代碼中嵌入你的版本號,時間等)必須加關鍵字__root 限制。
例:

 

#i nclude<iom8.h>  
__root __flash unsigned char p @ 0x10 =0x56;
void main(void)
{

}

 

程序沒有使用P變量,編譯也會生成該代碼。  
:020000020000FC
:1000000016C018951895189518951895189518955F
:10001000569518951895189518951895189518953A
:10002000189518951895089500008895FECF0FE94A
:100030000DBF00E00EBFC0E8D0E003D0F4DFF4DF76
:06004000F3CF01E008957A
:0400000300000000F9
:00000001FF




 


免責聲明!

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



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