新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > U-Boot在LPC2210上的移植分析

        U-Boot在LPC2210上的移植分析

        作者: 時間:2012-03-22 來源:網絡 收藏

        1.引言

        是嵌入式軟件開發的第一個環節,它為最終加載操作系統內核映像建立了正確的環境。是一個開放源代碼的啟動引導加載程序。筆者以PHILIP公司生產的 處理器為硬件基礎,詳細分析了軟件啟動流程,以及針對源碼本身并不支持的處理器應用U-Boot作為 的移植方法,最后給出了U-Boot在上的移植實例。

        2.簡介

        Bootloader(引導加載程序)是系統加電后運行的第一段軟件代碼。通過運行Bootloader程序,可以初始化硬件設備,建立系統的內存空間映射圖,從而將系統的軟硬件環境帶到一個適合的狀態,以便為最終調用操作系統內核準備好正確的環境。最終,Bootloader把操作系統內核映像加載到RAM中,并將系統控制權傳遞給它。通常Bootloader對硬件的依賴性非常強,特別是在嵌入式系統世界,因此,在嵌入式系統世界里建立一個通用的Bootloader幾乎是不可能的。這就要求開發人員根據不同的硬件環境來開發適合自己開發板的Bootloader程序。

        3.U-Boot軟件結構

        U-Boot,全稱Universal Boot Loader,是遵循GPL條款的開放源碼項目。U-Boot不僅僅支持嵌入式Linux系統的引導,它還支持多種主流嵌入式操作系統。這是U-Boot 中universal的一層含義。另外一層含義則是U-Boot能夠支持MIPS、ARM、XScale等諸多常用系列的處理器。這兩個特點正是U- Boot項目的開發目標,即支持盡可能多的嵌入式處理器和嵌入式操作系統。U-Boot軟件在頂層目錄下有18個子目錄,分別存放和管理不同的源程序。這些目錄按照其不同的規則可以分為三類:

        (1)與處理器體系或開發板硬件直接相關,例如:/board,/cpu,/include等;

        (2)一些通用的函數或者驅動程序,例如:/lib_arm,/driver,/Dtt,/common等;

        (3)U-Boot的應用程序,工具或者文檔,/tools,/Doc,/Fs,/Post,/net等。

        4.啟動流程分析

        U-Boot軟件的啟動程序分為Stage1和Stage2兩個階段。依賴于CPU體系結構的代碼,通常都放在Stage1中,Stage1主要完成:硬件設備初始化;為加載Stage2準備RAM空間,復制Stage2到RAM空間中;設置堆棧;跳轉到Stage2的C入口點。Stage2通常用 C語言來實現,這樣可以實現更復雜的功能,而且代碼會具有更好的可讀性和移植性,在Stage2主要完成:初始化本階段要使用的硬件設備;檢測系統內存映射;將kernel映像和根文件系統映像從Flash上讀到RAM空間;設置內核啟動參數,調用內核。

        5.LPC2210下移植實例

        5.1移植前準備工作

        移植過程中要從軟件和硬件兩個方面準備。首先在Linux操作系統平臺下移植適合LPC2210處理器的交叉編譯環境,直接下載arm-elf- tools-20040427.sh,將它拷貝到根目錄并增加其可執行權限,通過/arm-elf-tools-20040427.sh命令運行腳本,查看/usr/local/bin目錄下有arm-elf開頭的編譯環境文件則證明交叉編譯環境安裝成功。

        開發板硬件平臺是基于ARM7TDMI RISC內核的LPC2210處理器,由于Bootloader軟件是和底層的硬件是緊密相關的,所以在移植前要充分了解與移植有關的開發板硬件信息包括:系統硬件器件地址空間分配,初始化CPU流程、NOR FLASH,RAM驅動及擦寫芯片時序、網絡芯片驅動等。移植相關的硬件框圖如圖1所示:

        硬件框圖 圖1


        上一頁 1 2 3 下一頁

        關鍵詞: Bootloader U-Boot LPC2210

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建德市| 盘山县| 繁昌县| 秭归县| 多伦县| 阳新县| 报价| 宿松县| 桃江县| 湘潭县| 乡城县| 绿春县| 天柱县| 应城市| 漳平市| 灵石县| 永平县| 县级市| 恩平市| 双辽市| 巨鹿县| 紫阳县| 阳谷县| 临汾市| 习水县| 莲花县| 离岛区| 彭泽县| 志丹县| 广平县| 九江市| 上林县| 会宁县| 呼玛县| 玉林市| 德庆县| 眉山市| 双流县| 越西县| 海丰县| 江油市|