<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

為了實(shí)現圖13.9的,使用以下程序所現實(shí)的Scatter文件。

LOAD_ROM_1 0x0000 ;第一個(gè)加載時(shí)域的起始地址

{

EXEC_ROM_1 0x0000 ;第一個(gè)運行時(shí)域的起始地址

{

programl.o(+RO) ;放置program.o中所以的RO段

{

SRAM 0x9000 ;運行時(shí)域的起始地址

{

programl.o(+RW,+ZI) ;放置program.o中所有的RW和ZI段

}

}

LOAD_ROM_2 0x4000 ;第二個(gè)加載時(shí)域的起始地址

{

EXEC_ROM_2 0x4000 ;運行時(shí)域的起始地址

{

program2.o(+RO)

}

DRAM 0x18000 ;運行時(shí)域的起始地址

{

program2.o(+RW,+ZI)

}

}

上面兩個(gè)例子中,簡(jiǎn)單可以使用命令行選項實(shí)現,但第二個(gè)復雜的例子卻只能使用Scatter文件實(shí)現。

13.4.2 Scatter文件語(yǔ)法

分散載入描述文件是一個(gè)文本文件,它向 armlink 描述目標系統的存儲器映射。如果從命令行加載Scatter文件,可以使用任意類(lèi)型的文件擴展名。

在Scatter文件中,用戶(hù)可以指定以下存儲器映像內容:

· 每個(gè)載入區的載入地址和最大尺寸;

· 每個(gè)載入區的屬性;

· 從每個(gè)載入區派生的執行區;

· 每個(gè)執行區的執行地址和最大尺寸;

· 每個(gè)執行區的輸入節。

描述文件的格式反映出載入區、執行區和輸入節的層次結構。

1.BNF的表示法和語(yǔ)法

所謂BNF(Backus Naur Format)即Scatter文件所用的形式語(yǔ)言。表13.3概括了其所用的符號和語(yǔ)法規則。

表13.3 BNF語(yǔ)法

符 號

說(shuō) 明

引號用于表示BNF語(yǔ)法中的字符被用作普通字符。

例如,定義B+C,它只能替換為模式B+C。而定義B+C可以替換為模式BC、BBC或BBBC

A ::= B

將A定義為B。例如,A::= B+ | C 表示A相當于B+或C。

在其組件方面,::=表示法用于定義高級結構。每個(gè)組件可能還有一個(gè)::=定義,對更簡(jiǎn)單的組件進(jìn)行定義。

例如,A::=B以及B::= C | D表示定義A相當于模式C或D

續表

符 號

說(shuō) 明

[A]

可選元素A。例如,A::= B[C]D 表示定義A可以擴展為BD或BCD

A+

元素A可以出現一次或多次。例如,A::= B+表示定義A可以擴展為B、BB或BBB等

A*

元素A可以不出現或多次出現

A|B

出現元素A或B,但不能同時(shí)出現

(A|B)

元素A和B組合在一起。

這在使用 | 操作符時(shí),或重復復雜模式時(shí)尤其適用。

例如,A::=(B C)+ (D | E) 表示定義A可以擴展為BCD、BCE、BCBCD、BCBCE、BCBCBCD或BCBCBCE

2.Scatter文件語(yǔ)法概述

描述scatter_description被定義為一個(gè)或多個(gè)load_region_description模式:

Scatter_description ::=

load_region_description+

加載域描述load_region_description 被定義為載入區名稱(chēng),可以選擇性地在其后跟隨屬性、尺寸說(shuō)明符以及一個(gè)或多個(gè)執行區描述:

load_region_description ::=

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

{

execution_region_description+

}

執行域描述execution_region_description 被定義為執行區名稱(chēng),是一種基址規范,可以選擇性地在其后跟隨屬性、尺寸說(shuō)明符以及一個(gè)或多個(gè)輸入段描述:

execution_region_description ::=

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

length]

{

input_section_description*

}

輸入段描述input_section_description被定義為源模塊選擇程序模式,可以在其后選擇性地跟隨輸入節選擇程序:

input_section_description ::=

module_select_pattern

[ (

(+ input_section_attr | input_section_pattern)

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

) ]

存儲器相關(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>