ITRON入門 HOSポーティング手順【HEWの環境準備と構築】

ITRON入門カリキュラム
この記事は約5分で読めます。

ビュートローバープロジェクトの作成

次はビュートローバーのプロジェクトを作成します。

ビュートローバープロジェクトの作成手順

HEWのワークスペース画面からプロジェクトの挿入を選択し、新規プロジェクトを作成します。

ビュートローバープロジェクトはmain関数を含むアプリケーションとして作成するため、プロジェクトタイプは「Application」を選択します。プロジェクト名などは次に従ってください。

  • プロジェクト名:BeautoRover
  • ディレクトリ:C:\WorkSpace\BeautoRoverRTOS\BeautoRover

CPUタイプにはビュートローバーに搭載されている36064を選択します。

H8/36064はNormalモードのマイコンのため設定そのままで次へ進みます。

ヒープメモリは今回のアプリケーションでは使用予定がないためチェックを外します。またmain関数は別途用意するため「None」にすることで自動生成しないようにします。

I/Oレジスタ定義は利用するためチェックはONの状態にしておきましょう。

割り込みハンドラ登録用のベクタテーブル定義に関してHOS側にて管理するため、ここではチェックを外しておきます。

Readme.txtは不要なためチェックを外しておきましょう。

このダイアログはHEWを利用していると時々出てきますが、基本的に「はい」で大丈夫です。

ビュートローバープロジェクトへのファイルの削除と登録手順

dbsct.cはセクションと呼ばれる情報を定義したファイルですが、使用しないためプロジェクトから削除しておきます。

続いてビュートローバーを最低限動作させるためのソースファイルとヘッダファイルを用意します。次のプログラムをダウンロードし、圧縮ファイルを解凍してください。

C:\WorkSpace\BeautoRoverRTOS\BeautoRover へソースファイルとヘッダファイルを格納しておきます。

コピーしたファイルをプロジェクトに登録します。ドラッグしてビュートローバープロジェクトに追加登録してください。

HOSプロジェクトで作成したhos.libも登録しておきます。これによりビルド時にライブラリがリンクされ、ビュートローバー側からHOSの関数が呼べるようになります。

ビルドフェーズの登録

ITRONの仕組みとしてコンフィギュレーションという作業が必要となります。詳細は別途解説しますが、まずはその仕組みをプロジェクトに登録しておきましょう。

メニューの[ビルド]-[ビルドフェーズ…]を選択してください。

ビルド時に実行する手順を追加することができます。「追加」ボタンを押してください。

指定の内容をそのまま入力してください。

  • フェーズ名:preconfig
  • コマンド:C:\Program Files (x86)\Renesas\Hew\Tools\Renesas\H8\7_0_0\bin\ch38.exe
  • デフォルトオプション:system.cfg -cpu=300HN -prep=system.pre
  • 初期ディレクトリ:$(PROJDIR)

preconfigというビルドフェーズが作成できました。[上へ]ボタンを利用して一番先頭に移動させておいてください。

続いてもう一つビルドフェーズを追加していきます。

  • フェーズ:config
  • コマンド:C:\WorkSpace\BeautoRoverRTOS\hos\config\hos4cfg.exe
  • デフォルトオプション:system.pre
  • 初期ディレクトリ:$(PROJDIR)

作成したconfigは2番目に実行されるように[上へ]ボタンで位置を調整してください。

ビュートローバープロジェクトのビルド設定

続いてビルドをするための設定を行います。メニューの[ビルド]-[H8S,H8/300 Standard Toolchain]を選択します。

HOSのヘッダファイルとプロジェクトへのインクルードパスを追加しておきます。

依存関係検索エラーメッセージを抑制しておきます。

セクションと呼ばれるメモリの配置場所を設定します。[編集]ボタンを選択し、右下の図となるように[追加][変更][削除]を活用して設定してください。

  • 0x00000000:VECT、P、C、D
  • 0x0000F780:B、X

これはHEWの標準のセクション名からHOS用のセクション名に変更しています。

ROMからRAMへマップするセクションを選択し、Ramの「R」を「X」へ変更します。

シンボル定義によりSTACKというシンボルを0xFF80のメモリ番地に設定しておきます。また、エントリポイントとしてHOSの起動時シンボル名である「_startup」を設定しておきます。

ビルド作業

ここまで出来たら一度ビルドを通します。

この段階ではビルドエラーが発生します。

ビュートローバーのプロジェクトフォルダ下にkernel_cfg.cとkernel_id.hの2つのファイルが生成されているため、この2ファイルをビュートローバープロジェクトにドラッグして登録します。

再度ビルドを行えばエラーが解消され実行ファイルが生成されます。

これでようやくポーティング作業の完了です。皆さんお疲れさまでした。大変でしたね・・・。これがポーティングのしんどいところです。

実際のポーティング作業ではこのような手順が明確でないことがほとんどのため、かなりの知識がないと様々なところでトラブルが起きます。

私自身この作業に1日がかりで対応する羽目になりました・・・。