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. >