
では、SRAMを追加した付録基板用にモニタデバッガを修正し、書き込んでみる。
まず、構成は以下の通り
CPU : SH-2 7144F
Board : Interface 2006 June CQ7144
SRAM : R1RW0416D 512KByte
ここで、7144Fのデータシートを見てアドレスマップを確認する。各メモリの開始アドレスをチェックすると、
0x00000000 : 内蔵ROM256kByte
0x00400000 : CS1(外部SRAM512kByte)
0xFFFFE000 : 内蔵RAM8kByte
となっている。
内蔵ROM領域にはモニタデバッガのプログラムを配置
外部RAM領域にはユーザープログラムとユーザーデータを配置
内蔵RAM領域にはモニタデバッガのデータ領域、スタック領域、ヒープ領域を配置
これで、外部RAMのすべてをユーザーが自由に使える設定となる。とりあえず、モニタソフトの修正からはじめる。ルネサスのHPからサイト検索で「sh hterm」と検索すると、サンプルプログラムと通信ソフト「Hterm」がダウンロードできる。ここで総合開発環境HEWとコンパイラパッケージを使用して「monitor」をもう一度ビルドする。その際にいろいろと修正が必要となる。
まず「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=C
DEFINE $STACK=0
START VECTOR/0,ROM/400,P,C/0006000,RAM/ffffE000,USER/FFFFE160,SCI/FFFF81B0
とりあえず、赤字の部分を修正。
これは7144用の設定で、ROM領域、RAM領域の指定を行い。Htermとの通信速度は「57600bps」で設定を行っている。計算方法はデータシートに載っているが、CQ7144の場合は周辺クロックが24MHzなので、24000000/32/57600-1 = 12 = 0x0C となる。
さらに「monitor.c」の修正箇所は通信用ピンの設定と、外部空間へのアクセスの設定である。
/************************************************************************/
/* SH7600 Monitor Program Ver. 2.0A */
/* Copyright (C) 2003 Renesas Technology Corp. */
/************************************************************************/
#include "7144s.h" /* */
/************************************************************************/
/* User Initialize Module */
/* Input PR <-- Return Address */ /* Output Nothing */ /* Used Stack Area --> 0(0) Byte */
/************************************************************************/
#pragma noregsave(INITIALIZE) /* Non Register Save */
void INITIALIZE(void) /* */
{ /* */
/*SCIで使用する端子の設定を行う */
PFC.PACRL2.BIT.PA4MD = 1; /* PA4 is TxD1 */
PFC.PACRL2.BIT.PA3MD = 1; /* PA3 is RxD1 */
/* */
/*BSCのBCRでCS1空間を有効にする */
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.A1SZ = 1; /*CS1は16bit空間 */
BSC.BCR2.BIT.IW1 = 0; /*CS1空間後のアイドルサイクル無し*/
BSC.BCR2.BIT.CW1 = 0; /*CS1空間連続アクセスアイドルサイクル無し*/
BSC.BCR2.BIT.SW1 = 0; /*CSアサート拡張有り */
BSC.WCR1.BIT.W1 = 1; /*1wait */
PFC.PDCRL1.WORD = 0xffff; /*D0からD15までを有効にする*/
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 */
これで、モニタデバッガが起動した時に通信と外部RAMへのアクセスが可能となる。
ここでプロジェクトに「lower.c」を追加し、ビルドを行う。ちなみにprintf、scanfを使わない場合は必要ない。書き込み用の「MONITOR.MOT」ファイルが生成されるので「FDT」等でマイコンに書き込む。

0 コメント:
コメントを投稿