ステップ6まで終了

第1部ブートローダ編が終わりました。思ったよりサクサク進めたのは確実に『CPUの創りかた』をこなしてたおかげです。『12ステップで作る〜』は、ステップ6までは章の前半でソフト開発を進め、後半でCPU原理を解説するという構成が多いのですが、この後半部分がびっくりするくらいすんなり頭に入ってきます。なんせブレッドボードとユニバーサル基板で2回作りましたからね。CPU(ドヤ)。メモリマップドI/Oなど『創りかた』では発展項目として省略されていた話題もあって無理なく知識を増やせている感じがあります。

肝心のソフトウェアの方はというと。C言語を書くのなんて高専の授業以来で、「ポインタってこうやって使うものだったのかぁ」などと感心しながら写経している状態です。自力で同じものを再開発しろというのは現状無理ですが、理屈自体は理解できてるので、実際に手を動かして作業していることが後々意味を持ってくれることを信じましょう。

環境設定以降ここまででドハマりした部分が一つあるのでメモしておきます。XMODEM通信でファイルをブートローダに送信する手順で、cuを使っている場合、本では~Cからlsx filenameとコマンド(lsx がなければ sx)を打つよう書いてありますが、Ubuntuのcuには~Cの操作がありません。たぶんFreeBSDとの違いでしょう。代わりに~+でうまく行きました(完全に等価な操作なのかは調べてないので不明…)。

$ cu -s 9600 -l /dev/ttyUSB0
Connected.
kzload (kozos boot loader) started.
kzload> load
~[マシン名]+sx kozos /** ここ! **/
Sending kozos, 11 blocks: Give your local XMODEM receive command now.
Bytes Sent:   1536   BPS:172                             

Transfer complete

XMODEM receive succeeded.
kzload> run
starting from entry point: ffc020
Hello World!
> echo good!
 good!
> exit
~[マシン名].
Disconnected.
$

ステップ7からさらに内容が濃くなる雰囲気です。ので、さすがに英語の勉強にシフトしたいと思います。開発は1日1時間まで!