FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

「30日でできる!OS自作入門」を読み始めた (5. 6日目)

遅まきながら、「30日でできるOS自作入門」を読み始めた。

30日でできる! OS自作入門

30日でできる! OS自作入門

6日目の前半はソースコードの分解。gccやnasmを使っているので独自にMakefileを育てている。

mformatを使っていないので以下の方法でイメージを結合している。

...
$(TARGET).img: ipl10.bin $(TARGET).sys
        echo $(TARGET).sys > $(TARGET).name
        dd if=ipl10.bin     of=$(TARGET).img count=2880 bs=512 conv=notrunc
        dd if=$(TARGET).name of=$(TARGET).img count=1  bs=512 seek=19 conv=notrunc
        dd if=$(TARGET).sys  of=$(TARGET).img count=15 bs=512 seek=33 conv=notrunc
...

とりあえず、haribote.img のイメージサイズによりddのcountを変えないといけないので、以下のように変更した。 このやり方も無理やりだなあ。

target_size = $(shell wc -c $(TARGET).sys | cut -f1 -d' ')
target_byte_size = $(shell expr $(target_size) / 512 + 1)

$(TARGET).img: ipl10.bin $(TARGET).sys
    echo $(TARGET).sys > $(TARGET).name
    dd if=ipl10.bin     of=$(TARGET).img count=2880 bs=512 conv=notrunc
    dd if=$(TARGET).name of=$(TARGET).img count=1  bs=512 seek=19 conv=notrunc
    dd if=$(TARGET).sys  of=$(TARGET).img count=$(target_byte_size) bs=512 seek=33 conv=notrunc

6日目はPICについて理解しなければならない。割り込みハンドラについて長い解説を理解していく必要がある。 キーボードからの割り込みを取り込んで画面に表示させた。

f:id:msyksphinz:20180309011126p:plain
図. 割り込みハンドラにより、キーボードの割り込みを受け付ける。

関連記事