現在在做uboot引導powerpc(e300core)啟動時,芯片手冊規定boot vector(第一條指令位置)為0xfff00100 但是把uboot燒寫在nandflash的0xfff00000位置處,uboot也能正常啟動,這是為什么呢!!!想不明白
uj5u.com熱心網友回復:
有沒有大神指導下uj5u.com熱心網友回復:
用codewarrior,debug看一下反匯編flash的代碼就知道為啥了。 硬體啟動指令執行位置,有的時候前面初始化的部分可能不需要賦值也可以啟動,也可能一上來是跳轉指令之類的。最好還是按規范操作。
你這么操作可能會導致部分指令不執行,啟動屬于巧合而已。
uj5u.com熱心網友回復:
nandflash一般不能直接取指令執行,但是nandflash可以存放uboot鏡像檔案。第一條指令一定是從CPU芯片片內ROM或CPU芯片片外norflash開始的。
e300core的PowerPC究竟是哪種情況,具體要看手冊。
無論哪種情況,nandflash上uboot鏡像是不能直接被執行的,而是uboot鏡像之前的代碼被拷貝到一個SDRAM中,然后再跳轉執行的。
uj5u.com熱心網友回復:
0xfff00100是并行nor flash的啟動地址,nand的啟動地址并不是這個的。首先確定你的啟動方式,是從nor啟動還是nand啟動,看你的描述是從nor啟動的,那么把uboot寫到nand的任意位置都不會影響原來的nor flash已經有的uboot,所有不影響從nor flash啟動uboot
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/12826.html
標籤:CPU和硬件區
上一篇:系統無法啟動問題
下一篇:關于混雜字符設備驅動的注冊問題
