uboot移植過程(新增新的晶元的方法)

2021-07-31 02:32:02 字數 2286 閱讀 4310

在uboot中新增新的晶元的方法

一.在/boot/u-boot/board目錄下新增自己的配置

mkdir my6102

chmod 777 my6102

在my6102中會包含:

config.mk  flash.c  my6102.c  my6102_hal_data.h  lowlevel_init.s  makefile u-boot.lds

這幾個檔案。

1.先看下u-boot.lds中的**:

output_format("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

/*指定輸出可執行檔案是elf格式,32位arm指令,小端*/

output_arch(arm)

/*指定輸出可執行檔案的平台為arm*/

entry(_stext)

/*指定輸出可執行檔案的起始**段為_stext*/

sections

. = align(4);

/***段結束後,有可能4bytes不對齊了,此時做好4bytes對齊,以開始後面的.rodata段*/

.rodata :

/*在**段之後,存放read only資料段*/

. = align(4);

/*和前面一樣,4bytes對齊,以開始接下來的.data段*/

.data :

. = align(4);

/*和前面一樣,4bytes對齊*/

. = .;

. = align(4);

.u_boot_list :

. = align(4);

.image_copy_end :

.rel_dyn_start :

/*在老的uboot中,如果我們想要uboot啟動後把自己拷貝到記憶體中的某個地方,只要把要拷貝的位址寫給text_base即可,然後boot啟動後就會把自己拷貝到text_base內的位址處執行,在拷貝之前的**都是相對的,不能出現絕對的跳轉,否則會跑飛。在新版的uboot裡(2013.07),text_base的含義改變了。它表示使用者要把這段**載入到**,通常是通過串列埠等工具。然後搬移的時候由uboot自己計算乙個位址來進行搬移。新版的uboot採用了動態鏈結技術,在lds檔案中有__rel_dyn_start和__rel_dyn_end,這兩個符號之間的區域存放著動態鏈結符號,只要給這裡面的符號加上一定的偏移,拷貝到記憶體中**的後面相應的位置處,就可以在絕對跳轉中找到正確的函式。*/

.rel

.dyn :

.rel_dyn_end :

.end :

_image_binary_end = .;

/*bin檔案結束*/

/* * deprecated: this mmu section is used by pxa at present but

* should not be used by new boards/cpus.

*/. = align(4096);

.mmutable :

/** compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c

* __bss_base and __bss_limit are for linker only (overlay ordering)

*//*bss段的描述*/

.bss_start (overlay) :

.bss __bss_base (overlay) :

.bss_end __bss_limit (overlay) :

/*bss段的描述結束*/

.dynsym _image_binary_end :

.dynbss :

.dynstr :

.dynamic :

.plt :

.interp :

.gnu

.hash :

.gnu :

.arm

.exidx :

.gnu

.linkonce

.armexidx :

}

總結一下,u-boot.lds指令碼檔案告訴鏈結器linker如何布局**段、資料段、bss段等,已經配置了u-boot自拷貝(從flash到ram的copy)的內容。另外,還簡要的涉及了動態鏈結技術等。

2.lowleve_init.s的**:

U BOOT 移植過程詳解 新增一塊新板子的支援

分類 u boot移植 2014 01 17 22 07 437人閱讀 收藏 舉報 u boot 目錄 申明新增一塊新板子的支援 boardscfg includeconfigsconfig nameh boarddir 在編譯uboot 時,我需要做的第一件事情就是配置uboot.命令格式如下 m...

U BOOT 移植過程詳解 新增一塊新板子的支援

2015 04 02 19 36 232人閱讀收藏 舉報 目錄 u boot 目錄 申明新增一塊新板子的支援 boardscfg includeconfigsconfig nameh boarddir 在編譯uboot 時,我需要做的第一件事情就是配置uboot.命令格式如下 make x conf...

U BOOT 移植過程詳解 新增一塊新板子的支援

在編譯uboot 時,我需要做的第一件事情就是配置uboot.命令格式如下 make x config 如果你直接敲上面這個命令,會得到下面的錯誤 make no rule to make target x config stop.why 因為目前的 中沒有對 x這塊板子的支援.下面就看看如何才能支...