rpi_start.Sを読む (最終回)
さて、第1回から第13回までrpi_start.Sを一通り読むことができました。
まだまだ、わからないところも多いですが、ARMアセンブリ言語も知らず、ARMアーキテクチャもまるで分らない状態からすれば、ずいぶんとやっていることがわかるようになりました。
処理の大まかな内容は次のような感じでしょうか。
一方、mcr, mrcによって操作される、ステータスレジスタ等々、CPUアーキテクチャに依存する部分はマニュアルを読みつつ、想像力を働かせれば、なんとなーく、ぼやーっと、つかめたかなぁといったところです。
一つのスタートアップルーチンを読んでおけば、ほかのスタートアップルーチンを読むときにも役に立つはずと信じて、今回の短期連載を終わりたいと思います。
まだまだ、わからないところも多いですが、ARMアセンブリ言語も知らず、ARMアーキテクチャもまるで分らない状態からすれば、ずいぶんとやっていることがわかるようになりました。
処理の大まかな内容は次のような感じでしょうか。
- 割り込みを禁止する
- L1ページ変換テーブルを0に初期化
- 最低限のマッピングをL1ページ変換に設定
- 各種キャッシュをOFF
- L1ページテーブルをセット
- コントロールレジスタを調整
- MMUをON
- スタートルーチンへジャンプ
一方、mcr, mrcによって操作される、ステータスレジスタ等々、CPUアーキテクチャに依存する部分はマニュアルを読みつつ、想像力を働かせれば、なんとなーく、ぼやーっと、つかめたかなぁといったところです。
一つのスタートアップルーチンを読んでおけば、ほかのスタートアップルーチンを読むときにも役に立つはずと信じて、今回の短期連載を終わりたいと思います。
コメント(0件)
- TB-URL http://www.tokuda.net/diary/0816/tb/