読者です 読者をやめる 読者になる 読者になる

割り込みコントローラ初期化

Monarm

割り込みコントローラ初期化(pic_init)とインターバルタイマ設定(10ms)の移植が完了しました(リビジョン4)。
ただし、割り込みハンドラの移植が済んでいないため、タイマとしては機能しません(テストコード上で動作確認)。

メモ

セグメント機構はx86固有でARMには該当する機能がないと認識しているので*1、移植対象外としました。


それと、システムメモリのサイズを把握する処理で、オリジナルでは1MBオフセットしたアドレスからラスト(4GB)まで、1MB単位の先頭4バイトに対して直接のライト/リード/コンペアでのメモリ有効チェックを行っています。


ARMはメモリマップドI/Oであり、且つ現状、使用中のページテーブルがあったりするので、固定値を使用するようにしました。
また、前回までの初期状態のページテーブルは1ページのみのエントリでしたが、今回でシステムメモリをフルにエントリへ登録しています。

新たな問題

かなり#ifdefの嵐になってまいりました。まずいまずいと思いながらも既存コードとの比較をしながらコードを書きたいためにどうしてもやってしまいます。
何か良い方法は無いものか…

お次は…

今の状態はこんな感じでしょうか。

  (by やまざきメソッド ジェネレーター)


今までは一本筋で進められましたが、以降はプロセスを回すための核の項目となり、各々が密に関連しているため同時作業せざる終えません。
なので開始以来の山場になりそうです。

*1:データシートを確認すべき…