ARM平臺(tái)下的嵌入式linux移植大綱_第1頁(yè)
ARM平臺(tái)下的嵌入式linux移植大綱_第2頁(yè)
ARM平臺(tái)下的嵌入式linux移植大綱_第3頁(yè)
ARM平臺(tái)下的嵌入式linux移植大綱_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、首先要理解嵌入式系統(tǒng)移植的基本概念:軟件的移植是系統(tǒng)開(kāi)發(fā)中最常見(jiàn)的一項(xiàng)工作。嵌入式系統(tǒng)移植一般來(lái)說(shuō)指的是引導(dǎo)程序、操作系統(tǒng)等和硬件關(guān)系比較密切的軟件在一個(gè)新的硬件平臺(tái)上運(yùn)行起來(lái)的過(guò)程。嵌入式系統(tǒng)移植分為以下幾種:引導(dǎo)程序移植操作系統(tǒng)移植應(yīng)用程序移植引導(dǎo)程序移植1、引導(dǎo)程序就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段程序。通過(guò)這段程序,可以初始化硬件設(shè)備、將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境2、引導(dǎo)程序的主要目的有兩個(gè):初始化硬件和引導(dǎo)操作系統(tǒng)。一般來(lái)說(shuō),只要能在硬件平臺(tái)上把這兩個(gè)部分做好就可以了操作系統(tǒng)移植中關(guān)心的是以下幾個(gè):中斷系統(tǒng)的移植:不同的硬件系統(tǒng)中

2、斷結(jié)構(gòu)差別都非常大,正確的移植是設(shè)備驅(qū)動(dòng)能正常工作的前提時(shí)鐘系統(tǒng)的移植:時(shí)鐘是維系整個(gè)操作系統(tǒng)的運(yùn)行的基石內(nèi)存管理系統(tǒng)的移植:一般對(duì)linux來(lái)說(shuō)主要是IO映射的移植設(shè)備驅(qū)動(dòng)的移植os移植需要掌握的概念時(shí)鐘系統(tǒng)在線程切換中的作用時(shí)鐘與中斷(重中之重)mmu的概念虛擬內(nèi)存的映射應(yīng)用程序移植應(yīng)用程序移植一般指的是將其移植到某個(gè)操作系統(tǒng)上,難度一般是體現(xiàn)在將一個(gè)應(yīng)用移植到一個(gè)新的操作系統(tǒng)的情況下存在的。硬件平臺(tái)的差異對(duì)于應(yīng)用影響不是很大,當(dāng)然也不排除一些需要特殊硬件支持的應(yīng)用程序。系統(tǒng)移植的難點(diǎn)一般來(lái)說(shuō),嵌入式系統(tǒng)移植工作中的代碼編寫(xiě)量不會(huì)很大,代碼的邏輯也不會(huì)非常復(fù)雜。移植的難度并不在于代碼的編寫(xiě)

3、,而在于移植者對(duì)于系統(tǒng)的理解程度。移植者必須對(duì)所移植的系統(tǒng)的硬件結(jié)構(gòu)、操作系統(tǒng)的基本工作原理等非常理解,才可能把移植工作很好的完成Bootloader移植什么是bootloader簡(jiǎn)單地說(shuō),bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。bootloader的主要功能1、PC系統(tǒng)中的BIOS啟動(dòng)和自檢OS Loader:grub 或LILOPC系統(tǒng)啟動(dòng)過(guò)程2、嵌入式系統(tǒng)中的初始化硬件,為系統(tǒng)運(yùn)行建立環(huán)境,類(lèi)似PC的BIOS讀入OS核心

4、并引導(dǎo)為系統(tǒng)的可升級(jí)性和可調(diào)試性提供方便將系統(tǒng)的可執(zhí)行image進(jìn)行替換和升級(jí)從串口或Ethernet向目標(biāo)系統(tǒng)中下載image建立一個(gè)基本的命令環(huán)境bootloaderstage1硬件設(shè)備初始化(內(nèi)存控制器的設(shè)置)為加載bootloader的stage2部分的代碼準(zhǔn)備RAM空間拷貝bootloader的stage2部分的代碼到RAM空間中,并跳轉(zhuǎn)執(zhí)行設(shè)置好堆棧,Heap等跳轉(zhuǎn)到stage2的C入口點(diǎn)bootloaderstage2初始化本階段要使用到的硬件設(shè)備(net,flash等)將OS映像從flash上讀到RAM空間中為OS設(shè)置啟動(dòng)參數(shù)跳轉(zhuǎn)到OS內(nèi)核image的入口點(diǎn)U-Boot(Uni

5、versal Bootloader)GPL下資源代碼最完整的一個(gè)通用BootLoader支持絕大部分處理器架構(gòu)Powerpc arm mips i386 nios m68k .支持大量開(kāi)發(fā)板:214個(gè)開(kāi)發(fā)板(u-boot)大量外設(shè)驅(qū)動(dòng)U-Boot的目錄樹(shù)結(jié)構(gòu)board/:所有支持的開(kāi)發(fā)板cpu/:所有支持的cpudisk/,drivers/,fs/,lib_xxx/,net/,toos/,etcu-boot的編譯重點(diǎn)理解 鏈接腳本start.o_ u-boot.lds- =>link<=與開(kāi)發(fā)板相關(guān)的*.c文件 libgcc.a-/ link->u-boot(elf)->

6、;OBJCOPY -O binary->u-boot.binu-boot的啟動(dòng)過(guò)程分析(第一階段)關(guān)中斷,初始化PLL,設(shè)置時(shí)鐘,MMU操作,lowlevel_init(初始化bank時(shí)序) 重定位u-boot,實(shí)際大部分情況是將u-boot第二階段代碼和數(shù)據(jù)拷貝到SDRAM中 設(shè)置stack,這里實(shí)際也包括設(shè)置heap等 clear BSS段 跳轉(zhuǎn)到第二階段(注意已經(jīng)是在C的環(huán)境中) u-boot的啟動(dòng)過(guò)程分析(第二階段)分配gd:gd = (gd_t*)(_armboot_start-CFG_MALLOC_LEN-sizeof(gd_t); 調(diào)用初始化序列 board_init in

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論