Step6ではロードしたELFファイルをメモリー上に展開し、エントリーポイントに処理を渡すまでを実装しました。
このステップからbootloadとosの2つに分かれます。
bootloadをROM上に配置し起動。bootloadでosをロードし、osのエントリーポイントへ処理を渡します。
Machine Name:os myaccount$ sudo cu -l /dev/cu.PL2303-00001004
Connected.
kzload (kozos boot loader) started.
kzload> load
~+ lsx kozos
Sending kozos, 11 blocks: Give your local XMODEM receive command now.
Bytes Sent: 1536 BPS:395
Transfer complete
XMODEM receive succeeded.
kzload> dump
size: 600
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 04 b0 00 81 00 00 00 34 00 20 00 03 00 28
00 06 00 05 00 00 00 01 00 00 00 00 00 ff bf 8c
中略
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
Hello World!
> echo aaa
aaa
> echo bbb
bbb
> abc
unknown.
>
unknown.
>