TRZ1002H (4) PROG_02_USBCOM (1) ― 2010年03月02日 21時54分20秒
付録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))
サンプルのディレクトリは 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 は H8SX/1655 に対応していない。
対応していないというのはプロジェクトジェネレータの話だ。
この機会に対応できるようにしてみよう。
準備するのは
やってみると新しいデバイスの追加はそんなに難しいものではない。
それぞれファイルを追加・変更する場所は
環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))
対応していないというのはプロジェクトジェネレータの話だ。
この機会に対応できるようにしてみよう。
準備するのは
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 00 ― 2010年03月04日 22時40分43秒
Renesas のコンパイラも同様にして H8SX/1655 を追加してみよう。
ベースにする CPU は 1658 がいいだろう。
修正が必要なのは iodefine ぐらいかな?
環境: (HEW Version 4.06.00.047) + (Renesas 【無償評価版】H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V.7.00 Release 00)
ベースにする 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秒
Under Power 研究所にデバックモニタのことが紹介してあった。
知らなかった!!
もうひとつ、某誌付録基板に搭載されるマイコンも気になる。
sh7262 になるらしい。
だとするとまた高額になりそうだ。
さて、とりあえず KPIT GNUH8 v10.01 Windows Tool Chain (ELF) と組み合わせて使ってみよう。
ただし、全てのセクションをRAMに配置しなければならない。
まず、作成したプロジェクトのセクション情報を見てみる。
手順はドキュメントに書いてあるとおりに進めてゆく。
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))
知らなかった!!
もうひとつ、某誌付録基板に搭載されるマイコンも気になる。
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秒
BestTechnology の Flash Writer が 5.0 Beta2 になっていた。
書き込みサポートが増えて ルネサスH8/3069FとSH7125F も対応となっている。
また、転送速度を数百kbpsまで上げる事も可能となっているようなので いずれ試してみたい。
書き込みサポートが増えて ルネサスH8/3069FとSH7125F も対応となっている。
また、転送速度を数百kbpsまで上げる事も可能となっているようなので いずれ試してみたい。
SH/H8 用フラッシュライタ (13) ― 2010年03月09日 22時00分07秒
「いずれ試してみたい」と言いながら、早速試してみた。
BestTechnology の Flash Writer の中で書き込みが高速だったのは fw 2.6 だった。
そこでまず 2.6 と比べてみることにする。
測定条件
CPU基板 AKI-SH2/7045F
ファイルサイズ mot file 176,166byte
シリアルポート AKI/USB-RS232
時間計測はストップウォッチ
今回の fw5.0 は BaudRate が細かく設定できるようになっている。
そこで設定できる上限で再度テストしてみよう。
fw2.6 は 19200 が上限だった。
一方 fw5.0 は 28800 までいける。
今のところ最速の h8flush が 25.29秒だから、まずまずといったところか。
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秒
バイナリエディタは 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)
しかし、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基板 HEWからLEDチカチカをデバック
環境: (HEW Version 4.06.00.047) + (KPIT GNUH8 v1001 Windows Tool Chain (ELF))
そこで、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))
Building Bare-Metal ARM Systems with GNU ― 2010年03月17日 01時59分18秒
こんなのがあったのでメモしておこう。
Building Bare-Metal ARM Systems with GNU Part 1 - Getting Started
Building Bare-Metal ARM Systems with GNU Part 2
Building Bare-Metal ARM Systems with GNU Part 3
Building Bare-Metal ARM Systems with GNU Part 4
Building Bare-Metal ARM Systems with GNU Part 5
Building Bare-Metal ARM Systems with GNU Part 6
Building Bare-Metal ARM Systems with GNU Part 7
Building Bare-Metal ARM Systems with GNU Part 8
Building Bare-Metal ARM Systems with GNU Part 9
Building Bare-Metal ARM Systems with GNU Part 10 - Test Strategies
参照:Embedded.com
Building Bare-Metal ARM Systems with GNU Part 1 - Getting Started
Building Bare-Metal ARM Systems with GNU Part 2
Building Bare-Metal ARM Systems with GNU Part 3
Building Bare-Metal ARM Systems with GNU Part 4
Building Bare-Metal ARM Systems with GNU Part 5
Building Bare-Metal ARM Systems with GNU Part 6
Building Bare-Metal ARM Systems with GNU Part 7
Building Bare-Metal ARM Systems with GNU Part 8
Building Bare-Metal ARM Systems with GNU Part 9
Building Bare-Metal ARM Systems with GNU Part 10 - Test Strategies
参照:Embedded.com
Sourcery G++ Lite 4.4-45 for SuperH GNU/Linux ― 2010年03月17日 22時38分03秒
CodeSourcery の web site を見ていて SuperH GNU/Linux があることに気がついた。
ARM は知っていたがそれ以外に次のようなものがある。
ColdFire 、Intel 、MIPS 、Power 、SuperH
知らなくても困りはしないのだが...
メモしておこう。
参照:CodeSourcery
ARM は知っていたがそれ以外に次のようなものがある。
ColdFire 、Intel 、MIPS 、Power 、SuperH
知らなくても困りはしないのだが...
メモしておこう。
参照:CodeSourcery
最近のコメント