えーとH8への移植作業だけど,移植準備としてFreeBSDでの開発環境を構築して,とりあえずサンプルプログラム(hello world)をビルドして動作が確認できた.あっさり動いてちょっと不気味.
クロス開発環境はすべてFreeBSDで構築できた.
ターゲット:AKI-H8/3069Fネット対応マイコンLANボード(秋月電子)
アセンブラ,コンパイラなど:FreeBSD上でbinutils, gccをクロスビルドして利用
フラッシュROM書き換え:h8writeをFreeBSD用に数行修正し,ビルドして利用
ちなみにh8writeの修正だけど,ソース(h8write.c)の先頭で#define FreeBSDのように修正して,あと利用するデバイスを/dev/cuaa0から/dev/cuad0にするだけ(FreeBSD-6.xの場合の修正.FreeBSD-4.xの場合は/dev/cuaa0のままでよい).
これで完全にWindowsに頼らずに開発ができます.これってすげー大事なことだと思うんだけど,そんなんのって僕だけ?
まあWindowsはともかくとしても,開発環境を開発者が好きに選べるというのはすげー大切だと思う.Windows上で統合開発環境使いたいひともいれば,UNIX上でemacsやmakeを使いたいひともいるわけだし.
あと,実はボード付属のCD-ROMに「H8/OS」というOSが付属していて,プログラムをメモリ上にロードして実行する機能を持っている.さらにputというコマンドがCD-ROMに付属していて,ソースも添付でFreeBSDへの移植は簡単そう.(h8writeと同様に,先頭にFreeBSD用の#defineがある)
ということでH8/OSをフラッシュに焼けばブートローダーとして使えて,putでKOZOSを送って実行する,ということができそうなので,ブートローダーの自作は必ずしも必須ではなさそうだ.(まあでもネタとして面白いので,ブートローダー自作しようかとは思ってはいるが)
あと秋月のボードのいいところだけど,自作OSを作るターゲットとしては,以下がいいなあと思った.
■ フラッシュROM書き換え回路を持っているので,フラッシュをとばしても個人レベルで書き換えが可能
通常はフラッシュ書き換えのプログラム(モニタ)をフラッシュ上に持っているのが普通だと思うのだが,それだとフラッシュとばしたり,へんなものを焼いてしまうと書き換え不能になるので,恐くて現実的には結局書き換えられんのよ.とばしたらICE使うしか手段が無くなったりするし.(ROMライタがあればだいぶマシだけど)
なので(ブートローダーのような)フラッシュROM上で動作するプログラムを個人レベルで書こうとしたら,このような機能はすげー重宝される.ICEなんて個人レベルではとてもとても買えないしねえ(これを仕事にしているプロなら別だけど,ホビープログラミングという遊びのために,このためだけにはとても買えない).まあもっともはじめから高級なモニタが乗ってたら,そもそも今回みたいにブートローダーから作ろうなんてことにはならないのだけど...
■ キットと完成品の両方の形態で販売
まあお金を節約したいならばキットなのだけど,数千円の違いならば,時間の貴重な社会人は完成品の形で買ってすぐに使いたいという人も多いだろう.半田づけとかあまりやりたくないだろうし(ぼくがそう).
こーいうこというと「自分が開発するボードを半田づけからきちんと自分でするのが基本では?」とかいうひとがいそうだけど(実際,言われたことがある),ぼくのやりたいのはOS開発であって回路づくりではないのよ.まあ学生さんとかならば時間もあるだろうし,半田づけからやってもいいとは思うけどね.
なのでこのボードのように,組み立て済みで売っていてくれるのはとてもありがたい.まあそれがこのボードの選択理由のひとつなのだけど.(KOZOSをみんなにいじってもらうということを考えると,いまさら半田づけなんてめんどくさいという人も多いだろうから,これってけっこう大事なことだと思う)
クロス開発環境はすべてFreeBSDで構築できた.
ターゲット:AKI-H8/3069Fネット対応マイコンLANボード(秋月電子)
アセンブラ,コンパイラなど:FreeBSD上でbinutils, gccをクロスビルドして利用
フラッシュROM書き換え:h8writeをFreeBSD用に数行修正し,ビルドして利用
ちなみにh8writeの修正だけど,ソース(h8write.c)の先頭で#define FreeBSDのように修正して,あと利用するデバイスを/dev/cuaa0から/dev/cuad0にするだけ(FreeBSD-6.xの場合の修正.FreeBSD-4.xの場合は/dev/cuaa0のままでよい).
これで完全にWindowsに頼らずに開発ができます.これってすげー大事なことだと思うんだけど,そんなんのって僕だけ?
まあWindowsはともかくとしても,開発環境を開発者が好きに選べるというのはすげー大切だと思う.Windows上で統合開発環境使いたいひともいれば,UNIX上でemacsやmakeを使いたいひともいるわけだし.
あと,実はボード付属のCD-ROMに「H8/OS」というOSが付属していて,プログラムをメモリ上にロードして実行する機能を持っている.さらにputというコマンドがCD-ROMに付属していて,ソースも添付でFreeBSDへの移植は簡単そう.(h8writeと同様に,先頭にFreeBSD用の#defineがある)
ということでH8/OSをフラッシュに焼けばブートローダーとして使えて,putでKOZOSを送って実行する,ということができそうなので,ブートローダーの自作は必ずしも必須ではなさそうだ.(まあでもネタとして面白いので,ブートローダー自作しようかとは思ってはいるが)
あと秋月のボードのいいところだけど,自作OSを作るターゲットとしては,以下がいいなあと思った.
■ フラッシュROM書き換え回路を持っているので,フラッシュをとばしても個人レベルで書き換えが可能
通常はフラッシュ書き換えのプログラム(モニタ)をフラッシュ上に持っているのが普通だと思うのだが,それだとフラッシュとばしたり,へんなものを焼いてしまうと書き換え不能になるので,恐くて現実的には結局書き換えられんのよ.とばしたらICE使うしか手段が無くなったりするし.(ROMライタがあればだいぶマシだけど)
なので(ブートローダーのような)フラッシュROM上で動作するプログラムを個人レベルで書こうとしたら,このような機能はすげー重宝される.ICEなんて個人レベルではとてもとても買えないしねえ(これを仕事にしているプロなら別だけど,ホビープログラミングという遊びのために,このためだけにはとても買えない).まあもっともはじめから高級なモニタが乗ってたら,そもそも今回みたいにブートローダーから作ろうなんてことにはならないのだけど...
■ キットと完成品の両方の形態で販売
まあお金を節約したいならばキットなのだけど,数千円の違いならば,時間の貴重な社会人は完成品の形で買ってすぐに使いたいという人も多いだろう.半田づけとかあまりやりたくないだろうし(ぼくがそう).
こーいうこというと「自分が開発するボードを半田づけからきちんと自分でするのが基本では?」とかいうひとがいそうだけど(実際,言われたことがある),ぼくのやりたいのはOS開発であって回路づくりではないのよ.まあ学生さんとかならば時間もあるだろうし,半田づけからやってもいいとは思うけどね.
なのでこのボードのように,組み立て済みで売っていてくれるのはとてもありがたい.まあそれがこのボードの選択理由のひとつなのだけど.(KOZOSをみんなにいじってもらうということを考えると,いまさら半田づけなんてめんどくさいという人も多いだろうから,これってけっこう大事なことだと思う)