UBOOT的移植分析2

2021-08-04 14:41:54 字數 1553 閱讀 5896

uboot的移植分析2

(a)uboot的編譯方式2:

(1):原地編譯:

編譯複雜專案:makefile提供2種編譯管理的方法,預設情況下編譯出來的資料夾

的.c和.o檔案是存放在這些目錄裡面的,就是預設情況下編譯出來的情況,但是我們

有些時候並不希望生成的.o檔案把整個資料夾汙染了

壞處:1、汙染了原始檔的目錄

2、就是一套源**只能按照一種配置和編譯方法進行處理,無法同時維護2個或者2個以上的

配置編譯的方法

(2)指定目錄編譯:

1、為了解決以上2種缺陷,uboot支援單獨輸出資料夾的方式的編譯(當然了linux kernel也是

支援這種方式的)而且uboot的這種方式就是抄linux核心的。

2、如何使用指定目錄編譯:

2.1、第一種:make o=輸出目錄

2.1、第二種:export build_dir=輸出目錄,然後再make

2.2、如果兩個都指定的話(既有build_dir環境變數存在,又有o=xx)

2.3、

則有o=xx則有更高的優先順序,聽他的。

(b)makefile主要的變數引數objtree,srctree,topdir

1、objtree:編譯出來的.o檔案存放在目錄的根目錄,在預設的情況下面,objtree等於當前目錄,

在o=xx編譯下面objtree就等於我們設定的那個輸出目錄。

2、srctree:原始碼目錄,其實就是源**的根目錄,也就是當前目錄。

總結:在原地編譯的過程中objtree和srctree相等,在o=xx這種編譯下的objtree和srctree

不相等,makefile中定義這兩個變數其實就是為了後面的記錄編譯後的.o檔案到底往那裡面放,就是為了

實現o=xx實現你自己寫的**不會因為編譯生成的.o檔案所影響。

(c)mkconfig

這個是makefile裡面定義的乙個變數(在這裡定義,在後面使用),

他的值就是我們源**根目錄下面的mkconfig。

include  $(obj)include /config.mk(133行)

1、include/config.mk不是原始碼自帶的(你在沒有編譯的時候是找不到這個檔案的)要在配置過程中

(make x210_sd_config)中才會生成這個檔案,因此這個檔案的值和我們配置過程有關,

是由配置過程中根據我們的配置生成的。

我們在使用210的情況下面配置生成的config.mk內容為:

arch   = arm

cpu    = s5pc11x

board  = x210

vendor = samsung

soc    = s5pc110

我們在下一行(134行)export匯出了這5個變數作為環境變數,

所以著兩行加起來就是為了當前makefile定義了5個環境變數的值,

之所以不直接給出這5個環境變數的值,是我們希望這5個值可以在很多地方可以使用,

而且在別的處理器當中可以比較簡單的修改,這裡就是uboot移植最簡單的地方。

(未完)

uboot的移植分析3

從零開始的uboot的系統移植3 接上節的uboot的系統移植的2開始說明 繼續makefile的分析 1 如何移植uboot,就是懂他的規則和含義就可以了,環境變數也要弄懂 arch 和 cross compile環境變數 1.1 接下來匯出了兩個很重要的環境變數 乙個是arch 上面匯出的,植來...

u boot移植啟動流程詳細分析(2)

學習底層的東西,首要的就是去了解他的架構,整體的思路知道了,就會在出現問題的時候有很清晰的思路,知道 出的問題,以及程式是如何執行的,相信做到上面的,所遇到的問題,大都會迎刃而解了吧,高手是有很多的,所謂的高手,不過也就那樣吧,努力努力也是可以趕超的。之前,介紹了u boot的第一階段的啟動流程,那...

uboot1 3 2移植記錄2

第二階段 可啟動uboot但是沒有nand命令 在cofig cmd all.h中新增 define config cmd nand nand 在config cmd default.h中新增 define config cmd nand nand 下面一段 是昨天移植拷貝 時改寫的,這時候就和cm...