割り込みコントローラ初期化
割り込みコントローラ初期化(pic_init)とインターバルタイマ設定(10ms)の移植が完了しました(リビジョン4)。
ただし、割り込みハンドラの移植が済んでいないため、タイマとしては機能しません(テストコード上で動作確認)。
メモ
セグメント機構はx86固有でARMには該当する機能がないと認識しているので*1、移植対象外としました。
それと、システムメモリのサイズを把握する処理で、オリジナルでは1MBオフセットしたアドレスからラスト(4GB)まで、1MB単位の先頭4バイトに対して直接のライト/リード/コンペアでのメモリ有効チェックを行っています。
ARMはメモリマップドI/Oであり、且つ現状、使用中のページテーブルがあったりするので、固定値を使用するようにしました。
また、前回までの初期状態のページテーブルは1ページのみのエントリでしたが、今回でシステムメモリをフルにエントリへ登録しています。
新たな問題
かなり#ifdefの嵐になってまいりました。まずいまずいと思いながらも既存コードとの比較をしながらコードを書きたいためにどうしてもやってしまいます。
何か良い方法は無いものか…
お次は…
今の状態はこんな感じでしょうか。
(by やまざきメソッド ジェネレーター)
今までは一本筋で進められましたが、以降はプロセスを回すための核の項目となり、各々が密に関連しているため同時作業せざる終えません。
なので開始以来の山場になりそうです。
*1:データシートを確認すべき…