日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]MDK(KEIL)中設(shè)定變量或數(shù)組到指定的位置

 定位變量到指定的位置

使用定義在頭文件 absacc.h中的 __at宏,可以將變量以如下方式定位到絕對地址處:

C 例子:

#include

const char MyText[] __at (0x1F00) = "TEXT AT ADDRESS 0x1F00";

int x __at (0x40003000); // variable at address 0x40003000

unsigned char xArray[128] __at (0x68000000); // Array start at address 0x68000000

匯編例子:

在匯編文件中可以使用段名,由|.ARM.__AT_|組成來定義位置。下面的例子是將一個段定義到地址0xFFE0處:

AREA |.ARM.__AT_0xFFE0|, CODE, READONLY

u8 a[10] __attribute__ ((at(0x2000002c)));

編譯說

..ListALL.axf: Error: L6971E: Section .data from object usart.o with type RW incompatible with

Section .ARM.__AT_0x2000002C from object hal.o with type ZI in er RW_IRAM1.

似乎是定位了這個絕對地址后,其他變量不會為它讓位~

NONO,這個方法不行的,因為編譯器并沒有真正開辟一個變量,你僅僅是強行操作某個地址而已,但這個地址是否被其他數(shù)據(jù)利用了,你管不到也不知道~(0字)電子白菜[8次]2009-9-5 2:08:47

編譯器里面應(yīng)該有設(shè)置,比如系統(tǒng)總共有多少內(nèi)存,你可以故意設(shè)置的少一些,這樣在編譯的時候他就會避開你沒有指定的了

通過*.map文件可以查看空間分配

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉