基於MIPS的uBoot編譯環境搭建

2021-05-11 08:44:37 字數 1380 閱讀 8975

工作需要,準備在mips上移植一下uboot,搞了兩天才搞定,現將環境搭建方法記錄如下:

一.編譯工具的準備

由於uboot的mips部分採用mips_4kc-gcc編譯,因而不能使用cygwin下的gnu開發包mips-elf-gcc,主要是由於uboot中運用了gp

指標,使用mips-elf-gcc的時候可能會進行重定位,因而無法正常工作。好了,到這兒我們就一心一意的搭建基於mips_4kc-gcc工

編譯環境需要eldk(embedded linux develop kit)。

step3:到ftp://ftp.sunet.se/pub/linux/distributions/eldk/4.1

你不想自己去編譯的話。很遺憾的告訴你,eldk無法在sygwin下安裝,因而要麼你使用linux系統,要麼你就得安裝vmware,我採用

二.編譯環境的安裝

step1:安裝vmware6.0,並在裡面安裝redhat9。這個就沒什麼好說的。

step2:安裝vmware tools,這個主要是為了使用vmware的share folder功能,以方便我們使用windows下的資源,這裡主要是要

中將將光碟mount上去,然後cp到系統的任意乙個目錄下,比如(/tmp)。然後將目錄下的檔案加上執行的許可權「chmod -r +x 目錄

」,剩下的就是安裝即可。

step4:在共享目錄下uboot包解壓。到此一切準備工作完畢。

三.開始編譯

step1:在你自己的工作目錄下(我使用的是root)修改.bash_profile檔案,在裡面加入你安裝的eldk的/bin和/usr/bin兩個路

徑。step2:轉到uboot的根目錄,依次執行以下命令:

make distclean

make incaip_config

make

如果進行順利的話,此時應該在uboot根目錄下出現uboot.bin了,呵呵,大功告成!

幾點補充:

1. 不要用winrar解壓uboot包,因為裡面有兩個檔案的字尾名重複,原因在於windows不區分大小寫

2. 不要在share目錄下編譯uboot,因為共享目錄下會使eldk的ln報錯

3. 有些機器在安裝vmware後會出現時鐘與系統時鐘不同步,從而導致make出錯,無法順利進行。此時應該安裝vmware tools中

的tar工具包,並依次執行以下步驟:

step1: 在text mode下執行/usr/bin/vmware-config-tools.pl,開啟時鐘附加功能

step2: 在x-windows下執行vmware-toolbox,將option中的與主機時間同步選上

step3: 在/boot/grub/grub.conf中的kernel行末尾加入clock = pit

基於mips架構的uboot啟動流程(3)

要注意mips具有流水線可見性,所以跟在跳轉指令後的下一條指令,在執行跳轉到的地方前,都會執行,這個叫分支延遲。但是編譯器會隱藏該特性,但可以通過設定 set noreorder 來禁止編譯器重新組織 順序。每個板子都有自己的lds檔案。這個主要是用來說明編譯生成的指令,及執行過程中用到的資料放置的...

基於mips架構的uboot啟動流程(4)

特點和功能 u boot yamon 支援的 cpu 和 board 1.支援種類繁多,包括 arm 的各個系列 ppc,mips 2.mips 的支援較差,目前支援 au1100,au1500 系列,4kec 的需要自己移植 工作量主要在起始 的初始化部分,包括 cahe 和中斷的初始化 1.基本...

基於mips架構的uboot啟動流程(4)

特點和功能 u boot yamon 支援的 cpu 和 board 1.支援種類繁多,包括 arm 的各個系列 ppc,mips 2.mips 的支援較差,目前支援 au1100,au1500 系列,4kec 的需要自己移植 工作量主要在起始 的初始化部分,包括 cahe 和中斷的初始化 1.基本...