6200 uboot測試版分析 四)

2021-09-06 05:14:12 字數 937 閱讀 8699

include/autoconf.mk中cofig_load_addr=0x40008000

common/do_boom.c 中潛入了u_boot_cmd(bootm,config_sys_maxargs,1,do_bootm)因此在default_environment中將會找到的bootm最終將執行do_bootm函式,do_bootm呼叫同檔案下的bootm_start函式,在bootm_start函式中將會通過boot_get_kernel獲得uimage的頭部並且錄入images(bootm_headers_t結構體型別)中(此處會將頭部搬移,以使得頭部資訊原位址空間在解壓時可以被覆蓋),在函式bootm_start中對image.ep進行複製,回去kernel的入口位址,在do_bootm函式中繼續執行bootm_load_os,在該函式中會執行重定位.在do_bootm中的boot_fn=boot_os[image.os.so]獲取相應系統的啟動函式,例如是linux則被賦值為do_bootm_linux,而後執行boot_fn(0, argc, argv, &images);arch/unicore/lib/bootm.c下的函式do_bootm_linux中將images->ep強制轉換成函式位址kernel_entry = (void (*)(int, int, uint))images->ep;而後開始啟動kernel_entry(0, machid, bd->bi_boot_params);   6200 的板子時(0,0x9fc,0x40000100    0x9fc是板子硬體設計代號,40000100是傳遞引數的位址)

uboot最終的配置會錄入include/configs/sep0611.h中

在該檔案中又含有了include/asm/arch/hardware.h(位址分布)

board/seuic/sep0611/include/board.h中含有板級配置

include/config_cmd_default.h配置命令

6200 uboot 測試版分析(二)

6200uboot啟動過程 注 pc此時跳到0x42800000處開始執行。在這啟動過程中主要包括系統資訊採集 cpu資訊 mac 外設資訊 配置一些系統模組正常工作,ddr2位址重對映 由0x40000000對映到0x00000000 今天閱讀的uboot 6200 沒有做pc重置,原來在uboo...

SQLRecovery測試版介紹

以下是sqlrecovery1.0測試版本的簡要說明 支援資料庫版本 sqlserver2005 支援字段型別 bigint,bit,char,datetime,decimal,float,int,money,nchar,numeric,nvarchar,real,smalldatetime,sma...

插入排序(測試版

遞增一趟直接插入排序 將記錄 iarr i 的關鍵字從右向左依次與有序記錄 iarr j j i 1,i 1,1 關鍵字比較,若iarr i 關鍵字小於 iarr j 先將 iarr i 放在 iarr 0 儲存,然後將 iarr j j i 1,i 1,1 後移一位,直至iarr j 不大於 ia...