(2) System Loader
該部分為傳統(tǒng)意義上的Boot Loader過程,完成硬件環(huán)境相關設置及初始化,并將操作系統(tǒng)載入到RAM中運行。需要注意的是,MPU本身的中斷向量表須載入到內部SRAM中,其他操作系統(tǒng)部分可以載入到外部SDRAM中。
由于OMAP平臺為雙核心結構,因此 System Loader除了需要載入MPU系統(tǒng)本身之外,還需要配置DSP的載入及啟動過程。DSP有3種啟動方法:Flash引導方式與ARM載入方式,參考文獻[2]對這兩種方式進行了對比分析。本設計采用ARM載入方式,這樣可以通過ARM動態(tài)配置DSP部分的代碼,控制DSP核心的處理流程。與參考文獻[2]所不同的是,本方法中DSP程序采用與MPU操作系統(tǒng)相同的方式存儲,也存入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開發(fā)工具ISE輸出的HEX文件以字節(jié)(8 bit)為單位,而Flash中存儲的內容以雙字(32 bit)為單位(由ARM指令長度而定),因而從Flash中讀出32 bit的數據之后需要按照從高到低的字節(jié)順序發(fā)送。而且,ISE的HEX文件每字節(jié)bit排列順序與MCBSP的傳輸順序正好相反,因此每個字節(jié)內部需要將bit反向重排。
System Loader流程如圖2所示,啟動順序與本小節(jié)所述順序正好相反,這是因為FPGA一般多用于進行硬件設備的控制,所以需要最先啟動;而DSP由于其自身特點,多用于數據處理工作,作為MPU的協(xié)處理器使用,因此需要在MPU操作系統(tǒng)啟動之前做好準備。
(3)Flasher
Flasher過程主要負責向Flash中燒寫編譯好的程序目標碼,主要包括Boot Loader、MPU、DSP、FPGA等部分。采用RS232串行端口與主機相連,實現程序目標碼的下載。傳輸協(xié)議采用大多數編譯器都支持的Intel Hex格式[5]。Intel Hex格式采用ASCII字符表示方式,這樣程序目標碼的每個字節(jié)需要用2個ASCII字符來表示,包含冗余信息較大,而且Intel Hex格式僅含目標碼的地址信息與具體內容,而無法區(qū)分目標碼的類別,因而需要對Intel Hex進行擴展,以降低冗余并支持更多的操作。擴展的Hex不使用ASCII字符,而直接使用原數據格式,這樣可以降低一半數據量。為了與Intel Hex格式有所區(qū)分,采用“;”作為前綴標識,格式如表1所示。同時對數據類型進一步擴展,用以區(qū)分各種目標碼類別,如表2所示。
可以看出,表2中僅包括擦除各種類型目標碼的指令,而沒有包含寫入目標碼時區(qū)分類別的具體指令,這是因為寫入時各種不同類型的目標碼可以直接通過地址來區(qū)分,每種類型目標碼都有自己單獨的地址段,相互之間沒有交叉。Flasher流程如圖3所示,通過解析Hex記錄格式,來判斷命令類型,從而進行相應的操作。其中校驗模式用于驗證Flash中所存儲的程序代碼是否與串行端口上收到的數據一致。所有程序更新結束之后,通過重新啟動命令復位OMAP芯片,使整個系統(tǒng)重新啟動。
3 拷貝程序耗時對比測試
采用Intel公司RD48F3000P0ZBQ0 Flash存儲器以及三星K4M56163PG移動版SDRAM與OMAP5910相連,組成OMAP5910運行所需的最小系統(tǒng),OMAP運行頻率144 MHz。分別采用傳統(tǒng)啟動方式(程序在Flash中運行)以及本文所述的啟動方式(程序在RAM中運行)從Flash中拷貝相同長度的數據到SDRAM中,測試其耗時。每次拷貝數據量選取64 KB~8 192 KB,每種數據量每種方式測試5次,具體時間如表3所示,其中表3(a)為程序在RAM中運行時的耗時,表3(b)為程序在Flash中運行時的耗時。由表中數據對比可以看出,拷貝數據量較大時,本文中所述的RAM拷貝方式優(yōu)勢比較明顯,有大約20%的提高,對于目前的嵌入式操作系統(tǒng)來說,基本內核的代碼量都比較大,因而采用本文所述的方式能夠帶來比較大的耗時改善。
OMAP作為一種整合了ARM控制能力與DSP數據處理能力的雙核心處理器已經廣泛應用于各種嵌入式設備中,但大多數OMAP處理器通過外部Flash啟動,既浪費時間又有較高風險。本文針對OMAP啟動過程中的這一缺陷,設計的多級啟動Boot Loader較之傳統(tǒng)方式有較大的性能改善,目前已在數字集群手持終端、網絡多媒體可視電話等項目中得到成功應用,并取得很好的效果。
喜來登酒店及度假村于中國西南地區(qū)中心城市成都為旅行者打造全新會聚之所 新酒店致力于成為成都充滿活力和吸引力的創(chuàng)新和生態(tài)旅游目的地郫都區(qū)的社交中心,為賓客在此溝通交流并提升工作效率提供便利 成都2022年4月24日 /...
關鍵字: BOOT 創(chuàng)客 AN SE- 與安慰劑相比,如果因急性心力衰竭住院的成人患者在病情穩(wěn)定后、出院前開始服用恩格列凈,其在 90 天內獲得臨床益處的可能性要高 36% - 臨床獲益在新發(fā)或者...
關鍵字: MPU