TRZ1002H (8) PROG_02_USBCOM (2)2010年03月22日 23時25分54秒

New Project
前回、付録CD の中のサンプルを HEW + KPIT GNUH8 v1001 で動かそうとして失敗した。
すっきりしないのでもう一度挑戦だ。
今回は、しっかりメモを取りながら進めよう。


1.hew のプロジェクトジェネレータから h8sx1655 のプロジェクトを作成する。
  Select Options:Make integers 32bits wide にチェックを入れる。
  Select library:Newlib にチェックを入れる。
  Library type:Pre-Built にチェックを入れる。
2.プロジェクトジェネレータで自動的にできたソースを全て削除する。
ソースを全て削除
3.CD のサンプルプロジェクト PROG_02_USBCOM の中のソースをコピーする
  PROG_02_USBCOM\src
  PROG_02_USBCOM\src_api
  PROG_02_USBCOM\src_sys
  PROG_02_USBCOM\src_usb
サンプルプロジェクトの中のソースをコピー
4.作成した Project にソースを追加する。
Project にソースを追加
5.C/C++ Category:Source - Include file directories を設定する。
  $(PROJDIR)\
  $(PROJDIR)\src_api
  $(PROJDIR)\src_sys
  $(PROJDIR)\src_usb
Include file directories
6.Link/Library Category:Other - User defined options:
  -e _start を -e _EXC_RESET に変更
User defined options:
7.start.S の89行を変更
  mov.l #_stack_user_end, er7 を
  mov.l #_stack, er7 に変更
stack


これで終了。
前回も同じことをしたと思っているのだけど...


・ビルド
・fdt で書き込み
・reset
  LED が点滅している。(ここまでは同じ)
・ターミナルを接続し key 入力
  文字列が表示される。


今回はうまくいった。
ほかのプロジェクトもおそらく同じ手順でうまくいくだろう。


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

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

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

SH2 SH7085 (6) Simulator (1)2009年06月07日 20時25分19秒

Simulator
KPIT GNU Tools で作成したオブジェクトを Simulator にかけてみた。
手続きが面倒だが手順はwebサイトに書いてあるので問題はない。


HEW2デバッガーにてプロジェクトを実行,デバッグする


しかし、積極的に使いたいとは思わない。
この環境だと printf の方が私には適している。
その代わりフラッシュには何十回(何百回?)も書き込むことになる。

KPIT GNU Tools (11) Linker Options2009年02月24日 22時27分52秒

Linker Options
KPIT GNU Tools v0901 になって output format の選択はどのようになったのだろう。


Default と Both (Default and S-Record) の選択はできる。
v0601 の時のように $(PROJECTNAME).hwp は修正しなくてよい。


しかし、ihex だとか binary の選択はできない。



C:\Program Files\Renesas\Hew\Tools\KPIT Cummins\GNUSH-ELF\v0901\GnuOptions.ini の [LINKER] 設定を


DESC=Default||Both (Default and S-Record)||HEX||Binary
ACT=no option||--oformat=srec||--oformat=ihex||--oformat=binary


にすればいけそうな気もする。(メニューにも出てくる)
でも、だめだ


bat ファイルで xx-elf-objcopy.exe を実行するか、ビルドフェーズを新規作成するしかないのか?


あまりスマートではないが、この方法でもいけるようだ
Linker Options の Other User defined options: に
-o "$(CONFIGDIR)\$(PROJECTNAME).bin" --oformat=binary
を指定すればよい。
もちろん HEX format は
-o "$(CONFIGDIR)\$(PROJECTNAME).hex" --oformat=ihex


Ride7 のようにスクリプトファイルで変更できればいいのだけれど...

KPIT GNU Tools (10) Project Generator22009年02月18日 21時31分53秒

Project Generator Settings
KPIT GNU Tools v0901 を使い始めて
最初にコンパイルした時


C:\WorkSpace\111\111\Debug\start.o: In function `exit_k':
C:\WorkSpace\111\111/start.asm:101: undefined reference to `exit'

こんなエラーが出た。
使い方がよく分からず、プロジェクトを作成する時
ライブラリセッティングで
stdio.h と stdlib.h のチェックを外していた。
これが原因で必要なものがリンクされなかったらしい。
デフォルトでは両方ともチェックが入っている。


Debug でコンパイルする場合は少なくとも
stdlib.h のチェックだけは入れないといけないようだ。


そのほかテキストハイライトも問題ない。
しかし、後から math や ctype ライブラリを使いたくなったときはどうすればいいんだ?


やはり libc と libm をリンクしないといけないのか?

KPIT GNU Tools (9) Project Generator12009年02月09日 22時10分41秒

GNUSHv0901
KPIT GNU Tools v0901 を少し使ってみよう。
プロジェクトジェネレータでプロジェクトを適当に作成してみる。
ターゲットは SH7085 にしよう。


コンパイルする
いきなりエラーだ。


exit が見つからないらしい
Debug から Release に変更するとエラーは消えた。


今のところ原因が分からないから Release で使おう。

HEW (5) SYNTAX COLOURING CATEGORIES2008年12月13日 20時50分22秒

SYNTAX COLOURING CATEGORIES
ウイルスのせいで再インストールとなった HEW
今回も IDE 内蔵エディタで keywords 色表示ができなかった。


そこで前回と同様
C:\Program Files\Renesas\Hew\System\Ts\KPIT GNUH8-ELF\SyntaxHighlightingFile.dbs
を編集しようと思ったがファイルが見つからない。


場所が移動してしまったようだ。
C:\Documents and Settings\xxxxxx\Local Settings\Application Data\Renesas\HEW\hew_001\Syntax\KPIT GNUSH-ELF\SyntaxHighlightingFile.dbs
こんなところにあった。


このファイルの
[SYNTAX_COLOURING_CATEGORIES] という項目に
以下を追加すればよい。





まず
HEW 4.00.00 をインストール
HEW 4.00.03 にバージョンアップ
HEW 4.03.00 にバージョンアップ
HEW 4.05.00 にバージョンアップ
最終は Renesas AutoUpdate で 4.05.00.059
(いきなり HEW 4.05.00 をインストールすると FDT 4.0 が一緒にインストールされてしまうから。それは困る。)


コンパイラのバージョンは


KPIT GNUSH [ELF] v0601 Windows Tool Chain
KPIT GNUH8 [ELF] v0601 Windows Tool Chain
KPIT GNUM16CM32C [ELF] v0601 Windows Tool Chain


こんなことやってるのは私だけだろうか?
それともインストールのやり方が間違っているのだろうか?

HEW (4’) リンカー・アウトプットファイル2008年12月12日 22時29分31秒

Linker Output format
HEWでリンカー・アウトプットファイルを変更する方法・・・その3



KPIT GNUSH [ELF] v0601 の例
GnuOptions.ini の最後に次のような記述がある。



[LINKER]
DESC=Default||S-Record
ACT=no option||--oformat=srec



これを書き換える。



[LINKER]
DESC=Default||S-Record||Binary||ihex
ACT=no option||--oformat=srec||--oformat=binary||--oformat=ihex



ここでは Binary と ihex を追加してみた。
GnuOptions.ini は以下の場所にある。
C:\Program Files\Renesas\Hew\Tools\KPIT Cummins\GNUSH-ELF\v0601\GnuOptions.ini



しかし、アウトプットファイルを変更しても拡張子は mot のままだ。
なぜなら、プロジェクトジェネレータがバイナリ埋め込みで値を持っているから...



もっともこの部分を変更する必要はめったにないのだが...



KPIT GNUSH [ELF] v0601 Windows Tool Chain
KPIT GNUH8 [ELF] v0601 Windows Tool Chain
KPIT GNUM16CM32C [ELF] v0601 Windows Tool Chain
HEW のバージョンは 4.05.00.059

HEW (4) リンカー・アウトプットファイル2008年12月12日 22時29分30秒

Linker Output format
HEWでリンカー・アウトプットファイルを誤って Default
に設定してしまった時、元の S-Record に戻そうと思っても
戻らない。もちろんメニューは S-Record になっているが...



右のスクリーンがそれだ。



"$(CONFIGDIR)\$(PROJECTNAME).mot" となっている。



この部分は



"$(CONFIGDIR)\$(PROJECTNAME).x"



でなければならない。



変更するためには
プロジェクトディレクトリの (PROJECTNAME).hwp を
テキストエディタで編集する。



項目 [OPTIONS_Debug] 又は [OPTIONS_Release] の



[S|OUTFILE|$(CONFIGDIR)\$(PROJECTNAME).mot] を
[S|OUTFILE|$(CONFIGDIR)\$(PROJECTNAME).x] に



これで完了。



もっとも、新しい KPIT GNU Tools では問題ないのかもしれない。



コンパイラのバージョンは


KPIT GNUSH [ELF] v0601 Windows Tool Chain
KPIT GNUH8 [ELF] v0601 Windows Tool Chain
KPIT GNUM16CM32C [ELF] v0601 Windows Tool Chain



HEW のバージョンは 4.05.00.059