Step5ではXMODEMで転送したELFファイルの形式を解析するところまで実装しました。
以下、実行したログです。
※間違ってStep5のkzload.elfをロードしてしまいました。
Machine Name:step05 myaccount$ sudo cu -l /dev/cu.PL2303-00001004 Password: Connected. kzload (kozos boot loader) started. kzload> load ~+ lsx kzload.elf Sending kzload.elf, 43 blocks: Give your local XMODEM receive command now. Bytes Sent: 5632 BPS:587 Transfer complete XMODEM receive succeeded. kzload> dump size: 1600 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 00 01 00 00 00 00 34 00 00 0a 5c 00 81 00 00 00 34 00 20 00 04 00 28 00 0a 00 07 00 00 00 01 00 00 00 b4 00 00 00 00 中略 6f 64 61 74 61 00 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 0000b4 00000000 00000000 00100 00100 06 01 0001b4 00000100 00000100 0079a 0079a 05 01 000950 0000089c 0000089c 000ad 000ad 04 01 000a00 00fffc20 00000949 00004 00018 06 01 kzload>
readelf -a kzload.elf
のProgram Headers部分。
Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x0000b4 0x00000000 0x00000000 0x00100 0x00100 RW 0x1 LOAD 0x0001b4 0x00000100 0x00000100 0x0079a 0x0079a R E 0x1 LOAD 0x000950 0x0000089c 0x0000089c 0x000ad 0x000ad R 0x1 LOAD 0x000a00 0x00fffc20 0x00000949 0x00004 0x00018 RW 0x1
この後の論理回路の説明は論理回路の意味がうっすらわかって面白かったです。
まだちゃんと理解出来ていないけど、またの機会にちゃんと読みたい。