課嵌入式系統(tǒng)的BootLoader技術(shù)ppt課件_第1頁(yè)
課嵌入式系統(tǒng)的BootLoader技術(shù)ppt課件_第2頁(yè)
課嵌入式系統(tǒng)的BootLoader技術(shù)ppt課件_第3頁(yè)
課嵌入式系統(tǒng)的BootLoader技術(shù)ppt課件_第4頁(yè)
課嵌入式系統(tǒng)的BootLoader技術(shù)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)嵌入式系統(tǒng)An Introduction to An Introduction to Embedded SystemEmbedded System第四課第四課 嵌入式系統(tǒng)的嵌入式系統(tǒng)的BootLoaderBootLoader技術(shù)技術(shù) 教師:蔡銘教師:蔡銘 助教:王廣輝助教:王廣輝 embededsystem.caigmembededsystem.caigmailail浙江大學(xué)計(jì)算機(jī)學(xué)院人工智浙江大學(xué)計(jì)算機(jī)學(xué)院人工智能研究所能研究所航天科技浙江大學(xué)基礎(chǔ)軟航天科技浙江大學(xué)基礎(chǔ)軟件研發(fā)中心件研發(fā)中心課程大綱課程大綱 Bootloader程序的基本概念 B

2、ootloader典型框架結(jié)構(gòu) S3C2410 Bootloader代碼分析 嵌入式軟件開發(fā)環(huán)境建立實(shí)驗(yàn)從一個(gè)最小的從一個(gè)最小的“操作系統(tǒng)說起操作系統(tǒng)說起摘自 int19_relocated - int19_functionp INT 18H:int18_handlerBIOS模擬模擬rombios.c分析分析嵌入式系統(tǒng)的嵌入式系統(tǒng)的Boot Loader程序程序1/2)在嵌入式系統(tǒng)中沒有BIOS那樣的固件程序,因此,整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)完全由BootLoader來(lái)完成?;贏RM內(nèi)核的嵌入式系統(tǒng),加電或復(fù)位的地址為0 x00000000,Boot Loader程序的入口就安排在該地址上。

3、Boot Loader的實(shí)現(xiàn)依賴于硬件環(huán)境 CPU體系結(jié)構(gòu):ARM、PPC、x86、MIPS板級(jí)設(shè)備:時(shí)鐘、FLASH、通訊端口Boot Loader的入口地址Boot Loader與開發(fā)機(jī)的通訊機(jī)制 串口網(wǎng)絡(luò) 專用Boot Loader通用Boot Loader:U-boot、Redboot嵌入式系統(tǒng)的嵌入式系統(tǒng)的Boot Loader程序程序2/2)由由Boot Loader啟動(dòng)操作系統(tǒng)的方式啟動(dòng)操作系統(tǒng)的方式FlashFlash啟動(dòng)方式啟動(dòng)方式硬盤啟動(dòng)方式硬盤啟動(dòng)方式在硬盤主引導(dǎo)區(qū)放置在硬盤主引導(dǎo)區(qū)放置bootloaderbootloader從文件系統(tǒng)中引導(dǎo)操作系統(tǒng)從文件系統(tǒng)中引導(dǎo)操作系

4、統(tǒng)網(wǎng)絡(luò)啟動(dòng)方式網(wǎng)絡(luò)啟動(dòng)方式BootloaderBootloader放置在放置在EPROMEPROM或或FlashFlash中中通過以太網(wǎng)遠(yuǎn)程下載操作系統(tǒng)內(nèi)核或文件系通過以太網(wǎng)遠(yuǎn)程下載操作系統(tǒng)內(nèi)核或文件系統(tǒng)統(tǒng)開發(fā)板不需配置大的存儲(chǔ)介質(zhì)開發(fā)板不需配置大的存儲(chǔ)介質(zhì)Bootloader參數(shù)區(qū)操作系統(tǒng)內(nèi)核文件系統(tǒng)參數(shù)區(qū)操作系統(tǒng)內(nèi)核文件系統(tǒng)簡(jiǎn)單Bootloader只具有系統(tǒng)引導(dǎo)功能具有監(jiān)控功能Monitor的Bootloader調(diào)試支持內(nèi)存讀寫Flash燒寫網(wǎng)絡(luò)下載環(huán)境變量配置Boot Loader的功能種類的功能種類名稱支持體系結(jié)構(gòu)是否MonitorLILOX86否GRUBX86否BLOBARM否Eth

5、erbootX86否UbootX86、ARM、PPC是RedBootX86、ARM、PPC是 VIVIARM是開放源碼的開放源碼的Boot Loader程序程序課程大綱課程大綱 Bootloader程序的基本概念 Bootloader典型框架結(jié)構(gòu) S3C2410 Bootloader代碼分析 嵌入式軟件開發(fā)環(huán)境建立實(shí)驗(yàn)Boot Loader的典型框架結(jié)構(gòu)的典型框架結(jié)構(gòu)Boot Loader的啟動(dòng)過程通常是多階段的提供復(fù)雜的功能:突破引導(dǎo)扇區(qū)512字節(jié)限制提高代碼移植性:高階段代碼采用高級(jí)語(yǔ)言提高運(yùn)行速度 :高階段代碼在內(nèi)存中執(zhí)行大多數(shù)Boot Loader可分為階段1和階段2兩大部分 階段1:

6、實(shí)現(xiàn)依賴于CPU體系結(jié)構(gòu)的代碼 階段2:實(shí)現(xiàn)一些復(fù)雜的功能 Boot Loader階段階段1介紹介紹1/4)Boot Loader的階段1通常包括以下步驟:1硬件設(shè)備初始化屏蔽所有的中斷 設(shè)置CPU的速度和時(shí)鐘頻率 RAM初始化 初始化LED 關(guān)閉CPU內(nèi)部指令數(shù)據(jù)Cache 2為加載階段2準(zhǔn)備RAM空間 除了階段2可執(zhí)行映象的大小外,還必須把堆??臻g也考慮進(jìn)來(lái) 必須確保所安排的地址范圍的確是可讀寫的RAM空間內(nèi)存區(qū)域有效性檢測(cè)方法保存指定內(nèi)存區(qū)域?qū)懭腩A(yù)定數(shù)據(jù)讀入數(shù)據(jù)并比較恢復(fù)內(nèi)存數(shù)據(jù)Boot Loader階段階段1介紹介紹2/4)3拷貝階段2代碼到RAM中 4設(shè)置堆棧指針sp 5跳轉(zhuǎn)到階段2

7、的C語(yǔ)言入口點(diǎn)Boot Loader 的階段1執(zhí)行完成后的RAM 空間布局,如下圖:Boot Loader階段階段1介紹介紹3/4)Boot Loader階段階段1介紹介紹4/4)Boot Loader階段階段2介紹介紹1/8)1初始化本階段要使用到的硬件設(shè)備初始化至少一個(gè)串口,以便和終端用戶進(jìn)行I/O輸出信息 初始化計(jì)時(shí)器等2檢測(cè)系統(tǒng)的內(nèi)存映射 內(nèi)存映射的描述 可以用如下數(shù)據(jù)結(jié)構(gòu)來(lái)描述RAM地址空間中的一段連續(xù)的地址范圍: 內(nèi)存映射的檢測(cè) typedef struct memory_area_struct u32 start; /* 內(nèi)存空間的基址 */u32 size; /* 內(nèi)存空間的大

8、小 */int used; memory_area_t;Boot Loader階段階段2介紹介紹2/8)連續(xù)內(nèi)存區(qū)域探測(cè)X86系統(tǒng)內(nèi)存探測(cè)算法舉例for (p = (char *)0 x100000; (int)p 0 x40000000; p += delta) for (ix = 0; ix N_TIMES; ix+) /* 保存內(nèi)存原有信息 */ tempix = *(int *)p + ix);*(int *)p + ix) = TEST_PATTERN; /*TEST_PATTERN0 x12345678*/ cacheFlush (DATA_CACHE, p, 4 * sizeof

9、(int); if (*(int *)p != TEST_PATTERN)/* 測(cè)試內(nèi)存單元有效性 */p -= delta; for (ix = 0; ix hdr.tag = ATAG_MEM;params-hdr.size = tag_size(tag_mem32);params-u.mem.start = memory_mapi.start;params-u.mem.size = memory_mapi.size;params = tag_next(params);指針params是一個(gè)struct tag類型的指針。宏tag_next()將以指向當(dāng)前標(biāo)記的指針為參數(shù),計(jì)算出當(dāng)前標(biāo)記的

10、下一個(gè)標(biāo)記的起始地址。 Boot Loader階段階段2介紹介紹7/8)5調(diào)用內(nèi)核 CPU寄存器的設(shè)置:R00;R1機(jī)器類型ID;關(guān)于機(jī)器類型號(hào),可以參見:linux/arch/arm/tools/mach-types。 R2啟動(dòng)參數(shù)標(biāo)記列表在RAM中起始基地址; CPU 方式: 必須禁止中斷IRQs和FIQs);CPU必須SVC模式; Cache和MMU的設(shè)置:MMU必須關(guān)閉;指令Cache可以打開也可以關(guān)閉;數(shù)據(jù)Cache必須關(guān)閉。Boot Loader階段階段2介紹介紹8/8)課程大綱課程大綱 Bootloader程序的基本概念 Bootloader典型框架結(jié)構(gòu) S3C2410 Boot

11、loader代碼分析 嵌入式軟件開發(fā)環(huán)境建立實(shí)驗(yàn)S3C2410 內(nèi)存地址映像內(nèi)存地址映像n Flash內(nèi)存映像n SDRAM內(nèi)存映像S3C2410 中斷向量設(shè)置中斷向量設(shè)置S3C2410 Bootloadervivivivi是韓國(guó)Mizi公司開發(fā)的一種bootloader,適用于ARM9處理器,支持S3C2410處理器。vivi有兩種工作模式:?jiǎn)?dòng)加載模式下載模式:提供命令行接口命令名稱命令名稱用途用途舉例舉例help命令使用幫助help partrest系統(tǒng)復(fù)位restboot引導(dǎo)操作系統(tǒng)bootpartMTD設(shè)備分區(qū)操作part add partnameload裝載文件load flash

12、 vivi xparam設(shè)置bootloader參數(shù)param showmem內(nèi)存管理mem read 0 x20000vivi命令舉例命令舉例vivi源代碼分析目錄結(jié)構(gòu)源代碼分析目錄結(jié)構(gòu)代碼目錄結(jié)構(gòu)分析vivi源代碼分析階段源代碼分析階段1Bootloader階段1代碼分析禁止看門狗、中斷初始化時(shí)鐘、內(nèi)存設(shè)置LED、GPIO拷貝vivi至內(nèi)存初始化nand flash設(shè)置堆棧寄存器、入口參數(shù)調(diào)用C函數(shù)將vivi由nand flash拷貝至內(nèi)存跳轉(zhuǎn)至內(nèi)存執(zhí)行設(shè)置堆棧寄存器、入口參數(shù)調(diào)用C函數(shù)mainvivi源代碼分析階段源代碼分析階段2Bootloader階段2代碼分析打印系統(tǒng)啟動(dòng)標(biāo)識(shí)初始化CACHE、MMU、Heap初始化MTD設(shè)備初始化系統(tǒng)參數(shù)命令裝載啟動(dòng)shell 或 啟動(dòng)操作系統(tǒng)課程大綱課程大綱 Bootloader程序的基本概念 Bootloader典型框架結(jié)構(gòu) S3C2410 Bootl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論