sanguisorbaのアイコン画像
sanguisorba 2021年09月19日作成 (2022年01月22日更新) © MIT
セットアップや使用方法 セットアップや使用方法 閲覧数 1473
sanguisorba 2021年09月19日作成 (2022年01月22日更新) © MIT セットアップや使用方法 セットアップや使用方法 閲覧数 1473

1Mbit SRAM搭載AKI-H8-USB用モニタデバッガの作り方 (H8/3048, 3052)

くれぐれも自己責任にてご活用ください。

特徴

AKI-H8-USB (終売品)にはSRAM用パターンがあります。
今回は1MbitのSRAMを設置して、SRAM上でプログラムを実行できるデバッガを作成しました。
3048/3052ともにモード6で動作します。
アドレス空間は220000 - 23FFFF まで使えます。

用意したもの

ハード

ソフト

ソース変更点

基本的な方針はこちらと同じです。同じ要領でプロジェクトを開いてください。

H8/3052F外部RAM対応モード6用モニタデバッガ生成メモ
http://www7a.biglobe.ne.jp/~kanikani/h83052mon6/h83052mon6.html

違う点を説明します。

monitor.src

まず、monitor.cを削除して、かわりにmonitor.srcを読み込みます。

monitor.srcについては既に先駆者がおられます。いずれかを選んでください。(ウェイト処理が異なります)

AKI-H8のコツ -SRAM増設編-
http://home.k03.itscom.net/kazutaka/computer/akih8-1.html

こちらのウェブページでは8ビットバス幅によるmonitor.srcが公開されています。
2.2Aとなっていますが3.0でも改変なしで使えます。

H8/3052Fネットワークボード向けデバックモニタ
https://www.vector.co.jp/soft/other/h8/se298945.html

ネットワークボードとありますがAKI-H8-USBでも使えます。

ただし、monitor.subのパラメータが異なるのでコンパイル済のモトローラSコードは使えません。

3052用ですが、monitor.cと違ってmonitor.srcで3048/3052を指定する記述はないので3048でも無改変で使えます。

最後から4行目のコメントアウト部を外して有効にするかはお好みで(私は外して有効にしました)

mov.b	#h'ff,r0l			;CS1は0WAITにする為にWSCを禁止
mov.b	r0l,@WCER			;何だけれどWAIT端子を固定しないと

↑この部分がコメントアウトされているので;を取る

monitor.sub

monitor.subは次のように記述してください

H8/3052F

INPUT      ADVANCED,MONITOR,LOWER
LIST       MONITOR.MAP
SHOW       SYMBOL
OUTPUT     MONITOR.MOT
FORM       STYPE
CHANGE     INFORMATION=1320
NOOPTIMIZE
LIBRARY    ADVANCED,3052
LIBRARY    MONITOR
DEFINE     $BRR=13
DEFINE     $STACK=FFFF00
START      VECTOR/0,ROM,C/100,RAM/FFDF10,USER/220000,SCI/FFFFB8

H8/3048

INPUT      ADVANCED,MONITOR,LOWER
LIST       MONITOR.MAP
SHOW       SYMBOL
OUTPUT     MONITOR.MOT
FORM       STYPE
CHANGE     INFORMATION=1320
NOOPTIMIZE
LIBRARY    ADVANCED,3048
LIBRARY    MONITOR
DEFINE     $BRR=0C
DEFINE     $STACK=FFFF00
START      VECTOR/0,ROM,C/100,RAM/FFEF10,USER/220000,SCI/FFFFB8

ビルドする

LOWER.Cをプロジェクトに追加するのを忘れずに!

こんな感じになっていればビルドできると思います

あとはH8WriteTurboやFDTやF-ZTATなどの書き込みツールで転送すれば完了です。

サンプルプログラム

Htermの使い方は前回紹介しました
https://elchika.com/article/d2d4ea76-a4b2-4549-b174-d6862252da93/

AKI-H8-USB用のLチカプログラムを書いてみました。これをアブソリュートロードモジュールにして転送・実行できれば動作確認は終了です。

ウェイト処理の時間は前回と同様、割込みタイマーを使っているわけではないのでデバッガ依存です。

;----------------------------------	
; AKI-H8-USB用Lチカプログラム デバッガ用
;----------------------------------	
;
;-----CPUの指定-----	
		.CPU 300HA
;----- アドレス指定-----
		.SECTION	P,CODE,LOCATE=H'220000
;-----シンボル-----
PBDR	.EQU		H'FFFFD6		;ポートBデータレジスタ
LED1 	.BEQU		0,PBDR			;LED1(PB-0)
LED2	.BEQU		1,PBDR			;LED2(PB-1)
LED3	.BEQU		2,PBDR			;LED3(PB-2)
LED4	.BEQU		3,PBDR			;LED4(PB-3)
;-----I/Oの初期設定-----	
INIT:	MOV.B		#H'FF,R0L		;出力設定
		MOV.B		R0L,@H'FFFFD4	;ポートB
;-----MAIN-----	
		BSET		LED1			;LED1の出力をON
		BSET		LED2			;LED2の出力をON
		BSET		LED3			;LED3の出力をON
		BCLR		LED4			;LED4の出力をOFF
MAIN:	BNOT		LED4			;LED4の出力を反転
		BNOT		LED1			;LED1の出力を反転
		JSR			@WAIT
		BNOT		LED1			;LED1の出力を反転
		BNOT		LED2			;LED2の出力を反転
		JSR			@WAIT
		BNOT		LED2			;LED2の出力を反転
		BNOT		LED3			;LED3の出力を反転
		JSR			@WAIT
		BNOT		LED3			;LED3の出力を反転
		BNOT		LED4			;LED4の出力を反転
		JSR			@WAIT
		JMP			@MAIN			;無限ループ
;-----MAIN終了-----
;-----ウェイト-----
WAIT:	MOV.L		#D'500000,ER6	;ウェイトサブルーチン
AAA:	DEC.L		#1,ER6
		NOP
		BNE			AAA
		RTS
;
		.END
sanguisorbaのアイコン画像
マイコンを使わない低レベルな電子工作とかPCBパターン製作など
ログインしてコメントを投稿する