如何定位標識符到指定地址

要定義一個標識符(變數/數組/函數名),100%的童鞋都沒問題:

unsigned char myvar;

unsigned int myarray[16];

但如果要求定義到指定地址,相信有些童鞋就得蒙圈了。其實很簡單,我們只需使用「_at_」將標識符定位在你想要的地址就ok了

unsigned char myvar _at_ 0xXXXXXXXX;

unsigned int myarray[16] _at_ 0xXXXXXXXX;

我有一個使用51單片機的項目,需要使用內置Flash模擬EEPROM來保存系統參數,其中使用了_at_來定義數組到Flash緩存地址和EEPROM的起始地址,從而通過訪問數組來訪問對應空間:

Advertisements

需要注意的是,使用_at_定位標識符的前提是你對單片機/處理器的存儲系統比較熟悉,否則,可能發生難以預料的事情,輕則編譯不通過,程序運行出錯,重則程序亂來,產品起火冒煙...難以想象~~

支持原創,轉載時請註明出處,瘋狂碼者願與你一起努力,共同成長,謝謝!

Advertisements

你可能會喜歡