關於 U-Boot 的程式整體進入點
http://www.jollen.org/blog/2007/01/u-boot_entry_point.htmljollen 發表於 January 30, 2007 11:41 PM
關於 U-Boot 的程式進入點,我以 SMDK2410 平臺為例來說明。首先,在每張 board 的目錄下,都會有一個 linker script,程式的整體進入點可以閱讀此檔案得知。以 SMDK2410 來說,我們應該由
ENTRY(_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
*(.text)
}
在 linker script 的 SECTIONS 命令區塊中,.text section 一開始被放進
所以,由
就概念上來說,start.S 最主要的工作是:
- 設定中斷向量表
- 設定 processor
- Initialization Sequence
- Relocation
因此,我們把 start.S 也稱為「hardware bring-up code」,而且是「前期」的硬體帶動碼(bring-up code)。在 U-Boot 的 cpu/ 目錄下,可以看到 U-Boot 為各種不同的處理器所撰寫的 bring-up code,可見 U-Boot 真的是一個「萬用 bootloader」。
沒有留言:
張貼留言