読者です 読者をやめる 読者になる 読者になる

組み込みOS自作入門!!「1日目 - Hello World」 (1stステップ)

組み込みOS自作入門

現在は3ステップ目まで終了しているのですが、ブログの方にまとめていなかったので、さかのぼって書くことにします。
ようやく1日目がスタートしました。

Hello World

さて、開発環境の構築ができて、開発用のボードも手に入れて、最初にやることといえば…Hello Worldですね!(マイコンの場合はLED点滅の方が一般的かもしれません)


#include ... printf("Hello ... なんて書きたくなりますが、ライブラリは一切使用しないので、そんなことはできませんね。では、どうしましょう?…
当たり前ですが、全部作ればいいんですよ(笑)
ということで、12ステップ本の通りにソースコードを打ち込んでいきます。


今回は

を作成しました。
ソースコードをご覧になりたい場合は、12ステップ本の著者の坂井さんのページを参照してください。


まぁ書籍の通りに写すだけですから、「写すだけなんだから余裕でしょ!」とか調子に乗ったことを思っていたのですが…
いざ、ビルド!!
…エラーが返ってきました…当たり前ですね。一発でビルドが通ることを期待してはいけません(笑)
簡単なミスだったので、修正してもう一度ビルド…今度は成功したようです。
早速書き込んで動かしてみます。
h8writeというフリーソフトを使用し、書き込みました。
まだ喜ぶのは早いです。実機で動かなければ意味がないですから。
Tera Termを起動して、シリアルケーブル接続して、電源オン!


…「へんじがない。ただのしかばねのようだ」


リセットボタンを連打するも、反応なし。
今回使用しているH8/3069Fマイコンボードは、今回が初めての書き込みでしたから、このマイコンボードが正常に動作している所を見たことがありません。
そのため、ソフトが悪いのか、ハードが悪いのかよく分からず、「俺、なんか変なことしてマイコンボード壊しちゃったかな…?」と真剣に悩んでいました。
既製品なので、もともとハードウェアが壊れていたという可能性はまずないので。
PICマイコンを使っている時もそうでした。その時は、自作の基板で、電源の向きが逆になっていたのが原因で、マイコンが触れない位発熱していた気がします…
そのあと修正したら何事もなかったかのように動作するのですから、最近のICって凄いなぁと思います。


そんなことを考えながらしばらく放置しておいたら、画面に

Hello World!

の文字が!!正常に動作していなかったはずなのに!
リセットボタンを押してみる。…無反応。
なにそれこわい(笑)


この原因を突き止めるべく色々試していたら、それだけでかなり時間を消費してしまいました\(^o^)/
結局原因はわかりませんでしたが、Renesas純正の書き込みソフト、FDTを使用するとちゃんと書き込めたようで、期待通りの動作をしてくれました。
※h8writeが駄目だという訳ではなく、たまたま僕の環境だとうまく動作しなかっただけなので、そこは誤解なさらぬようお願いします。


僕の家にあるPCは皆シリアルポートがないので、USB-シリアル変換ケーブルを使用して書き込み&通信を行いました。12ステップ本の中にも書かれていますが、出来る限りハードウェアに実装されているシリアルポートを使用したほうが、このような問題にぶちあたらずに済むと思います。
とはいっても…最近のPCはシリアルポートがついているものなんてまず見かけないんじゃないでしょうか。自作PCの方は、マザーボードにそれらしきピンヘッダーがさりげなく存在するかもしれませんが、これものちのち省スペース化のために取り払われてしまうとしたら…なんだか寂しいです(笑)


ということで、1日目はHelloWorldまで進みました!