OS自作入門 -Advent01-

OS自作入門 -Advent01-

アドベントカレンダー始まった

フィリピン旅行記も書かなきゃいけないのだけど季節はアドベントカレンダーな季節です。
なのでワタリドリもアドベントカレンダーを始めてみたいと思います。

自分は好き勝手に積ん読を処理するため楽しそうな12ステップで作る組込みOS自作入門に取り組んでみたいと思います。嫁は好きに何か書いてくれるでしょう。
これ幸いに12stepなので1日で0.5step進めば計算上クリスマスイブにはOSが出来上がるはず。では早速始めよう。

OS自作入門 step1 前半

環境構築

HelloWorld的なプログラムが動くところまで頑張るステップ

クロスコンパイルかけてソースコードをH8(マイコン)に転送するやり方を採用する。
いろんな環境でのやり方が丁寧に書かれているがmacしかないからmacでやることにする。
シリアルポートがないのでシリアルポート <-> USBの変換ケーブルは購入済み。

本にはUbuntu用のPC買ってみたら?とかcygwinでやれば?みたいな話が載っている。
こないだ買ったラズパイでもできるような気もするが、進めてみて困ったらどうにかするとしよう。あとはディレクトリ走査やらテキストエディタの話がチラホラ載ってる。

コンパイラ周辺で必要なもの

  • gcc (既に入ってた)
  • make (既に入ってた)
  • binutils
    brew install binutilsでインストール
  • フラッシュROM書き込みツール
    今回はH8/3069 writerにした
    ダウンロード、解凍、srcに移動、make
    で実行ファイルが出来上がる

HelloWorldプログラムを書いてみる

  • main.c
    main関数が入ってるCプログラム
  • startup.s
    アセンブラで書かれたスタートアップファイル
  • vector.c
    割り込みベクタ定義
  • lib.h, lib.c
    ライブラリ関数
  • serial.h, serial.c
    シリアル・デバイス・ドライバ
  • defines.h
  • ld.scr
    リンカスクリプト
  • Makefile

これらを本に従って書いていく。Makefile以外書いて力尽きた。
今日の成果はここまで。(Git Commit

明日はMakefileを書いてbuildして、HelloWorldが動くところまでいけるといいなー。