ちょっと時間ができたので、KOZOSのarduinoへの移植のためにarduinoの調査を進めている。
以下、自分のメモがてら書いておこう。
まずarduinoはブートローダーを持っていて、これは普通のHEXファイルをブートできるようなので、gccとかでビルドしたファームをブートすることも可能なようだ。avrdudeというツールでできるらしい。
作成したスケッチは、IDEからavrdudeが起動され、フラッシュROMに書き込まれる。このためいったん電源を切っても、ダウンロードしたスケッチは残っているので起動できる。ただスケッチのソースをビルドして書き込み用のHEXファイルをIDEで作成する際に、HEXファイルがどこのディレクトリに作成されるのかが不明...ビルド後のファームウエアを解析してメモリマッピングとか調査したいとこなんだけど、誰か場所知ってたら教えて。
ブートローダーのソースコードはarduinoのサイトで参照することができるが、arduinoのIDEをダウンロードして展開すると、そこにソースも含まれているのでそれを参考にできる。非常に簡単なソースコードだし、シリアル送受信も持っているので、これはとりあえずのとっかかりを作るためのサンプルになる。
ブートローダーを上書きしてしまうと、当然だがarduinoのIDEからの利用ができなくなる。ROMライタは秋月で4000円くらいで売られているものを利用できそうだ。arduinoのIDEにブートローダーの書き込みメニューがあるので、IDEからブートローダーを書き込むことができそうだ。ブートローダーのHEXファイルはIDEに付属しているみたい。ROMライタ無しでも回路作ればフラッシュROM書き込みできるようなのだが、いろいろ頑張る必要がありそうなので、はじめはまあ無難にROMライタ使ったほうがいいだろう。
なのでKOZOSの移植では、ブートローダーから自作するか、ブートローダーはarduinoのものをそのまま使ってOSだけ自作する、という2通りの方法がある。開発はいつもどおりクロスのgccでできそうだ。
ブートローダーから自作してもいいけどROMライタが必要になってしまって「なるべく安価なターゲットで」というKOZOSのポリシーとしては都合が悪い。でもOSだけの自作だと、標準のブートローダーになにかと縛られてめんどくさいのと、AVRはRAMがとても少ないのでROM上で動作させることになりそうなのだけど、ブートローダーを自作してライブラリ関係はブートローダーにBIOSのように持たせてしまえば、OS部分はコンパクトにできてRAM動作もできるんでないかなーという思惑もある。
ちなみにarduinoはハード+開発環境でarduinoなので、このようにIDEのスケッチを利用しない場合には、「arduino上で動作するOS」というのはちょっとおかしいだろう。「arduino用のマイコンボード上で動作するOS」というのが正しいだろう。
arduinoの内部構造などに関しては、千秋ゼミ で詳しく説明してある。ここはとても参考になっています。この場を借りて感謝いたします。
雑感だが、arduinoは非常にツール類が充実していてとても便利で、初心者向けということを非常によく考えられていると思う。それも、開発環境だけでなく、初心者向けということを総合的に考えてあるように思う(ボードが安いとか、回路図も公開とか)。
で、それはすばらしいことなのだが、ただその反面、それらのツールを使うのが前提の説明しかなく、内部構造を知りたいとかツールから離れてなんかやりたい(ぼくのように、OSを作りたいとか)というための資料が少ないなあ、と思う。まあだからよくないということではなく、だから自分がそーいう資料を書かなきゃならんなあっていうことなのだが。
やっと休日なのだが、OSC仙台で配布する資料の準備とか印刷とかセミナーの準備とかPCの準備とかついでに部屋の片付けとかしてたら土曜は終わってしまった。。。
ちなみに仙台での販売ですが、それほど数を持っていくわけではないのでなくなったらおしまいです。確実にほしい!というかたは、メールで前もって連絡いただければとっておきます。
また当日は私ひとりで設営、説明、セミナー、販売、片付けとすべてこなさなければならないので、ちょっとバタバタしてしまうかもしれませんがご容赦。
さて、そろそろ夕食たべないと。。。
組込みOS本ですが、ISBNが決まりました。
「12ステップで作る! 組込みOS自作入門」(カットシステム)
ISBN 978-4-87783-239-1 C3004
本体価格 4,200円
ページ数多く、思っていたよりちょっとお高めになってしまいました。。。(ボードより高い。。。)
予約するかたは、よろしくお願いします。
で、5月24日発売と書いていたのですが、都心の書店では2~3日はやめに並ぶかもしれません。
また、これももしかしたらですが、ジュンク堂などの大型書店では、見本本がもっと早めに並ぶかも
しれません(前作 のときはそうだった)。
なので少しでも早く読みたい!というかたは、ジュンク堂とかで店頭チェックすると
もしかしたら早めに入手できるかもしれません。
あと、このあいだ原稿を読み返していて重大なミスがあることが発覚。
OSのことを「Operation System」と書いてしまっている箇所があります…!
正確には「Operating System」ですな。あちゃー。
まあ、500ページもひとりで書いているとなんかしらのミスはするものなのですが、
まさかOSの本でOSの単語の意味を間違えるとは。。。ショック。。。
(なんどもなんども読み返してチェックしたはずなのですが、もれてました。
一番間違えてはいけない単語なのに。。。)
ミスはサポートページ のほうでまとめたいと思っています。とりあえず書籍購入したら、サポートページのほうを
のぞいてみてください。他にもミスがありましたら、書籍の品質を上げるためにもぜひ報告をお願いします。