a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 適于OMAP的多級啟動Boot Loader

適于OMAP的多級啟動Boot Loader

作者: 時間:2010-04-07 來源:網絡 收藏
開放式多媒體應用平臺()是TI公司推出的,適用于下一代嵌入式終端設計的高集成度雙核心處理器。它將一顆善于進行數據處理的DSP內核與一顆控制性能很強的ARM內核集成在一個芯片中,既改進了普通DSP處理器缺乏外部控制能力的缺點,也彌補了普通ARM處理器無法進行大運算量數據處理的不足。與單核心處理器相比,雙核結構處理器能夠完成以前需要兩顆處理器才能完成的工作,可以得到更低的系統功耗與成本,因而廣泛應用于嵌入式終端中。
是嵌入式系統的重要組成部分,它是在操作系統之前運行的初始化加載程序,用于設置操作系統運行的硬件環境并將Flash中存儲的操作系統加載到RAM中運行。
1 方式
 OMAP多采用外部Flash方式。以OMAP5910為例,它包含一顆TMS320C55x DSP核心以及一顆ARM925核心,其中MPU(ARM925)為主控核心,它可以控制DSP內核的啟動、復位等操作。OMAP5910上電時,MPU首先啟動,從地址0x00000000開始讀取指令,運行程序。一般應在0x00000000地址處放置一條跳轉指令,令其指向 啟動程序的入口處,OMAP5910啟動后跳轉至 程序處執行硬件環境設置及操作系統加載工作。根據OMAP5910的地址空間映射關系[1],0x00000000地址屬于EMIFS(慢速片外存儲器接口)總線,CS0空間,用于連接外部Flash,因而OMAP5910的啟動階段的程序在外部Flash中進行取指操作。
 在實際應用中發現,如果操作系統占用空間比較大,使得Boot Loader需要從Flash中拷貝的代碼量很大,那么系統的啟動過程會耗費較長的時間。由于MPU需要在Flash中取指,又要將同一空間中其他部分的數據搬移到不同的RAM(DSP運行的內部SRAM以及MPU運行的SDRAM)中,從而使得程序取指錯誤的概率增加。經過測試發現,隨著Flash擦寫次數的增多,Flash性能下降,這種錯誤的概率會顯著增加。這種錯誤體現到應用中,就會造成整個系統在啟動過程中偶爾出現莫明其妙的死機,只能通過斷電重新啟動才能解決,因而這種啟動方式存在較大的隱患。
2 啟動Boot Loader
2.1 設計思想

考慮到啟動過程中MPU需要從Flash中取指,這種操作既有風險且取指周期又長,因而應盡量減少在Flash中的取指動作。而RAM作為高速存取設備,其讀寫周期比Flash要短得多,因而將代碼拷貝過程中的指令放到RAM中進行取指操作,既能降低取指周期,又能降低載入系統時的風險。通過上述分析,可以設計一種載入的BOOT過程,首先用一段盡量短的程序將傳統意義上的Boot Loader拷貝到一段空白(載入操作系統時不會占用)的RAM中,之后再跳轉到RAM中的Boot Loader程序入口,執行真正的Boot Loader程序。與操作系統相比,Boot Loader程序代碼要短得多,拷貝時間基本可以忽略,因而運行風險也小很多。這段程序在Flash中運行,任務是拷貝Boot Loader程序,可以稱之為Mini Loader。
2.2 具體過程
Boot Loader啟動過程分為Mini Loader、System Loader以及Flasher 3個部分。
(1) Mini Loader
Mini Loader在Flash中運行,其目的是從Flash中將Boot Loader程序拷貝到RAM中。為了盡量減小Flash中運行程序的數量就需要Mini Loader盡量短小,故而Mini Loader在進行拷貝動作之前只需要配置與外部總線EMIFS、EMIFF相關的寄存器。具體流程如圖1所示。同時還要注意需要設置MPU的中斷向量表0x00000000的跳轉地址為Mini Loader的程序入口。

本文引用地址:http://www.j9360.com/article/173387.htm


(2) System Loader
該部分為傳統意義上的Boot Loader過程,完成硬件環境相關設置及初始化,并將操作系統載入到RAM中運行。需要注意的是,MPU本身的中斷向量表須載入到內部SRAM中,其他操作系統部分可以載入到外部SDRAM中。
 由于OMAP平臺為雙核心結構,因此 System Loader除了需要載入MPU系統本身之外,還需要配置DSP的載入及啟動過程。DSP有3種啟動方法:Flash引導方式與ARM載入方式,參考文獻[2]對這兩種方式進行了對比分析。本設計采用ARM載入方式,這樣可以通過ARM動態配置DSP部分的代碼,控制DSP核心的處理流程。與參考文獻[2]所不同的是,本方法中DSP程序采用與MPU操作系統相同的方式存儲,也存入Flash中,而不是作為常量數組編入Boot Loader程序中,這種方式較參考文獻[2]中的方法更加便于管理,單獨對DSP程序進行升級也更加方便,而且減小了System Loader的程序長度,更有利于多級啟動方式。
 因為OMAP本身的GPIO(MUPIO)有限,所以大多設計都要采用FPGA作為外圍擴展控制器,用來擴展更多的控制端口以及通信端口。一般FPGA本身無法存儲程序,其程序存儲在片外ROM中,FPGA上電之后可以通過多種方式自行加載到ROM中運行。本設計通過MPU加載FPGA程序,并將FPGA固件程序也存儲于同一Flash中,這樣省去了一片FPGA專用ROM,既方便代碼管理,又降低了硬件成本和設計復雜度。以XILINX公司的XC2S系列FPGA為例,其加載程序時可采用串行加載模式,選擇FPGA為從模式,將OMAP本身的MCBSP配置為SPI主模式,工作于時鐘停止模式,包含一個時鐘周期延時,輸出時鐘信號高有效,采用幀同步模式,每個數據幀8 bit。給FPGA載入程序時,要將存儲于Flash中的FPGA程序代碼讀出,由于XILINX開發工具ISE輸出的HEX文件以字節(8 bit)為單位,而Flash中存儲的內容以雙字(32 bit)為單位(由ARM指令長度而定),因而從Flash中讀出32 bit的數據之后需要按照從高到低的字節順序發送。而且,ISE的HEX文件每字節bit排列順序與MCBSP的傳輸順序正好相反,因此每個字節內部需要將bit反向重排。
 System Loader流程如圖2所示,啟動順序與本小節所述順序正好相反,這是因為FPGA一般多用于進行硬件設備的控制,所以需要最先啟動;而DSP由于其自身特點,多用于數據處理工作,作為MPU的協處理器使用,因此需要在MPU操作系統啟動之前做好準備。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉