[H8-ML(1625)] [Q] SRAM 増設時の日立製モニタの設定
From: k-zono@xxxxxxxxxxxxxxxx
Date: 2002年03月03日(日)17時31分39秒
はじめまして、まつぞのです。
AKI-H8/3048F に SRAM を増設するときのモニタの設定について
教えてください。

[経緯]
H8の開発環境について  Web で調べたところ、gcc でリモートデバッグ
も可能だということがわかり、挑戦する事にしました。SRAMとの配線の
仕方、モニタのカスタマイズの仕方など、ひととおり調べて(先人に感謝<_o_>)
そのとおりにやった(つもり(^^;;)だったのですが、世の中そんなに
甘くはなかったのでした。(^^;

[症状]
増設したメモリに値を書き込んでもその値が保存されない。
こんな感じです

<----------------------------------------------------------


 H8/3048 Series Advanced Mode Monitor Ver. 2.2A
 Copyright (C) Hitachi, Ltd. 1995
 Copyright (C) Hitachi Microcomputer System, Ltd. 1995

: D 20000
  <ADDR>                  <  D  A  T  A  >                     < ASCII CODE >
  20000   FD 4F 5B 0F BF 07 BF 07  FD 07 DF 07 DF 0F 5F 07   ".G[....G......_."
  20010   FD 47 BF 0F FF 07 AA 07  7B 0F FE 07 FB 0F F3 0F   ".G...G..{G.G...."
  20020   FF 07 FF 0F FF 07 BF 07  F8 07 FB 07 BF 4F DB 47   "...G...G...G.G.O"
  20030   B9 0F D9 07 FF 0F FF 07  B2 0F D9 0F F3 07 FB 0F   ".....G.O........"
  20040   B9 0F FF 07 D3 07 FD 0F  D7 47 FB 07 D5 0F A5 0F   ".......G.O......"
  20050   9F 0F E9 07 9C 0F BE 07  D9 0F DD 07 BD 0F B1 4F   ".G...O.G........"
  20060   F3 0F FD 07 FA 0F DD 0F  DB 07 FD 0F BF 0F AC 47   "...G............"
  20070   79 07 9F 0F EF 07 D7 0F  B4 07 91 0F B1 0F 1A 47   "y..............."
  20080   FD 0F FF 07 CE 4F ED 07  CD 4F FF 07 FD 07 BF 4F   "................"
  20090   BB 07 B2 0F FF 0F BF 07  EF 0F FD 07 F9 0F 89 07   "................"
  200A0   BF 47 DF 4F DF 47 DE 47  7F 47 F7 4F D5 07 FB 0F   "................"
  200B0   DF 4F FF 47 BE 0F D9 4F  EB 0F FB 4F DF 07 DB 0F   "................"
  200C0   F3 0F F5 07 D7 4F F1 07  9F 0F DB 47 D3 0F AD 0F   "................"
  200D0   F3 07 FF 0F DF 07 DB 07  BF 07 73 0F D3 0F FF 07   "..........s....."
  200E0   AD 0F BE 07 FF 07 FA 4F  FF 07 FD 0F DF 0F BF 07   ".............G.."
  200F0   DD 07 FD 0F 9F 07 BD 07  FF 0F A6 07 5D 0F DD 0F   "............]..."
: F 20000 20060 0
: D 20000
  <ADDR>                  <  D  A  T  A  >                     < ASCII CODE >
  20000   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20040   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20050   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   "................"
  20060   00 00 FD 00 FA 00 DD 00  DB 00 FD 00 BF 00 AC 00   "................"
  20070   79 00 9F 00 EF 00 D7 00  B4 00 91 00 B1 00 1A 00   "y..............."
  20080   FD 00 FF 00 CE 00 ED 00  CD 00 FF 00 FD 00 BF 00   "................"
  20090   BB 00 B2 00 FF 00 BF 00  EF 00 FD 00 F9 00 89 00   "................"
  200A0   BF 00 DF 00 DF 00 DE 00  7F 00 F7 00 D5 00 FB 00   "................"
  200B0   DF 00 FF 00 BE 00 D9 00  EB 00 FB 00 DF 00 DB 00   "................"
  200C0   F3 00 F5 00 D7 00 F1 00  9F 00 DB 00 D3 00 AD 00   "................"
  200D0   F3 00 FF 00 DF 00 DB 00  BF 00 73 00 D3 00 FF 00   "..........s....."
  200E0   AD 00 BE 00 FF 00 FA 00  FF 00 FD 00 DF 00 BF 00   "................"
  200F0   DD 00 FD 00 9F 00 BD 00  FF 00 A6 00 5D 00 DD 00   "............]..."
: M 20020
  20020   00  ?  FF
  20021   FF  ?  
  20022   00  ?  55
  20023   55  ?  .
: D 20000
  <ADDR>                  <  D  A  T  A  >                     < ASCII CODE >
  20000   00 57 00 57 00 57 00 57  00 17 00 57 00 57 00 57   ".W.W.W.W...W.W.W"
  20010   00 57 00 57 00 57 00 57  00 57 00 57 00 57 00 57   ".W.W.W.W.W.W.W.W"
  20020   FF 57 55 57 00 17 00 57  00 57 00 57 00 57 00 57   ".WUW.W.W.W.W.W.W"
  20030   00 17 00 57 00 57 00 57  00 57 00 57 00 17 00 57   "...W.W.W.W.W...W"
  20040   00 57 00 57 00 17 00 57  00 57 00 57 00 57 00 57   ".W.W...W.W.W.W.W"
  20050   00 57 00 57 00 57 00 57  00 57 00 57 00 17 00 57   ".W.W.W.W.W.W...W"
  20060   00 17 FD 57 FA 57 DD 57  DB 57 FD 57 BF 57 AC 57   "...W.W.W.W.W.W.W"
  20070   79 57 9F 57 EF 57 D7 57  B4 57 91 57 B1 57 1A 57   "yW.W.W.W.W.W.W.W"
  20080   FD 57 FF 57 CE 57 ED 57  CD 57 FF 57 FD 57 BF 57   ".W.W.W.W.W.W.W.W"
  20090   BB 17 B2 57 FF 17 BF 57  EF 57 FD 17 F9 57 89 17   "...W...W.W...W.."
  200A0   BF 57 DF 57 DF 57 DE 57  7F 57 F7 57 D5 57 FB 57   ".W.W.W.W.W.W.W.W"
  200B0   DF 57 FF 57 BE 57 D9 57  EB 57 FB 57 DF 57 DB 57   ".W.W.W.W.W.W.W.W"
  200C0   F3 57 F5 57 D7 57 F1 57  9F 57 DB 57 D3 17 AD 57   ".W.W.W.W.W.W...W"
  200D0   F3 57 FF 57 DF 17 DB 57  BF 57 73 57 D3 57 FF 57   ".W.....W.WsW.W.W"
  200E0   AD 57 BE 57 FF 17 FA 57  FF 57 FD 57 DF 57 BF 57   ".W.W...W.W.W.W.W"
  200F0   DD 57 FD 57 9F 17 BD 57  FF 17 A6 57 5D 57 DD 57   ".W.W...W...W]W.W"
: 
----------------------------------------------------------->

同じような操作を内蔵 RAM について行うと、指定したアドレスの
値がちゃんと書き変わります。
どこが間違っているのか、ハードウェア/ソフトウェアの両方から
追っかけているのですが、まだ解決できません。ハードウェアっぽい
事については、別に質問させて頂きます。

[環境]
増設した SRAM:TC551001CP-85(東芝)
               日立の HM268128 の互換品。秋月で購入。
モニタ       :日立のモニタを Web からダウンロードしてカスタマイズ。
CPU動作モード:モード5


[モニタのカスタマイズの内容]

(a) cmd24
    S フォーマットのチェックをしないように変更。(日立のWebサイトのとおり)

(b) monitor.sub
    間違っているとすれば RAM,STACK のアドレスぐらいだと思うのですが。。
    STACK:モード5のエリア1は H'20000 - H'3FFFF までなので
           領域の最後を設定する、と理解しています
    RAM  :モニタが使う RAM 領域の指定ですが、内蔵 RAM の先頭を
           指定しています。
    USER :増設した SRAM を、モード5でエリア1に割り当てるので
           この値に設定しています。
<------------------------------------------------------------------
INPUT monitor
INPUT cmd01,cmd02,cmd03,cmd04,cmd05,cmd06,cmd07,cmd08,cmd09,cmd10
INPUT cmd11,cmd12,cmd13,cmd14,cmd15,cmd16,cmd17,cmd18,cmd19,cmd20
INPUT cmd21,      cmd23,cmd24,cmd25,      cmd27,cmd28,cmd29,cmd30
INPUT cmd31,cmd32,cmd33,cmd34,cmd35,cmd36,cmd37,cmd38
INPUT cmd26,dmy39
INPUT mod01,mod02,mod03,mod04,mod05,mod06,mod07,mod08,mod09,mod10
INPUT mod11,mod12,mod13,mod14,mod15,mod16,mod17,mod18,mod19,mod20
INPUT mod21,mod22,mod23,mod24,mod25,mod26,mod27,mod28,mod29,mod30
INPUT mod31,mod32,mod33,mod34,mod35,      mod37,mod38,mod39
INPUT advanced
INPUT cpu01,cpu02,cpu03,cpu04
DEFINE  $BRR(0C)
DEFINE  $STACK(03FFFC)
PRINT   MONITOR.MAP
OUTPUT  MONITOR.ABS
START   VECTOR(0),ROM(130),RAM(0FEF10),USER(20000),SCI(0FFFFB8)
EXIT
------------------------------------------------------------------>

(c) monitor.src
<------------------------------------------------------------------
;************************************************************************
;*	H8/300H Monitor Program (Advanced Mode)		Ver. 2.2A	*
;*		Copyright (C) Hitachi, Ltd. 1995			*
;*		Copyright (C) Hitachi Microcomputer System, Ltd. 1995	*
;************************************************************************
		.PROGRAM  INITIALIZE		; Program Name
		.CPU      300HA			; CPU is H8/300H Advanced
		.SECTION  ROM,CODE,ALIGN=2	; ROM Area Section
;************************************************************************
;*	Export Define							*
;************************************************************************
		.EXPORT	_INITIALIZE		; User Initialize Module

ABWCR:		.EQU	H'FFFFEC
ASTCR:		.EQU	H'FFFFED
WCR:		.EQU	H'FFFFEE
WCER:		.EQU	H'FFFFEF
P1_DDR:		.EQU	H'FFFFC0
P2_DDR:		.EQU	H'FFFFC1
P5_DDR:		.EQU	H'FFFFC8
P6_DDR:		.EQU	H'FFFFC9
P8_DDR:		.EQU	H'FFFFCD

;************************************************************************
;*	User Initialize Module						*
;*		Input	ER5 <-- Return Address				*
;*		Output	Nothing						*
;*		Used Stack Area --> 0(0) Byte				*
;************************************************************************
_INITIALIZE:	
		; RAM用初期化 
		MOV.B	#H'FF, R0L
		MOV.B	R0L, @ABWCR		; CS1領域バス幅8ビット(P4:D0-D7)
		MOV.B	#H'FF, R0L
		MOV.B	R0L, @ASTCR		; CS1領域3ステートアクセス
		MOV.B	#H'F0, R0L
		MOV.B	R0L, @WCR		; 0wait

		MOV.B	#H'FF, R0L
		MOV.B	R0L, @P1_DDR		; P1をアドレスバス(A0-A7)
		MOV.B	R0L, @P2_DDR		; P2をアドレスバス(A8-A15)
		MOV.B	R0L, @P5_DDR		; P5をアドレスバス(A16-A19)
		MOV.B	#H87, R0L		; P6をRD/WR を有効にする
		MOV.B	R0L, @P6DDR
		MOV.B	#H'E8, R0L
		MOV.B	R0L, @P8_DDR		; P8-3 CS1出力
		
		JMP	@ER5			; Goto Monitor Program
		.END				;
------------------------------------------------------------------>

どこかおかしいところがあれば、教えていただけると幸いです。
それでは宜しくお願いします。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/  Keiji Matsuzono   k-zono@xxxxxxxxxxxxxxxx                       _/
_/  fingerprint = 8C E9 4B 40 10 86 0C 2E  D3 9B 2E 63 35 59 11 69  _/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/


スレッド概略
[表示中](起点)
 └[1632(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]