2012-11-14 91 views
1

據我所知,代碼指令的地址是虛擬地址,但爲了訪問各種設備(例如RAM,並行NOR閃存),這些虛擬地址需要轉換爲物理地址,這項任務由MMU完成。問題是這個翻譯過程如何在系統復位時運行(在加電時,我認爲MMU中沒有入口),這樣第一條指令就可以從並行NOR閃存中獲取並開始執行。任何人都可以請解釋這個過程(對於任何CPU架構ARM,PowerPC,...,我只是猜測這種行爲在架構中是通用的)。任何建議表示讚賞。先謝謝了!系統復位時的內存映射

回答

4

加電時,實際上MMU將被禁用。這很通用。

要訪問NOR閃存,將會有(至少)一些地址空間的默認映射。第一條指令通常取自0xFFFF0000(ARM)或0xFFFFFFFC(Power PC)及其附近。但是有可以影響這一點的pinstrap選項。啓動處理器並不是一般的。

還有很多其他選項(NAND閃存,SPI ROM,MMC)用於存儲啓動代碼。對於一般概念,Hallinan包含一個啓動章節。有關詳細信息,您需要查看特定CPU的技術手冊,例如OMAP4 TRM是ARM的示例,然後找到描述引導過程的部分。

+0

嗨JoeKul,非常感謝您的詳細解釋和參考資料!看來,在引導加載程序代碼真正開始於復位向量之前,引導程序(CPU引導選項)將執行一些初始化,包括將TLB條目映射到適當的引導設備,讀取引導加載程序代碼並最終跳轉到復位向量。如果這個結論不正確,請糾正我。再次感謝! –