<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于U-BOOT的S3C44B0引導(dǎo)裝載程序的設(shè)計(jì)與實(shí)現(xiàn)

          基于U-BOOT的S3C44B0引導(dǎo)裝載程序的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-05-21 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/218825.htm

          嵌入式Linux的引導(dǎo)裝載程序()是操作系統(tǒng)內(nèi)核啟動(dòng)之前運(yùn)行的一段程序,其作用與PC機(jī)上的BIOS類似。通過這段程序,將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核做好正確的環(huán)境[1]。 與底層硬件相關(guān)密切,即每個(gè)不同配置的目標(biāo)板都有不同的。對(duì)于兩塊不同的嵌入式板,即使它們使用同一種CPU構(gòu)建,要想讓運(yùn)行在其中一塊上的Bootloader程序也能夠運(yùn)行在另一塊板子上,通常也都需要修改Bootloader源程序。

          嵌入式系統(tǒng)的硬件部分不可能是完全一致的,不可能有通用的bootloader。因此,需要針對(duì)硬件系統(tǒng)進(jìn)行有關(guān)引導(dǎo)程序的設(shè)計(jì)。對(duì)于嵌入式系統(tǒng)來說,引導(dǎo)程序比較復(fù)雜,一般采用對(duì)基本符合硬件體系要求的現(xiàn)有引導(dǎo)程序進(jìn)行移植,然后加以應(yīng)用的方法設(shè)計(jì)引導(dǎo)程序。本文我們選擇功能強(qiáng)大的U-BOOT進(jìn)行移植。

          1.簡介

          ,全稱Universal Boot Loader,是德國DENX小組開發(fā)的用于多種嵌入式CPU的Bootloader引導(dǎo)程序,遵循GPL條款的開放源碼項(xiàng)目。U-Boot是在 ppcboot以及armboot的基礎(chǔ)上發(fā)展而來,現(xiàn)在已經(jīng)非常成熟與穩(wěn)定,在許多嵌入式系統(tǒng)開發(fā)過程中被采用。目前支持的目標(biāo)操作系統(tǒng)包括 VxWorks、QNX、RTEMS、NetBSD、Lynxos等。就目前來看,對(duì)PowerPC系列處理器支持最豐富,同時(shí)還支持 MIPS,x86,ARM,Nios,XScale等諸多常用系列的處理器。U-BOOT對(duì)Linux的支持非常完善,是嵌入式Linux Bootloader的最佳選擇。

          U-BOOT支持的主要功能:

          ◆系統(tǒng)引導(dǎo)——支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統(tǒng),從Flash中引導(dǎo)壓縮或非壓縮系統(tǒng)內(nèi)核。

          ◆基本輔助功能——強(qiáng)大的操作系統(tǒng)接口功能,可靈活設(shè)置、傳遞多個(gè)關(guān)鍵參數(shù)給操作系統(tǒng),適合系統(tǒng)在不同開發(fā)階段的調(diào)試要求與產(chǎn)品發(fā)布,尤其對(duì)Linux支持最強(qiáng)勁。

          ◆設(shè)備驅(qū)動(dòng)——串口、SDRAM、以太網(wǎng)、PCI、RTC等驅(qū)動(dòng)支持。

          ◆上電自檢功能——自動(dòng)檢測(cè)FLASH、SDRAM選型及使用情況。

          2.U-boot的啟動(dòng)流程[2]

          從操作系統(tǒng)的角度看,Bootloader的總目標(biāo)就是正確的調(diào)用內(nèi)核來執(zhí)行。由于Bootloader的實(shí)現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此U-BOOT啟動(dòng)大多數(shù)分為stage1和stage2兩大部分。

          第一階段主要包含依賴于CPU的體系結(jié)構(gòu)硬件初始化代碼,通常都用匯編語言來實(shí)現(xiàn)。U-BOOT的stage1如圖1所示。通常包括以下步驟:

          ①基本的硬件設(shè)備初始化(屏蔽所有的中斷、關(guān)閉處理器內(nèi)部指令/數(shù)據(jù)cache等)。

          ②為加載Bootloader的Stage2準(zhǔn)備空間。

          ③如果是從某個(gè)固態(tài)存儲(chǔ)媒質(zhì)中,則拷貝Bootloader的stage2到RAM空間中。

          ④設(shè)置好堆棧。

          ⑤跳轉(zhuǎn)到stage2的C程序入口點(diǎn)。

          第二階段通常用C語言完成,以便實(shí)現(xiàn)更復(fù)雜的功能,也使程序有更好的可讀性和可移植性。這個(gè)階段的任務(wù)有: ①初始化本階段要使用到的硬件設(shè)備。②檢測(cè)系統(tǒng)內(nèi)存映射。③將kernel映像和根文件系統(tǒng)映像從flash上讀到RAM空間中。④為內(nèi)核設(shè)置啟動(dòng)參數(shù)⑤調(diào)用內(nèi)核。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: Bootloader U-BOOT S3C44B0

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();