kz_xmodemって何?

12ステップで作る組込みOS自作入門(KOZOS)の第8ステップ以降では、ROMにブートローダ(kzload)を書き込み、ブートローダ経由でOSをRAMに流し込んで動作させるようになっています。

転送プロトコルにはXMODEMを採用していますが、複数のプラットフォーム上に存在する汎用ツールの多くが、何ステップかの操作をした後でようやく転送が開始されるような仕組みになっています。

また、環境やタイミングに依存して、汎用ツールとKOZOSブートローダの組み合わせでうまく転送できない事もあるようです。

kz_xmodemは、上記の「複数の操作を段階的に行なう事の煩雑さ」や「転送に失敗する事の面倒さ」などを取り除く事を目的に、設計実装されたKOZOS専用XMODEMプログラムです。

kz_xmodemの特徴

  • KOZOSブートローダの動作に合わせて設計したKOZOS専用XMODEMプログラム。
  • Linux、Windows、Mac OSに対応。
  • KOZOSブートローダに対して内部でload状態に自動遷移。
  • ターゲットをリセットしてkz_xmodemを実行するだけで転送完了。
  • コマンドプログラムなのでMakefileからの自動実行なども可能。
  • MITライセンスを採用し、商用、非商用を問わず自由に再利用可能。

汎用ツールとkz_xmodemの比較

汎用ツールの場合

  • まず、KOZOSブートローダをload状態にします。

kzx-prev1.png

  • 次にXMODEM転送の為にファイルを指定して転送を開始します。
  • 転送が正常に終了したらKOZOSブートローダのプロンプトに戻ります。

kzx-prev2.png kzx-prev3.png kzx-prev4.png

  • runコマンドを実行します。

kzx-prev5.png

上記のように汎用ツールの場合、ツールの中の画面をいちいち行ったり来たりしなければなりません。

OSの動作確認をしたくてうずうずしている時に、色々な操作が伴いとても面倒です。

kz_xmodemの場合

  • kz_xmodemに、書き込み対象ファイル名と使用するシリアルポート名を与えて実行します。

kzx-curr1.png

  • 書き込みが完了したらKOZOSブートローダにシリアルコンソールを使って接続します。
  • 後はrunコマンドを実行するだけ。

kzx-curr2.png

kz_xmodemはコマンドツールですから、Makefileでビルド後に呼ぶようにすれば自動ダウンロードが可能です。

要するに、ビルドした後でOSの動作確認に至るまでがmake一発で一気にできてしまうのです。

従来のようにわざわざ別のツールを立ち上げてからアレコレ操作する必要はありません。