2016-09-10 8 views
0

私はARMブートローダについて疑問を持っています。ブートローダでキャッシュを有効/無効にする必要があるのはなぜですか?

  1. ブートローダでキャッシュを有効または無効にできますか?
  2. ブートローダでキャッシュを有効/無効にする必要があるのはなぜですか?何が起こるか?
  3. ブートローダでキャッシュを管理するのは誰ですか?どのような基本キャッシュエントリが作られるのですか?
+0

あなたは以下のスレッドを参考にして、参考にすることができます。http://stackoverflow.com/questions/21262014/arm-bootloader-disable-mmu-and-caches – vishnu

答えて

0
  1. ブートローダに有効または無効キャッシュですか?
    すべては、ブートローダのアーキテクチャに依存します。しかし、一般に、キャッシュ(特定の命令キャッシュ)を有効にすることにより、「高速」な実行が可能になる。したがって、ブートローダーが特定のタスクを繰り返し実行する必要がある場合などです。バイナリなどを解読した後、 '高速'実行が役立ちます。

  2. なぜブートローダでキャッシュを有効/無効にする必要があるのですか?何が起こるか?
    この質問の最初の部分はすでに上記のとおりです。
    キャッシュを無効にすると、コースのブートローダは通常のファームウェア/ベアメタルコードのように動作します。
    有効にした場合、ブートローダは、SFR領域などのすべての注意事項を考慮して、MMUに正しいマッピングテーブルを提供する必要があります。

  3. ブートローダでキャッシュを管理するのは誰ですか?どのような基本キャッシュエントリが作られるのですか?
    キャッシュは、とにかくMMUによって管理されます。しかし、前述のように、アドレス範囲に応じてキャッシュが有効または無効になるように、ブートローダまたは実行エンティティからMMUにマッピングを提供する必要があります。 ARMでは、メモリマッピングの複数の粒度を提供しているため、要件ごとにメモリセクションを定義し、キャッシュの動作をきめ細かく制御できます。

関連する問題