日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux根文件系统的移植 课程设计,linux课程设计bootloader的移植.doc

發(fā)布時(shí)間:2024/1/8 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux根文件系统的移植 课程设计,linux课程设计bootloader的移植.doc 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux課程設(shè)計(jì)bootloader的移植

Linux

設(shè)

計(jì)

報(bào)

課題:嵌入式Linux下的bootloader之u-boot的移植

姓名: 胡歡

專業(yè)班級(jí): 電信三班

學(xué)號(hào):080102031122

指導(dǎo)老師: 劉小洋

時(shí)間: 2011-10-12

一 概述:

(1 ) BootLoader是什么?

系統(tǒng)上電之后,需要一段程序來進(jìn)行初始化:關(guān)閉WATCHDOG、改變系統(tǒng)時(shí)鐘、初始化存儲(chǔ)控制器、將更多的代碼復(fù)制到內(nèi)存中等。如果它能將操作系統(tǒng)內(nèi)核復(fù)制到內(nèi)存中運(yùn)行,無論從本地,比如Flash;Bootloader。

簡(jiǎn)單地說,Boot Loader 就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來完成。

Bootloader 是可以添加功能的,比如網(wǎng)絡(luò)功能。通過串口或網(wǎng)絡(luò)從PC下載燒寫文件、將存儲(chǔ)在Flash 上壓縮的文件解壓后再運(yùn)行等,這樣的Bootloader是比較強(qiáng)大的,也稱為Monitor。實(shí)際上,在最終產(chǎn)品中用戶并不需要使用這些功能,它們只是為了方便開發(fā)。

Bootloader 的實(shí)現(xiàn)非常依賴于具體硬件,在嵌入式系統(tǒng)中硬件配置千差萬別,即使是相同的CPU,它的外設(shè)也可能不同,比如Flash不同,所以不可能有一個(gè)Bootloader 支持所有的CPU、所有的電路板。即使是支持CPU 架構(gòu)比較多的U-Boot,也不是一拿來就可以使用的,需要進(jìn)行一些移植。

(2) 為什么需要BootLoader?

引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的OS BootLoader(比如,LILO和GRUB等)一起組成。BIOS在完成硬件檢測(cè)和資源分配后,將硬盤MBR中的BootLoader讀到系統(tǒng)的 RAM中,然后將控制權(quán)交給OS BootLoader。BootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映象從硬盤上讀到 RAM 中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也即開始啟動(dòng)操作系統(tǒng)。

而在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序(注,有的嵌入式CPU也會(huì)內(nèi)嵌一段短小的啟動(dòng)程序),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來完成。比如在一個(gè)基于ARM7TDMI core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)通常都從地址0開始執(zhí)行,而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。

簡(jiǎn)單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。

嵌入式Linux軟件結(jié)構(gòu)與分布在一般情況下嵌入式Linux系統(tǒng)中的軟件主要分為以下及部分:(1)引導(dǎo)加載程序:其中包括內(nèi)部ROM中的固化啟動(dòng)代碼和Boot Loader兩部分。而這個(gè)內(nèi)部固化ROM是廠家在芯片生產(chǎn)時(shí)候固化的,作用基本上是引導(dǎo)Boot Loader。有的芯片比較復(fù)雜,比如Omap3,他在flash中沒有代碼的時(shí)候有許多啟動(dòng)方式:USB、UART或以太網(wǎng)等等。而S3C24x0則很簡(jiǎn)單,只有Norboot和Nandboot。(2)Linux kernel 和drivers。(3)文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上的文件系統(tǒng)(EXT4、UBI、CRAMFS等等)。它是提供管理系統(tǒng)的各種配置文件以及系統(tǒng)執(zhí)行用戶應(yīng)用程序的良好運(yùn)行環(huán)境的載體。(4)應(yīng)用程序。用戶自定義的應(yīng)用程序,存放于文件系統(tǒng)之中。在Flash 存儲(chǔ)器中,他們的 一般分布如下:

U-Boot主要目錄結(jié)構(gòu)- board 目標(biāo)板相關(guān)文件,主要包含SDRAM、FLASH驅(qū)動(dòng);- common 獨(dú)立于處理器體系結(jié)構(gòu)的通用代碼,如內(nèi)存大小探測(cè)與故障檢測(cè);- cpu 與處理器相關(guān)的文件。如mpc8xx子目錄下含串口、網(wǎng)口、LCD驅(qū)動(dòng)及中斷初始化等文件;- driver 通用設(shè)備驅(qū)動(dòng),如CFI FLASH驅(qū)動(dòng)(目前對(duì)INTEL FLASH支持較好)- doc U-Boot的說明文檔;- examples可在U-Boot下運(yùn)行的示例程序;如hello_world.c,timer.c;- include U-Boot頭文件;尤其configs子目錄下與目標(biāo)板相關(guān)的配置頭文件是移植過程中經(jīng)

總結(jié)

以上是生活随笔為你收集整理的linux根文件系统的移植 课程设计,linux课程设计bootloader的移植.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。