TRZ1002H (7) デバックモニタ (2)2010年03月15日 22時56分26秒

例のデバックモニタ、リセット後実行で始まらないのが気に入らない。


そこで、H8-SX基板 HEWからLEDチカチカをデバック をもう一度見直す。
すると以下のようなことが書いてある。


従来のデバックモニタでは、割り込みやリセットベクターは仮想ベクター方式を取っていたので、
ベクターテーブル自体もセクションの設定し直しが必要でしたが、このH8/SXでは一部のRAM領域を
ハードウエア的に0番地にマッピングするRAMエミュレーションを使用していますので、
__entry(vect=0) void PowerON_Reset(void)
とか、
__interrupt(vect=64) void INT_IRQ0(void)
のvect=??を解除する必要はありません。
Kpit の場合はベクターの再配置が必要なのかもしれない。
でも、どうすればいいの?


引用:H8-SX基板 HEWからLEDチカチカをデバック


環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))

SH/H8 用フラッシュライタ (13)2010年03月09日 22時00分07秒

Flash Writer 5.0 Beta2
「いずれ試してみたい」と言いながら、早速試してみた。


BestTechnology の Flash Writer の中で書き込みが高速だったのは fw 2.6 だった。
そこでまず 2.6 と比べてみることにする。


測定条件
CPU基板    AKI-SH2/7045F
ファイルサイズ mot file 176,166byte
シリアルポート AKI/USB-RS232
時間計測はストップウォッチ
		BaudRate[bps]
fw	2.6	19200	43.70秒
fw	5.0	19200	45.34秒
やはり、fw2.6 が早い。


今回の fw5.0 は BaudRate が細かく設定できるようになっている。
そこで設定できる上限で再度テストしてみよう。


fw2.6 は 19200 が上限だった。
一方 fw5.0 は 28800 までいける。
		BaudRate[bps]
fw	2.6	19200	43.70秒
fw	5.0	28800	32.76秒
結果は、若干早くなった。
今のところ最速の h8flush が 25.29秒だから、まずまずといったところか。


SH/H8 用フラッシュライタ (12)2010年03月06日 12時28分13秒

Flash Writer 5.0 Beta2
BestTechnology の Flash Writer が 5.0 Beta2 になっていた。


書き込みサポートが増えて ルネサスH8/3069FとSH7125F も対応となっている。
また、転送速度を数百kbpsまで上げる事も可能となっているようなので いずれ試してみたい。

TRZ1002H (7) デバックモニタ (1)2010年03月05日 23時55分28秒

CPU address error
Under Power 研究所にデバックモニタのことが紹介してあった。


知らなかった!!


もうひとつ、某誌付録基板に搭載されるマイコンも気になる。
sh7262 になるらしい。
だとするとまた高額になりそうだ。


さて、とりあえず KPIT GNUH8 v10.01 Windows Tool Chain (ELF) と組み合わせて使ってみよう。
ただし、全てのセクションをRAMに配置しなければならない。
まず、作成したプロジェクトのセクション情報を見てみる。
.vects	0x0000 0000
.text	0x0000 0800
.data	0X00FF 2000
.stack	0X00FF C000
単純にアドレスをずらしたのでよいのだろうか?
.vects	0X00FF 2000
.text	0X00FF 2800
.data	0X00FF 8000
.stack	0X00FF C000
まず、この設定でやってみよう。


手順はドキュメントに書いてあるとおりに進めてゆく。
1.シリアルモニタを HEW に登録
2.モニタ本体を書き込む
3.新規プロジェクトを作成しセクション情報を変更する
4.デバッグの設定をする
5.ターゲット(モニタ本体)へ接続する
ここまでは問題なくできた。
HEWのメニューにデバッグ関係のアイコンも表示されている。


でも、ここからどうしてよいのかわからない。
リセット後実行すると CPU address error になる。
0x00FF2000 からのRAM とは関係ないアドレスにとんでいってしまう。


何か手順にもれがあるのだろうか?


いつものとおり途方にくれる状態だ。


ためしに HEW + Renesas H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V.7.00 でもやってみた。
問題なく動く。



RAM の中に入るサイズでなければならないが手軽なので使いやすい。


最後にもう一度 HEW + Kpit の組み合わせでやってみた。
今度は強制的にプログラムカウンタをスタートアドレス (0xFF2DCC) にセットして実行してみる。
動くじゃないですか!!
ブレイクポイントでは停止するし、変数の値も監視できる。
こちらも何かの設定次第でうまくいきそうだ。


環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))

TRZ1002H (6) H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V.7.00 Release 002010年03月04日 22時40分43秒

Renesas H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V.7.00
Renesas のコンパイラも同様にして H8SX/1655 を追加してみよう。


ベースにする CPU は 1658 がいいだろう。
修正が必要なのは iodefine ぐらいかな?
新規作成
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\Hardware\SX\1655.dat
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\support\SX\1655a.pgd
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\hwsetup\1655.c
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\intprg\1655.c
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\intprg\1655.src
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\iodefine\1655G.H
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\vect\1655.inc
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\H8_7_0\Generate\vecttbl\1655a.src

デバイス名追加
C:\Program Files\Renesas\Hew\System\Pg\Renesas\H8\PG.ini
C:\Program Files\Renesas\Hew\Tools\Renesas\DebugComp\Platform\Simulator\Sd8sx_PG.dat



 




環境: (HEW Version 4.06.00.047) + (Renesas 【無償評価版】H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V.7.00 Release 00)

TRZ1002H (5) KPIT GNUH8 v1001(2)2010年03月03日 21時59分52秒

KPIT GNUH8 v1001 Windows Tool Chain (ELF)
KPIT GNUH8 v1001 は H8SX/1655 に対応していない。
対応していないというのはプロジェクトジェネレータの話だ。
この機会に対応できるようにしてみよう。


準備するのは
iodefine.h	作成	Definition of I/O Register
inthandler.c	作成	Interrupt Handler
inthandler.h	作成	Interrupt Handler Declarations
vects.c		作成	Vector Table
1655a.pgd	作成	プロジェクトジェネレータ情報
scapp.det	追加	c リンカースクリプト情報
scppapp.det	追加	c++ リンカースクリプト情報
1655.dat	作成	ハードウェア情報
H8SX/1653 をベースにして変更して追加した。
やってみると新しいデバイスの追加はそんなに難しいものではない。


それぞれファイルを追加・変更する場所は
iodefine.h	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Generate\iodefine\1655G.H
inthandler.c	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Generate\intprg\1655.c
inthandler.h	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Generate\vect\1655.h
vects.c		C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Generate\vecttbl\1655.c
1655a.pgd	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Support_2\SX\1655a.pgd
scapp.det	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Support_2\scapp.det
scppapp.det	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\GNUH8_Info\Support_2\scppapp.det
1655.dat	C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUH8-ELF\Hardware\SX\1655.dat



環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))

TRZ1002H (4) PROG_02_USBCOM (1)2010年03月02日 21時54分20秒

仮想 COM ポート
付録CD の中にサンプルがあるので HEW + KPIT GNUH8 v1001 の環境で動かしてみることにする。
サンプルのディレクトリは PROG_02_USBCOM 。
おそらく USB ポートを仮想 COM ポートとして使うものだろう。


●KPIT GNUH8 v1001 でコンパイルしてみる。
  エラーも出ないし、問題ないようだ。


●KPIT GNUH8 v1001 でコンパイルしたものを書き込んでみる。
  LED は点滅しているが仮想 COM ポートは応答しない。
  デバイスドライバを要求してきたので、まったく動いていないわけではないようだ。


●CD のサンプルディレクトリの mot ファイルを書き込んでみる。
  LED が点滅しているし、仮想 COM ポートの応答もある。


あらあら KPIT GNUH8 v1001 でコンパイルしたものは、まだどこかに不具合があるらしい。
スタックが足りないような気がするが今のところどこを触ればよいのかわからない。


環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))

TRZ1002H (3) LED Blink2010年02月27日 20時32分10秒

HEW + KPIT GNUH8 v10.01 Windows Tool Chain (ELF)
前回作成したプロジェクトにトラ技増刊号の main() を貼り付けた。
void main(void)
{
    unsigned long i;
    volatile unsigned long count;
	
    PM.DDR = PM.DDR | 0x08;
    PM.DR.BIT.B3 = 0;
    
    count = 0;
	
    while(1)
    {
        for (i = 0; i < 500000; i++);

        PM.DR.BIT.B3 = ~PM.DR.BIT.B3;
        
        count++;
    }
}

さらに、探しても見つからなかった H8SX/1658 Group Include File をトラ技のプロジェクトから拝借した。


そして、書き込み。


LED が点滅している。
特に問題はないようだ。


作成したプロジェクトをおいておこう。
h8sx1655プロジェクト


環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))

TRZ1002H (2) KPIT GNUH8 v1001(1)2010年02月21日 15時00分46秒

KPIT GNU Tools GNUH8 v10.01
基板が手に入る前に開発環境を整えてみよう。


まず、KPIT GNU Tools GNUH8 v10.01


次に、H8SX,H8S,H8ファミリ用I/Oレジスタ定義ファイル サンプルコードを手に入れる。
日付は2007年4月20日のままだ。
当然 H8SX/1655 は含まれていない。


あらあら困った。
さて...


ルネサスのホームページで H8SX/1655 を見る。
[H8SX/1658Rグループからアナログ機能(ADC、DAC)を強化した製品です。]
と書いてある。
1658 のヘッダーを探せばいいわけだがこれもない。


今度は H8SX/1658 を見てみる。
[H8SX/1653グループとアップワードピンコンパチ性を維持しながら ADCの2ユニット他、TPU, PPGの2ユニットなど周辺機能をより増強しています。]
と書いてある。
最も類似しているのが H8SX/1653 ということらしい。


というわけで H8SX/1653 で新規プロジェクトを作ってみる。

TRZ1002H (1)2010年02月12日 22時40分19秒

TRZ1002H
H8SX/1655 が実装された基板 TRZ1002H が \3990
少し高いが手に入れてみよう。


開発環境は KPIT GNU Tools の GNUH8 が使えるはずだ。
今のバージョンは v0903 だがもうそろそろ v1001 が出る頃だ。
RX シリーズは既に v1001 になっている。


しかし H8SX/1655 といえば、もう既に終わった CPU なので
今さら、という気がしないでもない。