• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > MDK(KEIL)中設(shè)定變量或數(shù)組到指定的位置

    MDK(KEIL)中設(shè)定變量或數(shù)組到指定的位置

    作者: 時間:2013-03-25 來源:網(wǎng)絡(luò) 收藏

    定位

    本文引用地址:http://www.czjhyjcfj.com/article/148071.htm

    使用定義在頭文件 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

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

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



    關(guān)鍵詞: 指定 位置 變量 設(shè)定 KEIL MDK

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 潢川县| 锡林郭勒盟| 黑水县| 浮梁县| 扎鲁特旗| 榕江县| 万安县| 文山县| 河南省| 马鞍山市| 庐江县| 太康县| 方山县| 邢台市| 万年县| 沐川县| 丹凤县| 曲松县| 苍山县| 丰都县| 达拉特旗| 武穴市| 合江县| 南涧| 冕宁县| 娄底市| 虞城县| 永嘉县| 辉县市| 新泰市| 汝州市| 盐池县| 定南县| 闽侯县| 望谟县| 湘潭县| 西乌| 宁陕县| 卢湾区| 巢湖市| 繁峙县|