HTERMをカスタマイズする

ここではSH2のモニタプログラムとして日立がサンプルとして配布しているHTERM を改造します。
Thanks! 濱原どの:基本的には参 考文献の濱原氏の手法です。私はmakeコマンド不要のバッチ処理にしたことと、 自分が調べた内容の追加を行ったにすぎません。

モニタについて

モニタの機能は大まかには以下の通りです。

これがあるとデバグが便利です。特に一番。SH2のROMメモリは100回程度しか書 き込めないので、これができるとできないでは大違い。モニタがあれば、自分の 作ったプログラムはRAMにダウンロードすればすみます。また、動作中のメモリ やレジスタの状態を監視したり書き換えたりできます。デバッグには必須でしょ う。

なぜHTERMのカスタマイズ

日立ではモニタプログラムであるHTERMをコンパイルした状態で配布していま すので、このままでも使用できます。ならばカスタマイズがなぜ必要なのでしょ うか?理由は次の通りです。

ある程度プログラムのサイズが大きくなると、転送速度は開発効率に関わってき ます。さらに問題なのはHTERM起動時には外部メモリが使えないことです。自分 で作ったプログラムを外部メモリに転送して実行したいとします。このときはバ ス周りの設定を行ってからでないと転送は出来ません。これは面倒です。

必要なもの

材料は基本的にネット上でフリーで手にはいるものと、トラ技01年06月号で入手 できるものです。

材料と道具
名前説明入手元
コンパイラ日立の試食版 日立セミコンで配布しているが、
トラ技付属の物を使用
モニタのソース日立で配布しているサンプル 日立セミコンより
OSWin -
F-ROMライタMDI版HTERM 日立セミコンより
書込制御プログラム 北斗電子HSB7045の書込制御プログラム トラ技より入手。

実は以前こけてました。

HTERMのソースの中のバッチファイルを見ると、見たことの無いコマンドがあります。実はこれ、HEW(Hitachi Embedded Workshop)の5.1以前専用のコードです。今回使用する試食版との差は

です。HTERMのコードと付属のライブラリはそのままでは使えません。前にここ でつまっておりました。

それを可能としたのが、 濱原氏です。私の方法も基本的に濱原氏の方法に乗っ取っております。

濱原氏はmakefileを作成し、CYGWINなどのmakeコマンドによってコンパイルする方法でライブラリアンを使用しない様にしております。私はCYGWINをいれるのが面倒という理由で、バッチファイルを用いる方法を取りました。windowsに痕跡を残さないという点で非常にクリーンな方法です。

作業手順

詳細は大体の流れと、makeを使用しない場合の手順を紹介致します。

  1. 日立の試食版コンパイラのインストール
  2. モニタソースの書き換え
  3. コンパイル
  4. 焼き込み

日立の試食版コンパイラのインストール

ここでは、コピーだけでOKです。パスの設定などはバッチファイル内で行い ます。

モニタソースの書き換え

コンパイル

コンパイルする方法としてはDOSのバッチ処理で行います。 これをHTERMのソースと一緒に置いて、パスを設定して実行すればOKです。

REM ---------------------- コンパイル ------------------ set SHC_LIB=c:\hew\bin set SHC_INC=c:\hew\include set SHC_TMP=c:\windows\temp SHC -CPU=SH2 monitor.c for %%i in (shsrc\*.src shtip\7040\*.src shmod\*.src shint\*.src shdmy\*.src shcmd\*.src) do asmsh %%i REM ----------------- subファイルの作成 ------------------ echo ; < temp.txt for %%i in (shsrc\*.obj shtip\7040\*.obj shcmd\*.obj shmod\*.obj shint\*.obj shdmy\*.obj) do echo INPUT %%i << temp.txt echo INPUT monitor.obj << temp.txt echo ENTRY INT000>>temp.txt REM BRR=0x16 for 38600 BPS @ 28.646MHz echo DEFINE $BRR(16) << temp.txt echo DEFINE $STACK(0) << temp.txt echo PRINT monitor.map << temp.txt echo OUTPUT monitor.abs << temp.txt REM RAMはモニタで使う領域 REM USERはユーザのベクタの領域(+0x27fまで) REM SCIは使うBBRの位置 echo START VECTOR(0),ROM(280),RAM(0FFFFF800),USER(0FFFFFA00),SCI(0FFFF81B0) << temp.txt echo EXIT << temp.txt REM --------------------- リンク ------------------------ lnk /sub=temp.txt

焼き込み

日立コンパイラの試食版で作られるのは独自の形式であり、書き込むためにはHTERMを用いることしかないらしいです。HTERMを用いる場合には、CPUに適合した書き込み制御プログラムが必要です。ここではトラ技に付属していたHSB7045用のものを使用しました。手順は以下の通りになります。

  1. AP-SH2F-0AのディップスイッチをFlashWriterのマニュアルで指定されている 状態に設定
  2. HTERMから書き込みを選択
  3. CPUボードをリセット
  4. 書き込み制御プログラムはHSBの物を指定
  5. 書き込むプログラムは作成したmonitor.absを指定。形式はSYSROF。

参考文献/サイト

goto TOP
このドキュメントはフリーです。
勝手に再配布/変更しても構いません
$Date: 2006/11/07 03:20:40 $
$Revision: 1.1.1.1 $