Step7(12ステップ本)

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

Machine Name:os myaccount$ sudo cu -l /dev/cu.PL2303-00001004
Password:
Connected.
kzload (kozos boot loader) started.
kzload> load
~+ lsx kozos
Sending kozos, 14 blocks: Give your local XMODEM receive command now.
Bytes Sent:   1920   BPS:857                             

Transfer complete

XMODEM receive succeeded.
kzload> dump
size: 780
7f 45 4c 46 01 02 01 00  00 00 00 00 00 00 00 00
00 02 00 2e 00 00 00 01  00 ff c0 20 00 00 00 34
00 00 06 30 00 81 00 00  00 34 00 20 00 02 00 28
00 06 00 05 00 00 00 01  00 00 00 00 00 ff bf ac
                      中略
1a 1a 1a 1a 1a 1a 1a 1a  1a 1a 1a 1a 1a 1a 1a 1a
1a 1a 1a 1a 1a 1a 1a 1a  1a 1a 1a 1a 1a 1a 1a 1a
1a 1a 1a 1a 1a 1a 1a 1a  1a 1a 1a 1a 1a 1a 1a 1a
1a 1a 1a 1a 1a 1a 1a 1a  1a 1a 1a 1a 1a 1a 1a 1a

kzload> run
starting from entry point: ffffc020
kozos boot succeed!
> echo abc
 abc
> echo Hello World!
 Hello World!
> run
unknown.
> load
unknown.
> 
unknown.
> ~.
Disconnected.

OS部分のコマンドの処理は全部シリアル受信割り込みハンドラで処理を行っていて、mainのループでは sleep 命令しか行っていない。

カテゴリー: 12ステップ本, H8 タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA