2016-09-10 15 views
0

我對ARM引導程序有些疑問。爲什麼要在引導加載程序中啓用/禁用緩存?

  1. Bootloader中的緩存是啓用還是禁用?
  2. 爲什麼要在引導加載程序中啓用/禁用緩存?會發生什麼?
  3. 誰將在Bootloader中管理緩存?在什麼基礎上進行緩存輸入?
+0

你可以參考下面的線程可能會幫助你http://stackoverflow.com/questions/21262014/arm-bootloader-disable-mmu-and-caches – vishnu

回答

0
  1. 中啓用或禁用引導程序緩存?
    這一切都取決於引導加載程序的體系結構。但一般來說,啓用緩存(特定的指令緩存)允許「快速」執行。因此,如果boot-loader需要重複執行某些任務,例如破譯一個二進制等,然後'快速'執行將有所幫助。

  2. 爲什麼緩存需要在引導加載程序中啓用/禁用?會發生什麼?
    這個問題的第一部分已經在上面回答了。
    如果緩存被禁用,當然引導加載程序將表現得像一個正常的固件/裸機代碼。
    但是,如果啓用,則引導加載程序需要向MMU提供正確的映射表,並且所有注意事項(例如SFR區域)都不應啓用緩存等。

  3. 誰將在Bootloader中管理緩存?在什麼基礎上進行緩存輸入?
    緩存由MMU管理。但如上所述,映射需要由boot-loader或任何執行實體提供給MMU,以便根據地址範圍啓用或禁用緩存。 ARM爲內存映射提供了多級粒度,因此根據需要可以定義內存段,並可以精確控制緩存的行爲。

相關問題