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

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パターン製作など
ログインしてコメントを投稿する