資源描述:
《基于s3c2410開(kāi)發(fā)板的bootloader的啟動(dòng)分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于s3c2410開(kāi)發(fā)板的BootLoader的啟動(dòng)分析發(fā)布:2010-5-0122:38?
2、??作者:西南科技大學(xué)劉軍芳李眾立?
3、??來(lái)源:MCU嵌入式領(lǐng)域?摘要:BootLoader是操作系統(tǒng)和硬件的樞紐,負(fù)責(zé)初始化硬件和引導(dǎo)操作系統(tǒng)的內(nèi)核,目前已有一些通用的BootLoader,但是如何根據(jù)特定的嵌入式平臺(tái),開(kāi)發(fā)BootLoader是一個(gè)重點(diǎn)和難點(diǎn)。本文通過(guò)闡述VIVI分析了BootLoader開(kāi)發(fā)的特點(diǎn)和模式,詳細(xì)說(shuō)明了BootLoader要完成的主要任務(wù)和實(shí)現(xiàn)方法。0引言???BootLoader通常稱為
4、系統(tǒng)的引導(dǎo)程序,是系統(tǒng)復(fù)位后執(zhí)行的第一段代碼,相當(dāng)于PC上的BIOS以及商業(yè)實(shí)時(shí)操作系統(tǒng)中的板級(jí)支持包BSP,,其作用是初始化硬件設(shè)備、建立內(nèi)存空間的映射圖、為最終調(diào)用操作系統(tǒng)內(nèi)核做好準(zhǔn)備。BootLoader獨(dú)立于操作系統(tǒng),必須有用戶自己設(shè)計(jì),它的實(shí)現(xiàn)高度依賴于硬件,包括處理器的體系結(jié)構(gòu)、具體型號(hào)、硬件電路板的設(shè)計(jì)。在基于S3C2410的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)通常都從地址0x00000000處開(kāi)始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。???1系統(tǒng)硬件平臺(tái)簡(jiǎn)介???本系統(tǒng)采用S
5、amSung公司的S3C2410處理器,采用ARM920T為內(nèi)核的處理器,有內(nèi)存管理單元,支持WINCE和Linux操作系統(tǒng)。存儲(chǔ)器使用64MB的NANDFlash和64MB的DRAM.集成有SDRAM內(nèi)存控制器、NNADFlash控制器、SD卡控制器、USBHost、USBDevice控制器、LCD控制器、IIC總線控制器、IIS控制器、SPI接口等等多種接口,可用于手持設(shè)備、可視化電話、VoIP、網(wǎng)絡(luò)監(jiān)控、多媒體終端產(chǎn)品、醫(yī)療電子設(shè)備等領(lǐng)域。BootLoader、內(nèi)核映像和文件系統(tǒng)映像在系統(tǒng)中的典型空間分配結(jié)構(gòu)
6、圖如下:???2VIVI簡(jiǎn)介???VIVI是由韓國(guó)Mizi公司開(kāi)發(fā)的一種BootLoader,適合于ARM9處理器,支持S3C2410,該系統(tǒng)采用的BootLoader就是VIVI。???2.1VIVI的操作模式???和所有的BootLoader一樣,VIVI也有兩種工作模式,即啟動(dòng)模式和下載模式。???2.1.1啟動(dòng)加載(Bootloading)模式???這種模式也稱為“自主”(Autonomous)模式。也即BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒(méi)有用戶的介入
7、。這種模式是BootLoader的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時(shí)候,BootLoader必須工作在這種模式下。???2.1.2下載(Downloading)模式在這種模式下,目標(biāo)機(jī)上的BootLoader將通過(guò)串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)(Host)下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被BootLoader保存到目標(biāo)機(jī)的RAM中,然后再被BootLoader寫(xiě)到目標(biāo)機(jī)上的FLASH類固態(tài)存儲(chǔ)設(shè)備中。BootLoader的模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)被使用;
8、此外,以后的系統(tǒng)更新也會(huì)使用BootLoader的這種工作模式。工作于這種模式下的BootLoader通常都會(huì)向它的終端用戶提供一個(gè)簡(jiǎn)單的命令行接口。???2.2VIVI的啟動(dòng)方式???VIVI提供了MTD(MemoryTechnologyDevice),修改代碼就可以從不同的存儲(chǔ)器啟動(dòng)。即VIVI可以從NANDFlash中啟動(dòng),也可以從NorFlash中啟動(dòng),選擇不同類型的Flash上啟動(dòng),它的使用方法會(huì)有一些差別。該系統(tǒng)的硬件平臺(tái)選用斯道S3C2410普及版,只有64MB的NANDFlash,所以系統(tǒng)的VIVI
9、是從NANDFlash中啟動(dòng)的,因此這里只介紹從NANDFlash中啟動(dòng):???NANDFlash沒(méi)有專門(mén)的地址線,所以他在系統(tǒng)中沒(méi)有地址空間(它的結(jié)構(gòu)是共用地址和數(shù)據(jù)線,通過(guò)分時(shí)發(fā)送地址和數(shù)據(jù)的),只適合來(lái)存儲(chǔ)數(shù)據(jù),不能夠直接在其上執(zhí)行程序指令。只有利用S3C2410專門(mén)內(nèi)置的NANDFlash控制器解決這個(gè)問(wèn)題:通過(guò)在芯片內(nèi)設(shè)置了4KB的名為StepStone的RAM來(lái)完成NANDFlash啟動(dòng)功能。即通過(guò)NANDFlash啟動(dòng)的啟動(dòng)代碼不要超過(guò)4KB,芯片復(fù)位后可以自動(dòng)將NANDFlash最開(kāi)始的4KB內(nèi)容拷
10、貝到StepStone中,然后開(kāi)始執(zhí)行。NANDFlash的最開(kāi)始部分是head.S,在head.S的尾部VIVI將自身拷貝到RAM中,然后跳轉(zhuǎn)到RAM中的main()函數(shù),開(kāi)始運(yùn)行。???2.3編譯VIVI???在VIVI窗口中輸入如下命令:???$>makeclean???$>makemenuconfig???在menuconfig窗口中,選擇LoadC