2015-06-06 65 views
0

我正在通過第一階段引導加載器。我對此有幾點懷疑。首先啓動順序後復位如下:需要幫助瞭解啓動引導器序列

  1. 將CPU設置爲管理員模式
  2. 的Invalidate L1指令,數據緩存和翻譯看一邊 緩衝器(緊密耦合內存如果有的話)
  3. 禁用MMU和緩存
  4. 設置堆棧大小
  5. 啓用指令和數據緩存,以及MMU

遵循初始時鐘配置併爲Nand Flash控制器設置時鐘。這裏

我的問題是

  1. 我們已經無效L1指令/數據緩存和TLB(這是MMU的一部分),但是爲什麼我們需要再次禁用MMU和緩存。

請幫助理解它。還請提供任何能夠更好地理解啓動順序的鏈接。

非常感謝您的支持。

+0

哪個階段1引導程序? CPU本身通過MMU引導並緩存。 – Gilles

回答

0

MMU將在啓動時被禁用,因此第3步看起來多餘。基於有限的信息,我將嘗試證明邏輯的合理性:

在主引導加載程序執行結束時,代碼將跳轉到輔助引導加載程序。如果未提供輔助引導加載程序,或者在安裝新的異常向量之前輔助引導加載程序弄亂了某些內容;如果生效的指令mov pc,#0(跳轉到空函數指針)發生;那麼主引導程序將從步驟1重新啓動。

緩存可能已損壞,MMU可能打開,此時沒有任何猜測。因此,如果引導加載程序必須立即開始清理,則需要執行步驟1-3以確保環境乾淨可執行。這看起來不僅僅是必要的預防措施。

引導加載程序在功能和體系結構上有很大差異。沒有真正的標準化方法來做到這一點。所以唯一真正的選擇是閱讀代碼並提出問題。