(toppers-users 1074) Re: tinet h8 3068f_lan の AKI_MONITOR

Katsuhiro Amano amano @ toyotamacs.co.jp
2003年 8月 21日 (木) 08:11:03 JST


トヨタマックス 天野です。

アライブビジョンソフトウエア 高橋さんこんにちは 

| 少しあつかましい内容で、固有のターゲットに依存する内容で申し訳ありません
が、tinet akih8_3068f_lanでの AKI_MONITORは
| どのようなものをお使いになられたかご教授いただけないでしょうか?

自分はRedBoot使ってます。TFTP使ってロードできます。
Tera Termのマクロを使用して実行までクリックだけなので気に入ってます。
シリアルよりロード時間が早い?nservのサンプルで10秒弱です。
http://sourceforge.jp/projects/ecos-h8/
でもGDBのデバックができていません。調査中です。詳しい人教えてください。
使用する場合は下記変更を加えてください。

| たしか、
| 秋月モニタは、3048f用と3067用のみ販売しているが、3069f_lan用は
| なかったと思います。

そうなんですよね。
Google等で検索すると日立のモニタを改造等している人が多いみたいですね。
チャレンジしてないのでよく分かりませんが。

日立のモニタでGDBデバックはどうなんでしょう?
使い易い?ロード早い?シリアル2系統必要?作るのは簡単?
感想をお待ちしています。

H8のSTUBはどうなんでしょう?シリアル2系統必要なんですよね。
ログ吐き用とSTUB用。コネクタ付けるのがめんどくさい?コネクタが無いとか。

やっぱり日立モニタが人気なんでしょうか?

--------------------------------------------------
ロードして実行まで一発で
モニタとしてRedBootを使用します。
RedBoot対応 
http://sourceforge.jp/projects/ecos-h8/
リリース版を"h8write -3069 -f20 redboot.mot" で焼く。

下記ツールをダウンロードしてインストール(Winユーザー)
TFTPサーバーforWin32
http://www.vector.co.jp/soft/win95/net/se174412.html
Tera Term Pro
http://www.sakurachan.org/soft/teraterm-j/

TFTPサーバーのフォルダ指定をjsp.Sが生成される場所に指定
Tera Term Proをインストールした場所にマクロファイル(下記)を作成
ttpmacro.exe へのショートカットを作成して
右クリのプロパティ-リンク先でakiboot.ttlを追加
"C:\Program Files\TTERMPRO\ttpmacro.exe" akiboot.ttl

下記はakiboot.ttlのサンプル
; Sample macro for Tera Term
;環境設定ファイルをロードする場合
;connect '/F=redboot.ini'
;デフォルト設定でロードする場合
connect ''
;改行コードを送ってプロンプトがでるのを待つ
sendln
UsernamePrompt = 'RedBoot>'
;IPアドレスは環境によって変更してください。-l akiボードのIP -h TFTPサーバー
のIP
ipset = 'ip_address -l 192.168.0.12 -h 192.168.0.10'
load = 'load -b 0x400000 jsp.S'
go = 'go 0x400000'
; ip設定
wait   UsernamePrompt
sendln ipset
; load
wait   UsernamePrompt
sendln load
; go
wait   UsernamePrompt
sendln go
; OK, boot complete.

REDBOOTに対応するために下記修正を追加します。

Makefileの変更
#
#  環境に依存するコンパイルオプションの定義
#
ifeq ($(GDB_STUB),true)
    ENV_CDEFS = -DGDB_STUB
else
ifeq ($(PARTNER_J),true)
    ENV_CDEFS = -DPARTNER_J
else
ifeq ($(REDBOOT),true)
    ENV_CDEFS = -DREDBOOT
endif
endif
endif

Makefile.configの変更
#
#  実行環境の定義
#
#AKI_MONITOR = true
REDBOOT = true

#
#  リンカスクリプトの定義
#

ifeq ($(AKI_MONITOR),true)
    LDSCRIPT = $(CPU)/$(SYS)/debug.ld
else
ifeq ($(REDBOOT),true)
    LDSCRIPT = $(CPU)/$(SYS)/debug.ld
else
    LDSCRIPT = $(CPU)/$(SYS)/release.ld
endif
endif

cpu_config.c 追加
/*
 *  ベクタテーブルの初期化(for RedBoot)
 */
#ifdef REDBOOT
#define VECTOR_TABLE_ADDR  0x00fffd20
#define JMP_OPECODE   0x5a000000
extern void vectors(void);

void vector_table_copy(void)
{
 unsigned int n = 0x100/sizeof(unsigned int);  /* ベクタテーブルサイズ */
 unsigned int *o = (unsigned int *)VECTOR_TABLE_ADDR; /* ベクタテーブルコ
ピー先 */
 unsigned int *i = (unsigned int *)vectors;  /* ベクタテーブルコピー元 */

    while (n -- > 0)
        *o ++ = JMP_OPECODE | (*i ++);  /* jmp命令の付加 */

}
#endif /* of #ifdef REDBOOT */