scatter文件的寫法

scatter文件的寫法

ID:15405828

大?。?53.50 KB

頁數(shù):79頁

時間:2018-08-03

scatter文件的寫法_第1頁
scatter文件的寫法_第2頁
scatter文件的寫法_第3頁
scatter文件的寫法_第4頁
scatter文件的寫法_第5頁
資源描述:

《scatter文件的寫法》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、scatter文件的寫法  程序總有兩種狀態(tài):運(yùn)行態(tài)和靜止態(tài)。當(dāng)系統(tǒng)掉電的時候程序需要被保存在非易失性的存儲器中,且這個時候程序的排放是按照地址依次放的,換句話說:我才懶得管它怎么放,只要不掉就行。當(dāng)系統(tǒng)上電后,CPU就要跑起來了,CPU屬于高速器件,存儲器總是不怎么能跟得上,既然跟不上那么我們就盡量縮短它們之間的差距,那留下一條路,那就是盡量提高存儲器的讀取速度,存儲器類型決定其速度的水平,那么盡量放在速度高的存儲器就成為首選解決方案。那么我們就把要執(zhí)行的程序暫時拿到速度較快的RAM中。那么拿的過程就牽涉到程序的加載了。這就是要解決的問題?! ∫粋€映像文件由域(region

2、)、輸出段(outputsections)和輸入段(inputsections)組成。不要想得太復(fù)雜,其實(shí)他們之間就是包含與被包好的關(guān)系。具體關(guān)系是這樣的:  映像文件>??域>?輸出段>?輸入段  輸入段:  輸入段就是我們寫的代碼+初始化的數(shù)據(jù)+應(yīng)該被初始化為0的數(shù)據(jù)+沒有初始化的數(shù)據(jù),用英文表示一下就是:RO(ReadOnly),RW(ReadWrite),ZI(ZeroInitialized),NOINIT(NotInitialized)。ARM連接器根據(jù)各個輸入段不同的屬性把相同的拿再一起組合一下就成為了輸出段?! ≌埧纯雌綍r寫的東東:  AREA???RESET,

3、CODE,READONLY  AREA???DSEG1,DATA,READWRITE  AREA???HEAP,NOINIT,READWRITE  看出其屬性沒?  輸出段:  為了簡化編譯過程和更容易取得各種段的地址,那么把多個同屬性的輸入段按照一定的規(guī)律組合在一起,當(dāng)然這個輸出段的屬性就和它包含的輸入段的屬性一樣咯。輸入段的排放規(guī)律就是:最先排放RO屬性的輸入段,然后是RW屬性段,最后是ZI或NOINIT段。  域:???????  為什么還要加一層域,我的理解是由于代碼的功能不同,那么我們有必要把不同功能的代碼分類放。我們可以把需要高速執(zhí)行的代碼放在一起、把對速度要求不

4、高的放在一起、把執(zhí)行頻率高的放在一起,把執(zhí)行頻率低的放在一起...那么按照這種方式放的代碼就可以根據(jù)其具體需要放在不同的存儲器中了。這樣可以提高程序執(zhí)行速度。一個域中包含1~3個輸出段。  映像文件:  我暫時把映像文件理解成燒到存儲器中的文件,由N個域組成。這些域其實(shí)可以看做是獨(dú)立的模塊,只是他們按照一定的順序(這個順序還是:RO+RW+ZI)被捆綁在一起,這樣才方便燒寫到非易失存儲器中去。  好了,了解了映像文件的組成,那么來看看映像文件是怎么跑起來的?! ∮诚裎募褪怯蠳節(jié)車廂的火車,車廂(域)里裝著要送到不同站(不同類型的存儲器)的貨物。到相應(yīng)的站了,那么就把相應(yīng)的車

5、廂拿下來。指揮拿這個的就是scatter文件。拿下貨物車廂后,我們就解開它,把里面的品牌為RO的貨物提取出來,按照scatter的指示發(fā)給某個地址,然后再先后把品牌為RW和ZI的貨物發(fā)到scatter指定的地址?! 】纯催@個加深理解:  LOAD_ROM1????0X00000000???;從火車上取出來時的地址(如:成都站)  {  ???????????EXEC_ROM1??????0x40000000????  ???????????{  ??????????????????PROGRAM.O(+RO)?;把品牌RO的貨物發(fā)給0x40000000去  ?????????

6、??????????RAM1?????????0x80000000  ???????????????????{  ???????????????????PROGRAM.O(+RW,+ZI);把品牌RW,ZI的貨物依次發(fā)給0x80000000  ????????????????????}???????????????????  ????????????}  ????????????......  }  其他的段也可以這樣依葫蘆畫瓢。scatter的原理就介紹這樣,其中的語法和規(guī)則要多寫多把代碼的地址拖出來看才能體會。不過都是很簡單的,生活中的小常識就能解決這些問題。為什么?因?yàn)?/p>

7、設(shè)計(jì)這些規(guī)則的工程師的靈感就是源自生活。嘿嘿...享受把代碼隨處放的樂趣吧,...enjoy...?scatterloading實(shí)際的嵌入式系統(tǒng)中,ADS提供的缺省存儲器映射是不能滿足要求的。用戶的目標(biāo)硬件通常有多個存儲器設(shè)備位于不同的位置,并且這些存儲器設(shè)備在程序裝載和運(yùn)行時可能還有不同的配置。?????Scatterloading可以通過一個文本文件來指定一段代碼或數(shù)據(jù)在加載和運(yùn)行時在存儲器中的不同位置。這個文本文件scatterfile在命令行中由-scatter開關(guān)指定,例如:?????arml

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。