1|2|33.3.ファームウェア転送用アプリケーションの準備H8はフラッシュROMを内蔵しており、シリアル経由でプログラムを書き込むことができます(ROMライタは不要です)。writer」(通称「h8write」)というフリーソフトウェアが利用できます。h8writeは以下からダウンロードできます。FreeBSD、GNU/Linux、Windows共通で利用できます。writer上記Webサイトにソースコードがありますので、先頭行にあるOSの指定を環境に合わせて修正し、以下のようにしてコンパイルして実行形式を作成しておきます。Toolkit)」というメーカー純正のツールでも行えます。こちらはWindows用しかありません。World!”という文字列を出力するものです。このため、シリアル通信用のアプリケーションをPC側にインストールする必要があります。シリアル通信用アプリケーションには、以下があります。これらは「端末エミュレータ」などと呼ばれます。FreeBSD、GNU/Linuxなど......「cu」「kermit」「minicom」などWindows......「TeraTerm」「ハイパーターミナル」などWindowsの場合は「TeraTerm」、GNU/Linuxの場合は「minicom」がいいでしょう。これらをインストールしておきます。3.5.ソースコードの準備KOZOSはオープンソースソフトウェアです。ソースコードはKOZOSのWebサイトで公開されています。上記Webサイトの情報は、筆者が開発を進めるたびにその都度公開している情報のため、あまりまとまっていません。今回は初心者向けということで、書籍用に整理されたソースコードを利用します。参考文献[2]のWebサイトから「osbook_03.zip」をダウンロードしてください。解凍すると図12のフォルダ構成でファイルが展開されます。ソースコードのフォルダ構成これは筆者の書籍「12ステップで作る組込みOS自作入門」(参考文献[1])の各章(ステップ)に応じたソースコードになっています。本来ならば、フルスクラッチというならばこれを写経して......といいたいところですが、ここはソースコードをそのまま利用してしまいましょう。解凍したフォルダに「tools」というフォルダを作成し、h8writeを図13の構成で配置します。h8writeを追加するさらにPCのシリアルポートに合わせて、表2を参考にして「osbook_03/01/bootload/Makefile」の「H8WRITE_SERDEV」を修正します。表2中のデバイスファイル名の「X」の部分は、環境によって異なってきます。write」を試してみてダメなようなら「1」で試してみてください。WindowsはPC付属のシリアルポートでは「1」の場合が多いかと思いますが、これもダメなら「2」「3」と試してみてください。USBシリアルアダプターを利用している場合は、「4」「5」あたりになることが多いようです。3.6.ファームウェアのビルドさて、いよいよファームウェアをビルドして動作させてみましょう。ソースコードのフォルダ(osbook_03/01/bootload)に入って、以下を実行することでソースコードをコンパイルしてファームウェアをビルドします。図14は、筆者の環境(FreeBSD)で実行したときの写真です。臨場感を出すために、出力文字だけでなくあえて画面写真を掲載しています。imageこれでファームウェアとして「kzload」というファイルと、マイコンボードへの転送用のファイル形式に変換した「kzload.mot」というファイルが作成されています(図14)。次にPCとマイコンボードをシリアルケーブルで接続します(図15)。マイコンボードとPCを接続するマイコンボードのディップスイッチを、左から「ON、ON、OFF、ON」(上、上、下、上)に設定します(図16)。これでマイコンボードがフラッシュROM書き込みモードで起動するようになります。ディップスイッチを書き込みモードにする設定したら、電源アダプターを接続して電源ONします。本マイコンボードには電源スイッチはないため、電源アダプターの着脱で電源をON/OFFします。電源LEDのようなものはないため、電源が入っているかどうかは見た目には分かりませんので注意してください。write」を実行することでh8writeが動作し、ファームウェアを転送して内蔵フラッシュROMに書き込みます。write」を実行したところです。is」と表示された状態になれば、うまく接続されています。successed.」と出力されます。書き込み完了これでマイコンボードのフラッシュROMに、ファームウェアを書き込むことができました。後は電源ONでファームウェアが起動します。World!”の出力を確認するには、端末エミュレータ(TeraTermやminicomなど)を利用します。端末エミュレータを起動して、さらにパラメータを表3のように設定します。多くの場合はデフォルトのままでいいようですが、一応確認しておいた方がいいでしょう。シリアル通信のパラメータ図19は、筆者が愛用している「cu」というツールで接続したところです。端末エミュレータでマイコンボードに接続するディップスイッチの設定を、左から「ON、OFF、ON、OFF」(上、下、上、下)に設定します(図20)。これでマイコンボードがフラッシュROMからブートするようになります。ディップスイッチを起動モードにするリセットボタンを押して、起動してみましょう(図21)。リセットボタンはディップスイッチのすぐ右側にあります。リセットボタンを押す図22は、端末エミュレータの出力です。World!”の文字列がシリアル経由で送信され、端末エミュレータ側で出力されています。無事、「HelloWorld!」が動作しています。World!”が出力されるうれしくてリセットボタンを何回も押してみました(図23)。その都度リセットがかかり、繰り返し出力されています。今回は開発環境を構築して動作させることにとどまりました。World!」の出力に必要な作業は何かを詳しく解説します。セミナーでの発表やイベント出展、勉強会の開催など多方面で活動中。著書は「12ステップで作る組込みOS自作入門」など多数。SNSfacebooktwitterITmediaはアイティメディア株式会社の登録商標です。