新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于U-BOOT的S3C44B0引導裝載程序的設計與實現

        基于U-BOOT的S3C44B0引導裝載程序的設計與實現

        作者: 時間:2012-05-21 來源:網絡 收藏

        引言

        本文引用地址:http://www.104case.com/article/218825.htm

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

        嵌入式系統的硬件部分不可能是完全一致的,不可能有通用的bootloader。因此,需要針對硬件系統進行有關引導程序的設計。對于嵌入式系統來說,引導程序比較復雜,一般采用對基本符合硬件體系要求的現有引導程序進行移植,然后加以應用的方法設計引導程序。本文我們選擇功能強大的U-BOOT進行移植。

        1.簡介

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

        U-BOOT支持的主要功能:

        ◆系統引導——支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統,從Flash中引導壓縮或非壓縮系統內核。

        ◆基本輔助功能——強大的操作系統接口功能,可靈活設置、傳遞多個關鍵參數給操作系統,適合系統在不同開發階段的調試要求與產品發布,尤其對Linux支持最強勁。

        ◆設備驅動——串口、SDRAM、以太網、PCI、RTC等驅動支持。

        ◆上電自檢功能——自動檢測FLASH、SDRAM選型及使用情況。

        2.U-boot的啟動流程[2]

        從操作系統的角度看,Bootloader的總目標就是正確的調用內核來執行。由于Bootloader的實現依賴于CPU的體系結構,因此U-BOOT啟動大多數分為stage1和stage2兩大部分。

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

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

        ②為加載Bootloader的Stage2準備空間。

        ③如果是從某個固態存儲媒質中,則拷貝Bootloader的stage2到RAM空間中。

        ④設置好堆棧。

        ⑤跳轉到stage2的C程序入口點。

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


        上一頁 1 2 3 下一頁

        關鍵詞: Bootloader U-BOOT S3C44B0

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 衡山县| 罗田县| 新营市| 连平县| 琼中| 资中县| 合江县| 巨野县| 旬邑县| 清新县| 克拉玛依市| 响水县| 萝北县| 二手房| 乐清市| 鹰潭市| 新田县| 五指山市| 蒙自县| 大渡口区| 都兰县| 特克斯县| 蒲城县| 衡东县| 林西县| 中超| 赫章县| 鹰潭市| 湟中县| 濮阳县| 宝坻区| 洪湖市| 偏关县| 铅山县| 高邑县| 交城县| 湖口县| 胶州市| 永兴县| 平塘县| 泸西县|