1. 程式人生 > >uboot之uboot編譯實踐和內部目錄介紹

uboot之uboot編譯實踐和內部目錄介紹

                                               編譯實踐            

一、關於uboot的原始碼編譯生成uboot.bin 

    1、我用的是朱有鵬老師的課程所以我有官方已經移植好的uboot原始碼所以我只是講一下

        uboot編譯的過程和結果。(這是原始碼解壓包的名稱    qt_x210v3_130807.tar.bz2)

    2、配置:

             (1)、uboot和linux kernel等複雜專案,都不能直接編譯,都需要先配置才能編譯。

             (2)、先進入uboot原始碼的根目錄,然後在根目錄下執行:make x210_sd_config。

             (3)、如果出現Configuring for x210_sd_board...那麼配置成功。   

             

               配置成功。

    3、編譯得到uboot.bin

                (1)、檢查當前編譯環境中有沒有安裝合適的arm-linux-gcc。我們裝的是arm-2009q3,

                            因為這個是三星官方、九鼎官方開發uboot時使用的。

                (2)、檢查當前目錄下(uboot根目錄)的Makefile中編譯器的設定是否正確。在工程的

                            總Makefile中會設定交叉編譯工具鏈的路徑和名字,必須確保這個路徑和名字和我

                            們自己裝的一致,否則編譯會出錯。

                 (3)、確保了以上2點,即可進行編譯。編譯很簡單,直接make即可。或者可以make -j4 

                            (多執行緒編譯,主機如果是多核心電腦,可以嘗試多執行緒編譯,會快一些)。

                      可以在倒數第二列的最面看見我們編譯生成的uboot.bin。

                                         目錄分析                               

一、目錄的簡介

        1、九鼎官方uboot和三星原版uboot對比

        2、不同版本的uboot或者同一版本不同人移植uboot,可能目錄結構和檔案內容都有所不同。

        3、九鼎在以三星的uboot為原材料進行移植時,把三星原版中很多不必要的資料夾都刪除了。

            減小不必要的檔案,可以減小整體的檔案數量,便於工作。

二、關於檔案內容簡介

        1、.gitignore。git工具的檔案,git是一個版本管理工具(類似的還有個svn),這個檔案和git有關,

            和uboot本身無關的,不用去管。

        2、arm_config.mk。字尾是.mk,是一個Makefile檔案,將來在某個Makefile中會去呼叫它。

        3、三個Changlog檔案,修改記錄檔案,改檔案記錄了這個uboot專案的版本變遷以及每個版本。正

            式的專案都有這些記錄的。可以直接忽略,主要是給維護人員用的。

        4、config.mk。和arm_config.mk差不多性質。

        6、CREDITS。鳴謝,裡面記錄了對uboot有貢獻的人,感謝目錄。

        7、image_split。一個指令碼,看說明是用來分割uboot.bin到BL1的,暫時用不到。

        8、MAINTAINERS。維護者,就是當前在參與維護uboot原始碼的社群工作者。

        9、MAKEALL。一個指令碼,應該是幫助編譯uboot的。

        10、Makefile。這個很重要,是uboot原始碼的主Makefile,將來整個uboot被編譯時就是用Makefile

            管理編譯的。

        11、mk。快速編譯的指令碼,其實就是先清理然後配置然後編譯而已。

        12、mkconfig。這個很重要,是uboot配置階段的主要配置指令碼。uboot的可移植性很大程度就是靠

            這個配置指令碼在維護的。

        13、mkmovi。暫時不去管他,一個指令碼,和iNand/SD卡啟動有關。

        14、README。所有的軟體都有README,一般拿到一個東西要先讀README,這個東西其實就是

             個簡單的使用說明書。

        15、rules.mk。這個檔案是我們uboot的Makefile使用的規則,本身非常重要,但是我們不去分析他,

              不去看他。

        16、api.     硬體無關的功能函式的API。uboot移植時基本不用管,這些函式是uboot本身使用的。

        17、api_examples.     API相關的測試例項程式碼。

        18、board。board是板的意思,板就是開發板。board資料夾下每一個檔案就代表uboot曾被移植

               到。

        20、CPU。這個目錄是SoC相關的,裡面存放的程式碼都是SoC相關初始化和控制程式碼。每個子檔案

               都是一個系列的SoC的初始化。

        21、disk。和磁碟相關的。

        22、doc。文件目錄,裡面存放了很多uboot相關文件。這些文件可以幫助我們理解uboot程式碼。

        23、drivers。顧名思義,驅動。這裡放的就是從linux原始碼中摳出來的原封不動的linux裝置驅動,

            主要是開發板上必須用到的一些驅動。主要是開發板上必須用到的一些驅動。uboot中的驅動

            是linux驅動的一部分。

        24、example。示例程式碼,沒用過。

        25、fs。filesystem,檔案系統。這個也是從linux原始碼中移植過來的,用來管理Flash等資源。

        26、以lib_開頭的一些檔案,(典型的lib_arm和lib_generic)架構相關的庫檔案。譬如lib_arm裡面

               就是arm架構使用的一些庫檔案。lib_generic裡是所有架構通用的庫檔案。這類資料夾中的內容

                移植時基本不用管。

        27、libfdt。裝置樹有關的。linux核心在3.4左右的版本的時候更改了啟動傳參的機制,改用裝置樹來

                進行啟動傳參,進行硬體資訊的描述了。

        28、nand_spl。nand相關的,不講。

        29、net。網路相關的程式碼,譬如uboot中的tftp nfs ping命令 都是在這裡實現的。

        30、onenand開頭的,是onenand相關的程式碼,是三星加的,標準uboot中應該是沒有的。

        31、post。沒關注過,不知道幹嘛的。

        32、sd_fusing。這裡面程式碼實現了燒錄uboot映象到SD卡的程式碼。後面要仔細研究的。

        33、tools。裡面是一些工具類的程式碼。譬如mkimage。

        總結:以上這些檔案中,比較重要的是mkconfig和Makefile。

 歡迎各位指出不足之處          

相關推薦

ubootuboot編譯實踐內部目錄介紹

                                               編譯實踐            一、關於uboot的原始碼編譯生成uboot.bin     1、我用的是朱有鵬老師的課程所以我有官方已經移植好的uboot原始碼所以我只是講一下  

UBOOT分析編譯過程 make

開啟Makefile 117行的config.mk就是前面配置過程中生成的config.mk ,裡面定義了ARCH CPU BOARD SOC 165行是頂層目錄中的config.mk,根據上面四個變數的值確定編譯器、編譯選項等 而在Makefile

Linux檔案處理命令常見目錄

一、目錄或檔案處理命令: 1、建立目錄: mkdir -p [目錄名] -p:遞迴建立 注意:沒有-p 時,只能建立一級目錄;目錄也是檔案,稱為目錄檔案 2、切換所在目錄: cd [目錄] cd ~ :進入當前家目錄 cd - :返回上一次目錄 cd … :進入上一級目

ubootuboot中的硬體驅動

一、uboot和linux驅動    1、uboot本身是裸機程式,裸機程式是沒有驅動概念的    2、裸機程式是直接操控硬體的,作業系統中必須通過驅動來操控硬體。這兩個的區別在於分層。    3、uboot的虛擬地址對硬體操作的影響        (1)、作業系統(linu

ubootuboot中環境變數

一、環境變數基礎    1、環境變數的作用        讓我們可以不用修改uboot的原始碼,而是通過修改環境變數來影響uboot執行時的一些資料和特性。譬如說通過        修改bootdelay環境變數就可以更改系統開機自動啟動時倒數的秒數。    2、環境變數優先

【小家java】java8新特性---外部迭代內部迭代(對比效能差異)

相關閱讀 從一個案例開始:遍歷一個集合 外部迭代 最傳統的方法是用Iterator,當然還以用for i、增強for迴圈等等。這一類方法叫做外部迭代,意為顯式地進行迭代操作,即集合中的元素訪問是由一個處於集合外部的東西來控制的,在這裡控制著迴圈的東西就是

servlet學習servlet中cookiesession的介紹

前言 記得在校招的時候總是會問及怎樣解決http的無狀態問題,其實自己知道有隱藏表單,cookie,令牌,session等技術可是具體的流程及由來,還有應用我是一臉懵逼的。。。 大綱 Cookie概述Cookie使用的三個步驟Cookie的機制Cookie的安全問題Sess

五.linux開發uboot移植(五)——uboot配置編譯過程詳解

一.uboot主Makefile分析1 1、uboot version確定(Makefile的24-29行) Makefile程式碼部分 (1)uboo

uboot移植配置編譯過程詳解4

/****************************************************************     uboot的連結指令碼:u-boot.lds     時間:2018年11月下旬  &

uboot移植配置編譯過程詳解3

/**************************************************************************************     2018.10下旬     針對三星官方為210移植過的

uboot移植配置編譯過程詳解2

/***********************************************************************************             2018.11月

uboot原始碼目錄分析

(1).gitignore。git工具的檔案,git是一個版本管理工具(類似的還有個svn),這個檔案和git有關,和uboot本身無關的,不用去管。 (2)arm_config.mk。字尾是.mk,是一個Makefile檔案,將來在某個Makefile中會去呼叫它。 (3)三個Changelog檔

三.linux開發uboot移植(三)——.基礎shellMakefile回顧

一.補基礎之shell 1.shell程式執行的執行有多種方法,這裡介紹三種方法: 第一種:./xx.sh,和執行二進位制可執行程式方法一樣。這樣執行shell要求shell程式必須具有可執行許可權。chmod a+x xx.sh來新增可執行許可權。 第二

建立LINUX開發環境並編譯LINUXUBOOT以及生成裝置樹過程總結

檔案linux-digilent-3.6-digilent-13.01.zip 檔案u-boot-digilent-digilent-v2012.04.zip /WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/ar

uboot移植ubootkernel的引數傳遞

從uboot啟動核心的形式theKernel (0, machid, bd->bi_boot_params) 可以看出uboot給核心傳遞了3個引數,第1個是0,第2個是機器碼,第3個是引數列表在SDRAM的起始位置 剛好滿足一下呼叫核心的條件• R0=0。 • R1

新版uboot配置、編譯

size www target ref tle 移植 targe font mil 轉載文章來至於: http://www.linuxidc.com/Linux/2015-02/112934.htm新版uboot配置、編譯

Python路-目錄規範不同目錄間進行模塊調用

base 轉換成 arm 環境變量 規範 有環 路徑 pytho package 目錄規範: 預備知識: 要實現不同目錄間進行模塊調用必須在當前文件夾中創建一個空的__init__.py的文件(pycharm會在創建python package的時候自動創建),有

uboot位置無關代碼解析

nor flash 初始 處理器 特性 直接 全局函數 判斷 編譯 但是 在之前的話   新年過去了,那麽久沒有好好學習,感覺好頹廢,現在就uboot的一些基礎問題做一些筆記,順便分享給大家,不過由於見識有限,如果有不足之處請多多指教。 位置無關?什麽意思?我們先了

從0移植uboot(三) _編譯最小可用uboot

for 移植 腳本 wid fine been dbo 設備 var 來源:Linux社區 作者:xiaojiang1025 :http://www.linuxidc.com/Linux/2017-02/141020.htm 前兩篇介紹了uboot-

CMMI功能點估算法---內部邏輯文件外部接口文件

組織 種類型 字段 圖片 信息 cmm 程序 執行 external 功能點分析的步驟 在本文中將以國際標準IFPUG(International Function Point Users Group)組織提供的功能點估算法V4.1.1為基礎與大家進行講解。