當前位置:首頁 > 嵌入式 > 嵌入式軟件

1引言  linux具備良好的裁剪性和移植性,并且開源、資源豐富,已成為嵌入式系統(tǒng)的開發(fā)熱點。一個完整的嵌入式linux系通通常包括bootloader、內核、文件系統(tǒng)三部分,目標板上電后由bootloader初始化硬件,引導內核和文件系統(tǒng)來啟動linux。但由于在嵌入式開發(fā)中基于mips體系的bootloader較少,開發(fā)者在移植mips bootloader需花費大量精力。結合octeon3010(mips64)的u-boot移植經驗,分析嵌入式linuxbootloader的工作原理及功能,設計了一個基于mips體系的bootloader模型。對octeon系列的mips處理器bootloader的設計具有參考價值和指導意義?! ? bootloader原理分析  bootloader是在運行操作系統(tǒng)內核前所執(zhí)行的一段小程序。通過執(zhí)行這段小程序,實現(xiàn)初始化硬件設備、建立內存空間的映射圖,從而為系統(tǒng)的軟硬件環(huán)境設置一個合適狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確環(huán)境?! 〈蠖鄶?shù)bootloader包含"啟動加載"和"下載"兩種操作模式。從最終用戶來看,bootloader就是用來加載操作系統(tǒng),而無工作模式區(qū)別。其中,啟動加載模式是bootloader從目標機上的某個固態(tài)存儲設備將操作系統(tǒng)加載到ram中運行,整個過程并沒有用戶介入。這種模式是bootloader的正常工作模式。而在下載模式下,目標機上的bootloader通過串口連接或網(wǎng)絡連接從主機(host)下載文件,例如下載內核映像和根文件系統(tǒng)映像等?! ∮捎趯崿F(xiàn)bootloader依賴cpu的體系結構,因此大多數(shù)bootloader分為stage1和stage2兩部分,并依賴于cpu體系結構的代碼,例如:設備初始化代碼等,通常放在stage1中,一般采用匯編語言。而stage2則通常采用c語言實現(xiàn)復雜功能,而且代碼具有良好的可讀性和移植性。stage1步驟通常包括:硬件設備初始化;為加載bootloader的stage2準備ram空間;拷貝bootloader的stage2到ram空間中;設置好堆棧;跳轉到stage2的c入口點。bootloader的stage2步驟通常包括:初始化當前階段使用的硬件設備;檢測系統(tǒng)內存映射;將kernel映像和根文件系統(tǒng)映像從flash上讀到ram空間中;為內核設置啟動參數(shù);調用內核?! ?設計移植  3.1啟動流程  針對具體的硬件內容,詳細分析u-boot的啟動流程后,給出啟動流程中需要修改的代碼?! ?.2移植分析  片級移植主要是針對具體cpu初始化代碼的修改,針對對應的mips平臺,主要包括:通用寄存器的初始化、cp0的初始化(status,config,watch,count,compare,etc.)、watchdog初始化、cache初始化、tlb初始化。板級移植包括:串口驅動、flash讀寫驅動(nor,nand)、hd讀寫驅動、網(wǎng)卡驅動。而功能層擴展可根據(jù)需求添加新功能或裁減優(yōu)化,包括調試功能、啟動功能、下載功能等。  3.3修改代碼  主要修改的代碼為:makefile添加開發(fā)板的編譯支持;include/configs/myboard.h開發(fā)板的定義,啟動參數(shù)等;cpu/mips/start.s修改初始化代碼和入口;board/myboard/flash.c對應的nor flash驅動;board/myboard/myboard.c對應的板級初始化代碼;board/myboard/lowlevel_init.s初始化硬件的匯編代碼;board/myboard/serial.c串口驅動?! ? octeon系列cpu的硬件初始化實例  4.1開發(fā)環(huán)境及硬件平臺簡介  采用的是宿主機+目標板的開發(fā)模式,宿主機為pc+fc6,目標板的cpu采用基于mips64 v2體系結構的處理器octeon_cn3010,nor flash采用amd公司8 mb的am-29dl640g.sdram采用三星公司512 mb的m378t6553cz3-cd5(64 mb×8 bit)。存儲部分的硬件連接如圖1所示。
  4.2具體實現(xiàn)代碼  系統(tǒng)的起始地址統(tǒng)一規(guī)定為0xbfc00000,加電后,cpu從該地址開始執(zhí)行。該地址也就是系統(tǒng)異常處理向量表的第一項(reset)。0xbfc00000處的中斷向量表起始處的跳轉命令,跳到了inittlbstart中,完成了系統(tǒng)的大部分初始化,例如設置寄存器、cpu、sdram、flash等。以下為具體程序代碼:
  系統(tǒng)完成初始化后,跳轉到board.c。在board.c中的checkboard()函數(shù)將進一步設置cpu、sdram、cache、串口等,并將硬件初始化代碼從flash拷貝到sdram中繼續(xù)運行,最后調用main_loop()函數(shù),進入bootloader的第一個c函數(shù)-main_loop()函數(shù),在這個函數(shù)中將初始化硬件平臺相關的參數(shù)、模塊,并優(yōu)化參數(shù),設置loader參數(shù)等硬件初始化?! ?.3 bootloader的燒錄和啟動  使用flash燒錄器把生成的u-boot.bin文件燒錄到flash后,將其放人目標板的flash槽。目標板通電后,串口輸出數(shù)據(jù)。至此,bootloader被成功移植。  5結語  通過分析引導轉載系統(tǒng)在嵌入式linux系統(tǒng)中的工作原理及功能,結合移植經驗,設計了一個基于mips體系

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉