




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、關(guān)于LPC2200啟動程序分散加載描述文件的敘述 在ADS LPC2200的啟動模板中有一個scf文件夾,其中有mem_a.scf、mem_b.scf、mem_c.scf這3個文件,這3個文件是ADS的分散加載機制,其目的是將代碼段和數(shù)據(jù)段分別定位到制定地址上??梢栽贏rm Linker中選擇加載路徑。 分散裝在技術(shù)概述:分散裝在技術(shù)可以把用戶的應(yīng)用程序分割成多個RO(只讀)運行域和RW(可讀寫)運行域(關(guān)于域的概念大家可以在網(wǎng)上查查),并且給它們制定不同的地址。一個嵌入式系統(tǒng)中,F(xiàn)lash、16位RAM、32位RAM都可以存在于系統(tǒng)中,所以,將不同功能的代碼定位在特定
2、的位置會大大地提高系統(tǒng)的運行效率。下面是最為常用的2種情況:一、32位的RAM運行速度很快,因此就把中斷服務(wù)程序作為一個單獨的運行域,放在32位的RAM,使它的響應(yīng)時間達到最快。二、程序在RAM中運行,其效率要遠遠高于在ROM中運行,所以將啟動代碼(Boot loader)以外的所有代碼都復(fù)制在RAM中運行,可以提高運行效率。分散裝在技術(shù)主要完成了2個基本的功能:如何分散。就是如何將輸入段組成輸出段和域。如何裝載。就是確定裝載域和滅個運行域在存儲空間里的地址是多少。域可以分為裝載域和運行域裝載域描述運行前輸出段和域在ROM/RAM里的分布狀態(tài),運行域描述了運行時輸出段和域在ROM/RAM里的分
3、布狀態(tài)。大多數(shù)情況下,映像文件哎執(zhí)行前把它裝載到ROM里,而當運行時,域里的有些輸出段(比如RW類型的輸出段)必須復(fù)制到RAM里,程序才能正常運行,所以,在裝載和運行時,RW類的輸出段處在不同的位置(地址空間)。Scatterfile分散加載文件:在scatterfile中可以為每一個代碼或數(shù)據(jù)區(qū)在裝載和執(zhí)行時指定不同的存儲區(qū)域地址,Scatlertoading的存儲區(qū)塊可以分成二種類型: 裝載區(qū):當系統(tǒng)啟動或加載時應(yīng)用程序的存放區(qū)。 執(zhí)行區(qū):系統(tǒng)啟動后,應(yīng)用程序進行執(zhí)行和數(shù)據(jù)訪問的存儲器區(qū)域,系統(tǒng)在實時運行時可以有一個或多個執(zhí)行塊。 映像中所有的代碼和數(shù)據(jù)都有一個裝載地址和運行地址(二者可能
4、相同也可能不同,視具體情況而定)。 scatter文件語法 scatter文件是一個簡單的文本文件,包含一些簡單的語法。 My Region 0x0000 0x1000 ;the context of region 標題 每個塊由一個頭標題開始定義,頭中至少包含塊的名字和起始地址,如(0x0000),另外還有最大長度等其他一些屬性選項(注:這些屬性是可選的,如0x1000)。 內(nèi)容 塊定義的內(nèi)容包括在緊接的一對花括號內(nèi),依賴于具體的系統(tǒng)情況。 一個加載塊必須至少含有一個執(zhí)行塊;實踐中通常有多個執(zhí)行塊。 一個執(zhí)行塊必須至少含有一個代碼或數(shù)據(jù)段;這些通常來自源文件或庫函數(shù)等的目標文件;通配符號*可
5、以匹配指定屬性項中所有沒有在文件中定義的余下部分。有以下幾種屬性:RO:只讀的代碼段和常量RW:可以讀寫的全局變量和靜態(tài)變量ZI:RW段中要被初始化為零的變量。Scatterfile中的定義要按照系統(tǒng)沖定向后的存儲器分布情況進行,在引導(dǎo)程序完成初始化任務(wù)后,應(yīng)該把主程序轉(zhuǎn)移到RAM中運行以加快系統(tǒng)的運行速度。LPC2200分散加載文件分析:ROM_LOAD 0x80000000(1) ROM_EXEC 0x80000000(2) Startup.o (vectors, +First)(3) * (+RO)(4) IRAM 0x40000000(5) Startup.o (MyStacks)(6
6、) STACKS_BOTTOM +0 UNINIT(7) Startup.o (StackBottom)(8) STACKS 0x40004000 UNINIT(9) Startup.o (Stacks)(10) ERAM 0x80040000(11) * (+RW,+ZI)(12) HEAP +0 UNINIT(13) Startup.o (Heap)(14) HEAP_BOTTOM 0x80080000 UNINIT(15) Startup.o (HeapTop)(16) FLASH_LOAD 0x81000000 0x1000(17) FLASH_EXEC 0x81000000(18)
7、main.o (+RO)(19) (1)加載時域描述,名稱位ROM_LODA 它的地址為0x80000000;0x80000000為LPC片外RAM地址,即將以下的加載的段和域都在RAM中。(2)第一個運行時域描述。ROM_EXEC描述了執(zhí)行區(qū)的地址,放在第一塊定義,其起始地址、空間大小域加載區(qū)起始地址、空間大小要一樣。(2)-(4)從起始地址開始放置向量表。Startup.o是Startup.s的目標文件。Vectors為中斷向量表。模塊Startup位于該加載域的開頭(+First),vectors作為入口點,包含全部的RO代碼。ARM在芯片復(fù)位之后,系統(tǒng)進入管理模式、ARM狀態(tài),PC(R
8、15)寄存器的值為0x00000000,所以必須保證用戶的向量表代碼定位在0x00000000處,或者映射到0x00000000處(例如向量表代碼在0x80000000處,通過存儲器映射,訪問0x0000000就是訪問0x80000000)。(5)-(6)第二運行時域描述。將MyStacks堆棧段裝載到片內(nèi)靜態(tài)RAM中。(7)-(8)將棧底放入堆棧的后面(+0)不進行初始化(UNINIT), 棧底為Startup中的StackBottom。(9)-(10) 將棧放入地址為0x40004000 并且不進行初始化(UNINIT)。(11)-(12將所有的RW和ZI段放入外部存儲器中以0x80040
9、000為開頭的地址中。并且全部清零(+ZI)外部RAM中指定的區(qū)域。(13)-(14)在RW ZI段后放入堆底(Startup.o(Heap)并且不進行初始化。(15)-(16)將堆定放入外部RAM中(0x80080000)。(17)-(19)自己添加的加載代碼,把main.c的目標文件加載到片外Flash中并且占用了0x1000的大小。綠色通道:好文要頂關(guān)注我收藏該文與我聯(lián)系 Mr Qian關(guān)注 - 0粉絲 - 0關(guān)注博主00(請您對文章做出評價)« 上一篇:Win CE 6.0在虛擬機上的安裝» 下一篇:關(guān)于ucGUI+ucOS在LPC2200上的移植posted 20
10、08-11-11 09:51 Mr Qian 閱讀(2134) 評論(2) 編輯 收藏評論1367500回復(fù)引用 #1樓2008-11-11 22:18 | yyZ未注冊用戶 你分析的是Bank0-RAM,Bank1-Flash那種情況,我記得他只用到三個分散加載文件中的一個。Bank1-Flash,Bank0-RAM用到另一個文件。還剩下一個,忘記了,好像是有關(guān)DebugInChip的。 上面(1)寫到:0x80000000為LPC片外RAM地址,這個也應(yīng)該是在Bank0-RAM,Bank1-Flash情況下才對。我記得基礎(chǔ)教程里前兩章有一頁里標出來Bank0/Ban
11、k1在不同情況下的RAM地址,存儲器映像有一節(jié)也有地址列表?;貜?fù)引用查看 #2樓樓主2008-11-12 08:39 | Mr Qian yyZ 恩,你說的對。我分析的這個分散加載文件是這3個文件中使用在JTAG調(diào)試的時候用的,這個文件是mem_b.scf,使用的Bank0-RAM,Bank1-Flash,而在進行最終代碼固化的時候應(yīng)該分配為Bank0-Flash,Bank1-RAM。mem_a.scf用在RelOutChip中使用,mem_c.scf用在DebugInChipFlash和RelnC
12、hip。這個加載是在RAM中進行片上調(diào)試的。所以使用Bank0-RAM,Bank1-Flash,它的起始地址就在0x80000000處,即片外RAM的地址。在最終進行代碼固化時,代碼被燒寫到Flash中,而這個地址分配使用Bank0-Flash可以用來引導(dǎo)程序運行。分散加載文件 有時候用戶希望將不同代碼放在不同存儲空間,也就是通過編譯器生成的映像文件需要包含多個域,每個域在加載和運行時可以有不同的地址。要生成這樣的映像文件,必須通過某種方式告知連接器相關(guān)的地址映像關(guān)系。mem_a.scf對應(yīng)是片外flash 使程序在FLASH中運行,并且加密mem_b.scf對應(yīng)是片外RAM 使程序在RAM中
13、運行mem_c.scf對應(yīng)是片內(nèi)flash 使程序在FLASH中運行屬性 RO:只讀的代碼段和常量RW:可以讀寫的全局變量和靜態(tài)變量ZI:RW段中要被初始化為零的變量ROM_LOAD 0x00000000 (1) ROM_EXEC 0x00000000 (2) Startup.o (vectors, +First) (3) * (+RO) (4) IRAM 0x40000000 (5) Startup.o (MyStacks) (6) *(+RW,+ZI) (7) HEAP +0 UNINIT (8) Startup.o (Heap) (9) STACKS 0x40004000 UNINIT (10) Startup.o (Stacks) (11) (1)加載區(qū),從0x00000000開始。(2)第一個運行時域描述。ROM_EXEC描述了執(zhí)行區(qū)的地址,放在第一塊定義,其起始地址、空間大小域加載區(qū)起始地址、空間大小要一樣。(2)-(4)從起始地址開始放置向量表。Startup.o是Startup.s的目標文件。vector為中斷向量表。模塊Startup位于加載域的開頭(+First),vectors作為入口點,包含全部的r0代碼。arm芯片復(fù)位后,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳工作群管理制度
- 餐飲業(yè)噪聲管理制度
- 天門職業(yè)學(xué)院《數(shù)據(jù)挖掘原理及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 天府新區(qū)航空旅游職業(yè)學(xué)院《人力資源戰(zhàn)略與規(guī)劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津海運職業(yè)學(xué)院《裝配式建筑施工技術(shù)實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津農(nóng)學(xué)院《設(shè)計思維方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 川北醫(yī)學(xué)院《體育政策與法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河套學(xué)院《獸醫(yī)微生物學(xué)專題1》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌職業(yè)學(xué)院《中藥商品學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西體育職業(yè)學(xué)院《小學(xué)兒童文學(xué)選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年硝酸鎳項目市場調(diào)查研究報告
- 2025年交警職業(yè)法律知識綜合試題庫
- 東莞市行政規(guī)范性文件制定程序中公眾參與的多維度審視與優(yōu)化路徑
- 旅居基地免責(zé)協(xié)議書
- 2025陜西水務(wù)集團限公司招聘80人易考易錯模擬試題(共500題)試卷后附參考答案
- 江西省南昌市2025屆高三下學(xué)期二模化學(xué)試題 含解析
- 宜賓五糧液股份有限公司2025年上半年校園招聘(253人)筆試參考題庫附帶答案詳解
- DB42-T 2078-2023 紅火蟻監(jiān)測與防控技術(shù)規(guī)程
- 2022教學(xué)能力大賽《智能網(wǎng)聯(lián)汽車傳感器測試與裝調(diào)》實施報告
- 充電掃地車管理制度
- 合肥市包河區(qū)2024年八年級《數(shù)學(xué)》下學(xué)期期末試題與參考答案
評論
0/150
提交評論