H8/3052Fモード7用モニタデバッガ生成メモ |
||||||
H8/3052Fのデバッグ環境は、Renesasのウェブサイトからダウンロードできるモニタデバッガを
使用することで無料で簡単に構築することができます。
注意:ここで示す方法では、試用期間が終わっているコンパイラではビルドできません。 |
||||||
記 2009/6/14 | ||||||
必要なファイルと入手先を以下に示します。
ダウンロードしたモニタデバッガのファイルは自己解凍型の実行ファイル(2009.6.14現在"300hhew3.exe")です。これを 実行するとc:\300h(デフォルトの解凍フォルダ)フォルダが作成されてこの中に解凍されます。 HEWを起動してメニューの ファイル(F)→ワークスペースを開く(R) で、このフォルダの中にあるmonitor.hwsを開く ことにより、ワークスペースとして開くことができます。(いくつかメッセージが表示されますがこれには"OK"、"はい" ボタンで応答します。) c:\300hフォルダの中には"readme.htm"というファイルがあり、CPUに合ったコードの修正方法が記述されています。 この内容に沿って修正することにより希望するモニタデバッガの実行ファイルをビルドすることができます。 |
||||||
以下の手順で修正を行いファームウェアを生成します。
1.C言語によるユーザイニシャライズモジュール(monitor.c)の修正monitor.cで記述されているヘッダーファイルを"3003.h"から"3052s"に変更します。プロジェクトウインドウのDependenciesフォルダに表示されるファイル名は自動的に変更されます。 2.リンケージサブコマンドファイル(monitor.sub)の修正以下の条件で動作するための修正を下図の赤枠で示します。使用CPU:H8/3052F 動作モードモード7 動作周波数:25MHz モニタ使用SCIチャネル:1 38400bps また、printf関数、scanf関数を使用するための修正を緑枠で示します。 ここまでの修正後、ビルドを行ってロードモジュールを生成します。出来上がった MONITOR.MOT をH8に書き込むと
モニタデバッガを使用することができます。 3.printf関数、scanf関数のサポート 対応組み込み型モニタがサポートするprintf関数とscanf関数をユーザプログラムから使用する場合、使用する ソースコードに以下のマクロを記述する必要があります。#define printf ((int (*)(const char *,...))0x????????) #define scanf ((int (*)(const char *,...))0x????????) ????????の部分には組み込み型モニタと共にリンケージされたprintf関数とscanf関数のアドレスを記述します。 このアドレスは手順2までの修正後、ビルドを行ったときに作成される"MONITOR.MAP"ファイルの中に記述されています。 FILE=_printf 00002b34 00002b85 52 __printf_lite 00002b34 52 func ,g * FILE=_scanf 00002b86 00002bd7 52 __scanf_lite 00002b86 52 func ,g * 上記のようになっていたので、マクロは以下のようになります。 #define printf ((int (*)(const char *,...))0x00002b34) #define scanf ((int (*)(const char *,...))0x00002b86) 筆者は、このコードをヘッダファイルにして必要に応じてインクルードして使うようにしています。 *.動作確認用のサンプルプログラムモニタデバッガは仮想ベクタ方式を採用しているため、モニタデバッガ上で動作させるプログラムも仮想ベクタに対応している 必要があります。HEWが自動生成するワークスペースでは仮想ベクタに対応していないため、何らかの対応が必要になります。筆者の場合以下のように対応しています。
仮想ベクタ用ファイル 仮想ベクタに対応したサンプルプロジェクトをここで公開します。 このサンプルプロジェクトは、秋月電子のAKI-H8/3052Fマイコンボードをマザーボードに搭載したものを対象としています。 このサンプルプログラムは以下のように動作します。
|