12ステップ本」カテゴリーアーカイブ

Step10(12ステップ本)

Step10はメモリ管理の実装。 これもわかりやすかった。 動作ログ。 Machine Name:os myaccount$ sudo cu -l /dev/cu.PL2303-00001004 Password: Co … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

ちょっと寄り道 __mulsi3(12ステップ本)

__mulsi3をStep9のlib.cに実装してみることにした。 で、まずはkozos.cのthread_runのアドレス計算部分を元に戻して、gcc -S kozos.cでアセンブラを出力。 該当部分は次のようになっ … 続きを読む

カテゴリー: 12ステップ本, H8 | 2件のコメント

Step9(12ステップ本)

Step9ではスレッドに優先順位を付けた優先度スケジューリングの実装を行った。 優先度スケジューリング部分はそんなに複雑じゃないのでわかりやすかった。 今回の動作ログ。 MachineName:os myaccount$ … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

Step8(12ステップ本)

Step8はスレッドの実装。 解説もかなり難しく、スタックの切り替え部分など全部理解できたとは思えない。 コンパイル時にも、リンク時にもエラーが出て対応に苦労した。 とりあえず、動いたログ。 Machine Name:o … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | 4件のコメント

Step7(12ステップ本)

Step7から第2部ということでいよいよOSのための機能を実装するので各ステップが大きくなって解説が長い。 まずはStep7では割り込み部分を実装し、実際にシリアルの受信を割り込みハンドラで行うように変更した。 Mach … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

Step6(12ステップ本)

Step6ではロードしたELFファイルをメモリー上に展開し、エントリーポイントに処理を渡すまでを実装しました。 このステップからbootloadとosの2つに分かれます。 bootloadをROM上に配置し起動。boot … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

Step5(12ステップ本)

Step5ではXMODEMで転送したELFファイルの形式を解析するところまで実装しました。 以下、実行したログです。 ※間違ってStep5のkzload.elfをロードしてしまいました。 Machine Name:ste … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

Step4(12ステップ本)

Step4ではXMODEMによるファイルの転送部分を実装した。 H8側のXMODEM自体の実装はそんなに問題無いけど、Mac側のXMODEMでファイル転送するコマンドの方が大変。 cuコマンドは今も使っているからいいけど … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: , | コメントする

Step3(12ステップ本)

Step3では静的変数の読み書き対応。 リンカ・スクリプトで初期値とサイズをROM上に配置し、C言語でRAM上にコピーすることで静的変数の読み書きに対応した。 でも、C言語でRAM上にコピーするのはstartup.sでや … 続きを読む

カテゴリー: 12ステップ本, H8 | タグ: | コメントする

Step2(12ステップ本)

Step2では、メモリマップドI/Oの仕組みとシリアルの実装の説明、ライブラリの拡充を行った。 一番の収穫がメモリマップドI/Oの仕組み。「なるほど」と思った。

カテゴリー: 12ステップ本, H8 | タグ: | コメントする