在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式軟件開發(fā)之: 映像文件存儲器映射調(diào)整

      嵌入式軟件開發(fā)之: 映像文件存儲器映射調(diào)整

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

      本文引用地址:http://www.biyoush.com/article/257027.htm

      通過該Scatter文件描述符,創(chuàng)建了一個長度為0x2000的域,該域中的所有內(nèi)容用0xffffffff填充。

      注意

      所指定的域值必須以字為單位。

      · ZEROPAD 0:初始化一塊內(nèi)容全為0的內(nèi)存區(qū)域,并將其作為一個輸入段填充到ELF中。這樣減少了在運行時將某段內(nèi)存初始化為0的操作。

      注意

      只有根執(zhí)行區(qū)可以使用ZEROPAD屬性進(jìn)行0初始化。對非根執(zhí)行區(qū)使用ZEROPAD屬性將出現(xiàn)警告信息,并且忽略該屬性。

      · UNINIT:指示該段為不能被初始化為0。

      ⑤ max_size為可選的參數(shù),如果分配給域的存儲器超過max_size字節(jié),則它指示armlink生成錯誤。

      ⑥ -length如果指定的長度為負(fù)值,則base_address是域的結(jié)束地址。它通常與EMPTY一起使用,以表示在存儲器中變小的棧。

      當(dāng)確定執(zhí)行域?qū)傩詴r,注意以下幾點。

      ① PI、OVERPLAY、FIXED和ABSOLUTE為并列關(guān)系屬性,某一個執(zhí)行域只能為這4種屬性之一。如果沒有指定,ABSOLUTE為其默認(rèn)屬性。

      ② 使用+offset格式的base_designator的執(zhí)行區(qū)繼承前一個執(zhí)行區(qū)的屬性(如果它是加載域中的第一個執(zhí)行區(qū),則繼承所在加載域的屬性,),或者具有ABSOLUTE屬性。

      ③ 不能為執(zhí)行域顯式指定RELOC屬性。該屬性只能從前面的執(zhí)行域或父區(qū)繼承才能具有RELOC屬性。

      ④ 被指定了PI或OVERLAP屬性的執(zhí)行域,不能有重疊的地址范圍。但對于ABLOUTE和FIXED屬性的執(zhí)行域,ARM編譯器不允許有重疊的地址范圍。

      ⑤ RW段默認(rèn)使用壓縮屬性。如果不想鏈接器對該段進(jìn)行壓縮,必須在Scatter文件中使用NOCOMPRESS顯示聲明。

      ⑥ UNINIT指定執(zhí)行區(qū)中的ZI輸出節(jié)(如果有)不被初始化為0。使用它可以創(chuàng)建包含未初始化數(shù)據(jù)或I/O的執(zhí)行區(qū)。

      5.輸入段描述符

      輸入段由以下部分組成。

      · 模塊名稱,如目標(biāo)文件名稱、庫成員名稱或庫文件名稱。模塊名稱可以使用通配符。

      · 輸入段名稱,或輸入節(jié)屬性,如READ-ONLY或CODE。

      圖13.13顯示了輸入段描述符的基本組成。

      BNF語法為:

      input_section_description ::=

      module_select_pattern

      [(

      (+ input_section_attr | input_section_pattern)

      ([,] + input_section_attr | , input_section_pattern))*

      )]

      其語法說明如下。

      ① module_select_pattern

      這是由文字文本構(gòu)成的模式。“*”通配符匹配0個或多個字符,而“?”匹配任何單個字符。匹配不區(qū)分大小寫。

      使用*.o可以匹配所有對象。使用*可以匹配所有目標(biāo)文件和庫。

      當(dāng)滿足下列條件之一時,鏈接器認(rèn)為module_selector_pattern與輸入段匹配。

      · 包含輸入段的目標(biāo)文件與module_selector_pattern匹配。

      · 包含輸入段的庫成員名稱(不帶路徑名)與module_selector_pattern匹配。

      · 從其中提取段的庫全名(包含路徑名)。如果名稱包含空格,使用通配符可以簡化搜索。例如,使用*libname.lib匹配C:lib dirlibname.lib。

      另外,ARM鏈接器支持特殊的模塊選擇程序模式“.ANY”,允許將輸入節(jié)分配給執(zhí)行區(qū),而無需考慮其父模塊。使用.ANY以任意分配方式填充執(zhí)行區(qū)。

      注意

      最好不要依賴編譯程序生成的或ARM庫代碼使用的輸入段名。因為,這些名稱在每次編譯之間可以變化,例如編譯選項的改變或編譯器版本發(fā)生變化,都可能引起輸入段名稱的變化。

      ② input_section_attr

      輸入段屬性符定義了一個用逗號隔開的模式類別。該類表中的每個模式定義了輸入段名稱或輸入段屬性匹配方式。當(dāng)匹配模式使用輸入段名稱時,它前面必須使用符號“+”,而符號“+”前面緊接的逗號可以省略。

      輸入段屬性不區(qū)分大小寫??梢允窍铝袑傩灾唬?/p>

      · RO-CODE;

      · RO-DATA;

      · RO,同時選擇RO-CODE和RO-DATA;

      · RW-DATA;

      · RW-CODE;

      · RW,同時選擇RW-CODE和RW-DATA;

      · ZI;

      · ENTRY,包含ENTRY點的節(jié)。

      可以識別以下同義詞:

      · CODE代表RO-CODE;

      · CONST代表RO-DATA;

      · TEXT代表RO;

      · DATA代表RW;

      · BSS代表ZI。

      可以識別以下偽屬性:

      · FIRST;

      · LAST。

      存儲器相關(guān)文章:存儲器原理




      評論


      相關(guān)推薦

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

      關(guān)閉