rpi_start.Sを読む (最終回)
2013/11/10(日) 16:14 NetBSD はてブ情報 はてブに登録 はてブ数

さて、第1回から第13回までrpi_start.Sを一通り読むことができました。

まだまだ、わからないところも多いですが、ARMアセンブリ言語も知らず、ARMアーキテクチャもまるで分らない状態からすれば、ずいぶんとやっていることがわかるようになりました。

処理の大まかな内容は次のような感じでしょうか。
  1. 割り込みを禁止する
  2. L1ページ変換テーブルを0に初期化
  3. 最低限のマッピングをL1ページ変換に設定
  4. 各種キャッシュをOFF
  5. L1ページテーブルをセット
  6. コントロールレジスタを調整
  7. MMUをON
  8. スタートルーチンへジャンプ
ARMのアセンブリ言語に対しては、命令もオペランドも種類が豊富すぎで、けっこう苦労しましたが、WebのARMアセンブリ言語の入門ページを見ながら、なんとか読み進められました。

一方、mcr, mrcによって操作される、ステータスレジスタ等々、CPUアーキテクチャに依存する部分はマニュアルを読みつつ、想像力を働かせれば、なんとなーく、ぼやーっと、つかめたかなぁといったところです。

一つのスタートアップルーチンを読んでおけば、ほかのスタートアップルーチンを読むときにも役に立つはずと信じて、今回の短期連載を終わりたいと思います。

名前:  非公開コメント   

  • TB-URL  http://www.tokuda.net/diary/0816/tb/