KOZOS (15)

直前エントリにて_リンクは RAM でロードは ROM_という事を簡単に言ってるのですが、Linkers&Loaders という本によれば

プログラムのロードを担当するプログラムをローダ、シンボルの解決を担当するプログラムをリンカと定義するのが妥当だろう。

という記述があります。そういえば Linkers&Loaders の perl な課題を python で云々してみる、というのは面白いかもしれませんね。

閑話休題

とりあえず gitorious に push して云々な処理をしてから次に進む。

$ git branch
  master
  step1
  step2
* step3
$ git status
# On branch step3
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   ld.scr
#       modified:   main.c
#       modified:   startup.s
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git add ld.scr main.c startup.s
$ git status
# On branch step3
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   ld.scr
#       modified:   main.c
#       modified:   startup.s
#
$ git commit -m '3rd step'
[step3 896f2cd] 3rd step
 3 files changed, 71 insertions(+), 12 deletions(-)
 git checkout master
Switched to branch 'master'
$ git merge step3 --no-ff
Merge made by recursive.
 ld.scr    |   38 +++++++++++++++++++++++++++++++-------
 main.c    |   41 ++++++++++++++++++++++++++++++++++++++---
 startup.s |    4 ++--
 3 files changed, 71 insertions(+), 12 deletions(-)
$ git push origin master
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.35 KiB, done.
Total 6 (delta 3), reused 0 (delta 0)
=> Syncing Gitorious... [OK]
To git@gitorious.org:kozos/kozos.git
   c37d1b9..0101701  master -> master
$ git checkout -b step4
Switched to a new branch 'step4'
$

はい。準備 OK ですね。次の step では boot loader を作成する模様。

step4

フラッシュ ROM への書き込みは上限があるとの事。知りませんでした。なので実行ファイルをシリアル経由で download して RAM に展開して起動するプログラムを作成してフラッシュ ROM 焼いちゃえ、との事。boot loader か。二次記憶が無いのでリモートから、というのがナニですが。
で、こうした形で試験して製品化な段階で ROM から起動な構成にしてしまう事を ROM 化といいます、という記述があります。三点紹介されてますが特に

ブート・ローダーとともにOS本体もフラッシュROM上に格納し、ブート・ローダーがフラッシュROM上のOSのイメージをRAM上に展開して起動する。

というナニ。フラッシュ ROM にあるイメージを圧縮しといて展開する処理もさせれば云々な記述もあります。ちなみにテキストでは OS の ROM 化はしていないとの事で、このあたりは色々ヤッてみたら面白いでしょうね。
で、ここではシリアル経由で RAM に展開する boot loader は作成する模様。とりあえずテキスト読みます。進捗あれば追記予定。

追記

4th Step から 6th Step まで一気に、な方が良いみたいなので明日午前で云々な方向ス。