1. 程式人生 > >C語言的AT指令

C語言的AT指令

今天跟人聊嵌入式,對面是某國際硬碟生產商的嵌入式軟體工程師,問了我很簡單的問題,如何快速將一個變數賦給某個特定的地址。

        按我們思路就是unsigned *a = address1;  *a = address2;

         人說一個at指令就搞定了……,故而查了一下。

 

 

     在keil裡面,有一個特殊地址定位的指令,就是將一個變數或常量定位到一個指定的地址上面

指令為 __at ,使用方法如下

 

      int variable __at(0x8000) = 100;

意為將variable變數定位到0x8000這個地址。

 

指令的目的是告訴連結器將指定地址定位到某個地址裡面,在使用該功能的時候需要注意一點的是,地址的範圍需要符合微控制器的datasheet給出的地址對映表,

注意,如果地址超出了flash的最大範圍,程式將無法得到這個值,例如一個256Kflash的晶片,在使用功能__at指令的時候,地址就不要超過256*1024了,否則你是找不到這個變數的。