SSブログ

T-SH2MB用デバックモニタの作成 [RX&SH&H8]

ルネサスのサイトから「半導体セミナー」→「サンプルプログラム」と進み、注意事項をよく読み、内容に納得した上で先に進むと、「サンプルプログラム」の中に「SuperHファミリ」が在りますので、ここから先に進み、お使いのSHCコンパイラバージョンに合わせたSH2用モニタプログラムをダウンロードします。

自己解凍式実行ファイルである「sh2hew3.exe」をダブルクリックして、任意のフォルダーに解凍を行います。

解凍先のフォルダーの中の「monitor.hws」をダブルクリックすれば、HEWが起動してワークスペースが開きます。
コンパイラバージョンがちょっとでも異なると色々聞いてきますが、自信を持って(笑)先に進んでください。この程度で怯んでいては、今後のバージョンアップに耐えられません(*´ー`) 。

無事ワークスペースが開いたなら、一旦ビルドを行っておきます。
この時このモニタプログラム専用ライブラリが生成される為に、最初のビルドでは時間が掛かりますが、これ以降は短い時間でコンパイルが完了するようになります。

さて、T-SH2MB専用にカスタマイズを行う必要がありますので、その手順に入ります。
HEWの左側のペインの中の「monitor.c」をダブルクリックするとエディタ上にソースファイルが開きますので、まず先頭から5行目のインクルードファイルを指定し直します。
T-SH2MBで使用しているマイコンはSH2/7145なので、グループとしては7144と言う事になります。
※グループとは、周辺IO等の配置や構成が一致しているマイコン群です。

修正前:#include "7040s.h"
修正後:#include "7144s.h"

次に関数「INITIALIZE」を、外付けRAMの配置に合わせて変更します。
このT-SH2MBはCS1領域の0x400000~0x5fffffまでの間の4Mbyteに32bitでバス接続されたSRAMが搭載されています。また、T-SH2MBのオプションによって変わって来ますが、基本構成では55nsのSRAMが接続されていますので、waitサイズは3とします。

#pragma noregsave(INITIALIZE)  /* Non Register Save    */
void INITIALIZE(void)                 /*                      */
{                                             /*                      */
  /*SCIで使用する端子が選択されていないので、ここでまず使用する端子の設定を行う*/
  PFC.PACRL2.BIT.PA4MD = 3;     /* PA4 is TxD1         */
  PFC.PACRL2.BIT.PA3MD = 3;     /* PA3 is RxD1         */

  /*BSCのBCRでCS1空間を有効に設定する*/
  PFC.PBCR1.BIT.PB8MD = 2;      /*A20を有効にする*/
  PFC.PBCR2.BIT.PB7MD = 2;      /*A19を有効にする*/
  PFC.PBCR2.BIT.PB6MD = 2;      /*A18を有効にする*/
  PFC.PBCR2.BIT.PB1MD = 1;      /*A17を有効にする*/
  PFC.PBCR2.BIT.PB0MD = 1;      /*A16を有効にする*/
  PFC.PCCR.WORD = 0xffff;        /*A0からA15を有効にする*/

  BSC.BCR1.BIT.A1LG = 1;         /*CS1は32bit空間*/
  BSC.BCR2.BIT.IW1 = 0;          /*CS1空間後のアイドルサイクル無し*/
  BSC.BCR2.BIT.CW1 = 0;         /*CS1空間連続アクセスアイドルサイクル無し*/
  BSC.BCR2.BIT.SW1 = 0;         /*CSアサート拡張有り*/
  BSC.WCR1.BIT.W1 = 3;          /*3wait*/
  PFC.PDCRH1.WORD = 0x5555; /*D24からD31までを有効にする*/
  PFC.PDCRH2.WORD = 0x5555; /*D16からD23までを有効にする*/
  PFC.PDCRL1.WORD = 0xffff;    /*D0からD15までを有効にする*/
  PFC.PDCRL2.WORD = 0x0000; /*D0からD15までを有効にする*/

  PFC.PACRH.BIT.PA23MD = 1;   /*WRHHを有効にする*/
  PFC.PACRH.BIT.PA22MD = 1;   /*WRHLを有効にする*/
  PFC.PACRL1.BIT.PA14MD = 1;  /*RDを有効にする*/
  PFC.PACRL1.BIT.PA13MD = 1;  /*WRHを有効にする*/
  PFC.PACRL1.BIT.PA12MD = 1;  /*WRLを有効にする*/
  PFC.PACRL1.BIT.PA11MD = 1;  /*CS1 出力PIN*/
}  /* Goto Monitor Program */

次は「monitor.sub」を変更します。以下の様にして置きます。

INPUT      SUPERH,MONITOR,LOWER
LIST       MONITOR.MAP
SHOW       SYMBOL
OUTPUT     MONITOR.MOT
FORM       STYPE
CHANGE     INFORMATION=1320
NOOPTIMIZE
LIBRARY    SUPERH,7144
LIBRARY    MONITOR
DEFINE     $BRR=13
DEFINE     $STACK=0
START      VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/FFFFE160,SCI/FFFF81B0

1.INPUTで「LOWER.OBJ」を読むように指定しています。当然、プロジェクトファイルに「LOWER.C」を追加しておきます。

2.LIBRARYを7144に変更しておきます。

3.SCIのボーレートジェネレータの初期値を13(hex)にして置きます。38400bpsで通信します。

4.STARTセクション指定でCソースのセクションである”P”と"C"を”ROM”に続けて記述し、”RAM”や”USER”を内蔵RAM領域に割り当てています。
SCIの開始アドレスは、SCI1のレジスタの開始アドレスに合わせておきます。
外部に多量のRAMが存在しますが、なるべく内蔵RAMを優先的に使った方がお得です。
参考までにmap出力の割り付けを下記に掲載しておきます。

*** Mapping List ***

SECTION                            START      END         SIZE   ALIGN

VECTOR
                                  00000000  000002bf       2c0   4
ROM
                                  00000400  000057dd      53de   4
P
                                  000057e0  0000bdb3      65d4   4
C
                                  0000bdb4  0000c0c3       310   4
SCI
                                  ffff81b0  ffff81b5         6   4
RAM
                                  ffffe000  ffffe15f       160   4
USER
                                  ffffe160  ffffe160         0   4

これで設定は完了したので、ビルドを掛けてmotファイルを作成します。また同時に作成されるmapファイルの中身を見ますので、エディタでmapファイルを開いてください。

エディタで開いたmapファイルから関数名”printf”と”scanf”を探し出し、開始アドレスをメモしておきます。

FILE=printf
    000057e0  0000581b        3c
  _printf
    000057e0        3c   func ,g         * 
FILE=scanf
    0000581c  00005857        3c
  _scanf
    0000581c        3c   func ,g         * 

後は作成したmotファイルをターゲットに書き込み、通常モードで起動して、デバックモニタのクレジットが通信ターミナルを通して出力されるのを確認すればOKです。
※書き込みにはFDTを使用します。ターミナルソフトにはHTERMを使用します。



作成したデバックモニタ拡張子をjpgファイルとして登録していますので、右クリックでローカルに落とし、拡張子をzipに変更してから解凍して使ってください。

これならわかるSuperHマイコン

これならわかるSuperHマイコン

  • 作者: 藤沢 幸穂
  • 出版社/メーカー: オーム社
  • 発売日: 2003/02
  • メディア: 単行本


SuperHプロセッサのアーキテクチャ

SuperHプロセッサのアーキテクチャ

  • 作者: 藤澤 幸穂
  • 出版社/メーカー: オーム社
  • 発売日: 2006/06
  • メディア: 単行本


nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

noritan

あ゛っ!
本当に拡張子改変方式を使っていらっしゃるのですね。
vectorに登録されているアーカイバを調べましたが、画像ファイルを書庫にするようなものは見当たりませんでした。本当に実現したらすごいのかも。

# ウィルスにも利用されそうで、ちょっと怖いのですが。
by noritan (2008-02-18 08:57) 

hamayan

> # ウィルスにも利用されそうで

そうですね、ウイルス検出プログラムの検索対象外でバイナリーを送る事が出来そうですからね。
皆さん一応ウイルス対策ソフトは入れて置いてね。

でも考えてみると実行ファイルをソースで提供する方式だって、ウイルス検索の対象外ではあるんで、何処までそのソースを信用できるか?ですね。
by hamayan (2008-02-18 09:13) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。