|
嵌入式門外漢,手頭有個(gè)2410的老開(kāi)發(fā)板,自帶bootloader沒(méi)動(dòng),可通過(guò)usb下載zImage并啟動(dòng)成功。
我有個(gè)想法是做雙bootloader,也就是除了本身的bootloader外,另外安裝一個(gè)uboot在以前屬于linux kernel的nand分區(qū)上。但是出現(xiàn)了問(wèn)題:
1、從bootloader啟動(dòng)寫在nand分區(qū)上的uboot,再通過(guò)uboot下載linux內(nèi)核zImage,顯示解壓完成后就掛住了。
2、從bootloader通過(guò)USB下載和上面相同的uboot.bin,并在下載完成后運(yùn)行該uboot,再通過(guò)uboot下載和上面相同的linux內(nèi)核,內(nèi)核可以成功啟動(dòng)。
這兩個(gè)方法唯一的區(qū)別就是,第一次是加載nand分區(qū)上的uboot運(yùn)行,而第二次是下載uboot直接運(yùn)行。
我寫了一段閃燈的匯編,插入到內(nèi)核啟動(dòng)代碼,發(fā)現(xiàn),在head.S的__turn_mmu_on中,執(zhí)行完mcr p15, 0, r0, c1, c0, 0(也就是開(kāi)啟mmu),系統(tǒng)就掛住了。通過(guò)實(shí)驗(yàn),我觀察到的r0值是0xc0007177。對(duì)了,kernel版本是2.6.14。不知道有沒(méi)有大俠可以幫我看看這是咋回事?
|
|