1Mbit SRAM搭載AKI-H8-USB用モニタデバッガの作り方 (H8/3048, 3052)
くれぐれも自己責任にてご活用ください。
特徴
AKI-H8-USB (終売品)にはSRAM用パターンがあります。
今回は1MbitのSRAMを設置して、SRAM上でプログラムを実行できるデバッガを作成しました。
3048/3052ともにモード6で動作します。
アドレス空間は220000 - 23FFFF まで使えます。
用意したもの
ハード
- AKI-H8/3052F USB開発キット (終売品・公式HPから削除済)
- USB-シリアル変換
- SRAM 1Mb M68AF127B
https://akizukidenshi.com/catalog/g/gI-01083/
ソフト
- 300hhew3.exe (HEW3/HEW4用モニタデバッガ本体 リンク切れ)
300hhew2.exe (HEW2用モニタデバッガ本体)でもコンパイルできますが、コード内容は一部異なっており、また出来上がるROMのサイズが300hhew3よりも大きいです。
http://web.archive.org/web/20050208165856/http://www.renesas.com/jpn/support/seminar/sample/index.html - HEW 4 (評価版 要ユーザー登録)
https://www.renesas.com/jp/ja/software-tool/cc-compiler-package-h8sx-h8s-h8-family - HtermとHtermが動く環境(Windows 10ではうまく動作しませんでした)
https://www.renesas.com/jp/ja/document/swr/1403891?r=721346
ソース変更点
基本的な方針はこちらと同じです。同じ要領でプロジェクトを開いてください。
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
さんが
2021/09/19
に
編集
をしました。
(メッセージ: 初版)
-
sanguisorba
さんが
2021/09/28
に
編集
をしました。
(メッセージ: 微修正)
-
sanguisorba
さんが
2022/01/22
に
編集
をしました。
ログインしてコメントを投稿する