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 (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 (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 (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))

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

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


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

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秒だから、まずまずといったところか。


tiny-hexer バイナリエディタ2010年03月11日 23時34分16秒

Tiny Hexer
バイナリエディタは Quick Be や Stirling をよく使っていた。
しかし、hex や S フォーマットのファイルは扱うことができなかった。
その度に objcopy.exe を起動して変換していた。


ここで紹介する tiny-hexer は Intel hex format や Motorola S-record をインポートしてくれる。
もちろん、エクスポートも...


それでは objcopy.exe の出番はなくなったのかというと...
そうでもない。


一部の Motorola S-record は読み込むことができない。
もっとも、script file の変更で何とかなるのかもしれないが...
万能というわけではないけど、これから重宝することになりそうだ。


参照:tiny-hexer(mpth_18.exe)

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))

Sourcery G++ Lite 4.4-45 for SuperH GNU/Linux2010年03月17日 22時38分03秒

CodeSourcery の web site を見ていて SuperH GNU/Linux があることに気がついた。
ARM は知っていたがそれ以外に次のようなものがある。


ColdFire 、Intel 、MIPS 、Power 、SuperH


知らなくても困りはしないのだが...
メモしておこう。


参照:CodeSourcery