<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式軟件開(kāi)發(fā)之: 映像文件存儲器映射調整

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

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

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

圖13.10顯示一個(gè)典型的分散載入描述文件的內容和組織結構。

圖13.10 典型的分散載入描述文件的內容和組織結構

3.加載域描述

一個(gè)加載域具有以下屬性:

· 名稱(chēng):鏈接程序使用它識別不同的加載域;

· 基址:載入視圖中的代碼和數據的起始地址;

· 屬性:可選;

· 最大尺寸:可選;

· 執行區列表:這些執行區標識執行視圖中模塊的類(lèi)型和位置。

圖13.11顯示了加載域的描述。

BNF語(yǔ)法為:

load_region_description ::=

load_region_name (base_address | (+ offset)) [attribute_list] [ max_size

]

{

execution_region_description+

}

語(yǔ)法說(shuō)明如下。

① load_region_name為加載域的名稱(chēng)。只有前31個(gè)字符有效。該名稱(chēng)僅用于識別每個(gè)域。

注意

load_region_name與執行域exec_region_name不同,load_region_name不用于生成Load$$region_
name符號。

② base_address是區中對象的鏈接地址。base_address必須是一個(gè)字對齊數值。

③ +offset描述基址,它從前一個(gè)加載域的末尾偏移offset個(gè)字節。offset的值必須能被4整除。如果是第一個(gè)加載域,則+offset表示該域的基地址是從0之后的offset字節開(kāi)始。

④ attribute_list指定加載域內容的屬性:

· PI:位置獨立;

· RELOC:可重定位;

· OVERLAY:重疊;

· ABSOLUTE:絕對地址;

· NOCOMPRESS:代碼不被壓縮。

可以指定這些屬性中的一項(除NOCOMPRESS外,其他4項屬性為互斥關(guān)系)。默認的加載域屬性是ABSOLUTE。具有PI、RELOC或OVERLAY屬性之一的加載域可以有重疊的地址范圍。對于A(yíng)BSOLUTE加載域,armlink不允許重疊的地址范圍。OVERLAY關(guān)鍵字允許在同一個(gè)地址有多個(gè)執行區。

注意

ARM在RVCT中不提供重疊機制。要在同一個(gè)地址使用多個(gè)執行區,必須提供自己的重疊管理程序。

⑤ max_size:它指定加載域的最大尺寸。(如果指定了可選的max_size值,但分配給該區的字節超過(guò)max_size字節,armlink將生成錯誤。)

⑥ execution_region_description:它指定執行區名稱(chēng)、地址和內容。

4.執行域描述符

執行域具有以下一些屬性:

·

域名稱(chēng);

· 執行域基地址(支持絕對地址的或相對地址的);

· 執行域的最大尺寸(可選);

· 指定執行域屬性;

· 一個(gè)或多個(gè)輸入段描述(放在本執行區中的模塊)。

圖13.12顯示了一個(gè)典型的執行域描述。

執行域描述符中的BNF語(yǔ)法為:

execution_region_description ::=

exec_region_name (base_address | + offset) [attribute_list] [max_size | –

length]

{

input_section_description+

}

其語(yǔ)法說(shuō)明如下。

① exec_region_name 為執行域命名。(只有前31個(gè)字符有效。)

② base_address是域中對象的鏈接地址。base_address必須是字對齊的。

③ +offset是描述基址,它從前一個(gè)執行區的末尾偏移offset個(gè)字節。offset的值必須能被4整除。如果前面沒(méi)有執行區(即,這是載入區中的第一個(gè)執行區),則+offset表示基址從它所在的載入區的基址之后offset個(gè)字節開(kāi)始。如果使用+offset格式并且所在的加載域具有RELOC屬性,則執行區繼承該RELOC屬性。但是,如果使用固定的base_address,則隨后出現的offset不繼承RELOC屬性。

④ attribute_list指定執行區內容的屬性:

· PI:位置獨立。

· OVERLAY:重疊。

· ABSOLUTE:絕對地址。域的執行地址由base_designator指定。

· FIXED:固定地址。執行域的加載地址和執行地址都由base_designator指定。base_designator必須是絕對基址,或者偏移量為+0。

· EMPTY:它在執行區中保留一個(gè)已知長(cháng)度的空白存儲器塊,通常用作堆或棧。

· PADVALUE:指定填充字的默認值,如果在域定義中指定了該屬性,則必須為該屬性賦值。使用該屬性的例子如下。

EXEC 0x10000 PADVALUE 0xffffffff EMPTY ZEROPAD 0x2000

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




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>