FRK-RX62N (15) KPIT GNURX NewDevice 登録 ― 2011年06月23日 21時24分17秒
KPIT GNURX デフォルトのセクション設定ではプロジェクトを作成する毎に修正しなくてはならない。ここらでプロジェクトジェネレータにデバイスの追加又は変更をすることにする。Original は現在の設定、SerialMonitor も使うことを考えると NewSetting の値でちょうどいいかなと思う。
RX62NCQ という名前で新規登録ということにする。
①scapp.det と scppapp.det にデバイス RX62NCQ を追加
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scppapp.det
②RX62N.PGD の名前を RX62NCQ.PGD と変えてコピーする。RX62NCQ.PGD 8行目を以下のように修正
5=vecttbl\rx62ncq.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\RX600\RX62NCQ.PGD
③rx62ncq.dat を作成
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\Hardware\RX600\rx62ncq.dat
④ベクタテーブル rx62n.c に少々変更を加え SerialMonitor で扱いやすくする。ここに示すのは FVECT_SECT の部分だけ、後の部分は変更なし。修正後 rx62ncq.c として保存する。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\VECTTBL\rx62ncq.c
SerialMonitor を使う場合 Debug_RX600_Serial_Monitor を define する。
これでプロジェクトジェネレータを起動した時に新しいデバイスが現れるはずだ。
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.01 Windows Tool Chain (ELF)
Original NewSetting SerialMonitor SectionName 0xFFFFFFA0 0xFFFFFFA0 0x0000FFF8 .fvectors 0xFFFC0000 0xFFFA0000 0x00002000 .text 0x00001808 0x0000F000 0x0000F000 .istack 0x00001708 0x0000EF00 0x0000EF00 .ustack 0x00001000 0x00000400 0x00000400 .data 0x00000000 .rvectors
RX62NCQ という名前で新規登録ということにする。
①scapp.det と scppapp.det にデバイス RX62NCQ を追加
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scppapp.det
②RX62N.PGD の名前を RX62NCQ.PGD と変えてコピーする。RX62NCQ.PGD 8行目を以下のように修正
5=vecttbl\rx62ncq.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\RX600\RX62NCQ.PGD
③rx62ncq.dat を作成
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\Hardware\RX600\rx62ncq.dat
④ベクタテーブル rx62n.c に少々変更を加え SerialMonitor で扱いやすくする。ここに示すのは FVECT_SECT の部分だけ、後の部分は変更なし。修正後 rx62ncq.c として保存する。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\VECTTBL\rx62ncq.c
SerialMonitor を使う場合 Debug_RX600_Serial_Monitor を define する。
これでプロジェクトジェネレータを起動した時に新しいデバイスが現れるはずだ。
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.01 Windows Tool Chain (ELF)
HEW (6) Tools の登録 (2) ― 2011年06月25日 16時34分45秒
以前 HEW に FDT をTools として登録をしていたがどうも使い勝手が悪い。
起動した時に、開いているプロジェクトのコンフィグディレクトリの中にある S-format ファイルを読み込んで欲しい。
そこで FDT のドキュメントを読みながら引数の設定をいろいろ試してみた。ドキュメントも分かりにくいし、マクロがどのように展開されるのかも分かりにくい。
たったこれだけの設定だが結構苦労した。しかし、まだ初期ディレクトリの設定がうまくいかない。
忘れないうちにここまでの所をメモしておこう。
名前:FDT V4.07
コマンド:C:\Program Files\Renesas\FDT4.07\FDT.exe
引数:/DISCRETESTARTUP "SimpleInterfaceMode /r /u "$(CONFIGDIR)\$(PROJECTNAME).mot""
初期ディレクトリ:$(PROJDIR)
参照:Flash Development Toolkit
起動した時に、開いているプロジェクトのコンフィグディレクトリの中にある S-format ファイルを読み込んで欲しい。
そこで FDT のドキュメントを読みながら引数の設定をいろいろ試してみた。ドキュメントも分かりにくいし、マクロがどのように展開されるのかも分かりにくい。
たったこれだけの設定だが結構苦労した。しかし、まだ初期ディレクトリの設定がうまくいかない。
忘れないうちにここまでの所をメモしておこう。
名前:FDT V4.07
コマンド:C:\Program Files\Renesas\FDT4.07\FDT.exe
引数:/DISCRETESTARTUP "SimpleInterfaceMode /r /u "$(CONFIGDIR)\$(PROJECTNAME).mot""
初期ディレクトリ:$(PROJDIR)
参照:Flash Development Toolkit
FRK-RX62N (16) printf (4) KPIT GNURX Newlib ― 2011年06月26日 22時47分58秒
前回の続き 「KPIT GNURX で printf を使う」
副題として、[SYSLAB blog 読者 限定公開 第二弾 GNURX printf の使い方 Newlib 編]
前回同様中身は無いに等しい。 Renesas のサンプルと WINARM のサンプルをコピーするだけだ。
それでは始めよう。
1.KPIT GNURX で新規プロジェクトを作成する。
2.前回作成した hardware_setup.c を新規プロジェクトの中にコピーする。
3.main を新規プロジェクトの中にコピーする。
4.ソースの中の stdint.h をローカルから読み込むようにする。
#include "stdint.h"
もちろん stdint.h はプロジェクトディレクトリにコピーしておく。そうでなければ stdint.h をinclude しないようにして uint32_t などを unsigned int と書き直せばよい。
5.serial_printf.c をプロジェクトにコピーする。 6.syscalls.c をプロジェクトにコピーする。 NEWLIB の Defines を忘れずにね!
これは WinARM の Newlib/StdIO-Interface and LPC ADC example の中にあるファイル。
7.KPIT GNURX [ELF] Toolchain の Library Generator は
Library type が Pre-Built
Select library が Newlib
と設定する。
8.後はコンパイルして書き込むだけ。と言いたいところだが、ここからが大変だ。
RAM の部分のデータを ROM に戻してやらなければならない。
(私の場合)コンパイル後の mot ファイル 0x00000400 から 00000C9B までを Tiny Hexer で Import し、それをそのまま Export する。Export する Address は FFFAA980 。
テキストエディタでコンパイル後の mot ファイルを読み込み 0x00000400 から 00000C9B までを削除する。先ほど Export したテキストを FFFAA980 から貼り付ける。
こうしてできたファイルを FDT で書き込めばよい。
(上記のアドレスはマップファイルと mot ファイルを参照しながら決めてね!)
ふう~
いろいろやったけど他の方法を思いつかなかった。非常に手間がかかる。
ということで前回の Optimized ライブラリ printf でも同じように手動変換しなければならないということだろう。
たまたま動いたということか?
参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
WinARM Newlib/StdIO-Interface and LPC ADC example
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.01 Windows Tool Chain (ELF)
副題として、[SYSLAB blog 読者 限定公開 第二弾 GNURX printf の使い方 Newlib 編]
前回同様中身は無いに等しい。 Renesas のサンプルと WINARM のサンプルをコピーするだけだ。
それでは始めよう。
1.KPIT GNURX で新規プロジェクトを作成する。
2.前回作成した hardware_setup.c を新規プロジェクトの中にコピーする。
3.main を新規プロジェクトの中にコピーする。
4.ソースの中の stdint.h をローカルから読み込むようにする。
#include "stdint.h"
もちろん stdint.h はプロジェクトディレクトリにコピーしておく。そうでなければ stdint.h をinclude しないようにして uint32_t などを unsigned int と書き直せばよい。
5.serial_printf.c をプロジェクトにコピーする。 6.syscalls.c をプロジェクトにコピーする。 NEWLIB の Defines を忘れずにね!
これは WinARM の Newlib/StdIO-Interface and LPC ADC example の中にあるファイル。
7.KPIT GNURX [ELF] Toolchain の Library Generator は
Library type が Pre-Built
Select library が Newlib
と設定する。
8.後はコンパイルして書き込むだけ。と言いたいところだが、ここからが大変だ。
RAM の部分のデータを ROM に戻してやらなければならない。
(私の場合)コンパイル後の mot ファイル 0x00000400 から 00000C9B までを Tiny Hexer で Import し、それをそのまま Export する。Export する Address は FFFAA980 。
テキストエディタでコンパイル後の mot ファイルを読み込み 0x00000400 から 00000C9B までを削除する。先ほど Export したテキストを FFFAA980 から貼り付ける。
こうしてできたファイルを FDT で書き込めばよい。
(上記のアドレスはマップファイルと mot ファイルを参照しながら決めてね!)
ふう~
いろいろやったけど他の方法を思いつかなかった。非常に手間がかかる。
ということで前回の Optimized ライブラリ printf でも同じように手動変換しなければならないということだろう。
たまたま動いたということか?
参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
WinARM Newlib/StdIO-Interface and LPC ADC example
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.01 Windows Tool Chain (ELF)
FRK-RX62N (17) printf (5) KPIT GNURX v1102 Windows Tool Chain (ELF) ― 2011年06月29日 22時41分23秒
あれこれしているうちに KPIT の次のバージョン GNURX v1102 Windows Tool Chain (ELF) がリリースされた。
先日の問題、 ROM 領域のデータが RAM 領域に配置される件。
さっそく新しいバージョンで試してみようと
GNURX v1101 Windows Tool Chain (ELF) をアンインストールし
GNURX v1102 Windows Tool Chain (ELF) をインストールした。
GNURX v1101 で作成したプロジェクトを読み込みビルドするがエラーになる。 あれ!... あれ!
今までどのバージョンも下位に対して互換性があったような気がするが、今回はうまくいってないようだ。
さて、困った。
早く試してみたいので Newlib printf プロジェクトを最初から作り直すことにする。
そして、ビルド。
エラーは出てこない。
S-format ファイルを見てみると ROM にあるべきデータは ROM に配置されている。
修正されているようだ。
FDT で書き込む。
動作は問題ない。
これでよしよし、と言いたいところだが GNURX v1101 Windows Tool Chain (ELF) で何本もプロジェクトを作ってしまったのでこのまま引き下がるわけにはいかない。なんとしても GNURX v1101 を GNURX v1102 にコンバートしたいのだ。プロジェクトファイルを見比べているとパスが途中で途切れている部分がある。ここだと見当をつけて修正してみると...
はい、うまくコンバートできてます。
ファイルは $(PROJECTNAME).hwp 。
その中で
これで printf も一件落着だが手間がかかる。
気になることがもう一つ
今回のバージョン iodefine.h がルネサスと同じものが使ってある。もっとも rx62n だけなので不思議だ。
#pragma bit_order left
はクリアできたのだろうか?
プロジェクトを作ってコンパイルしてみるとエラーになる。
間違って入ってしまったようだ。
という訳で今回のバージョンは、ぜひ導入すべきだ。
ただし iodefine.h (C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\iodefine\rx62n.h) はインストールする前にバックアップを取っておいてインストール後入れ替える必要がある。
参照:KPIT GNU Tools and Support
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.02 Windows Tool Chain (ELF)
先日の問題、 ROM 領域のデータが RAM 領域に配置される件。
さっそく新しいバージョンで試してみようと
GNURX v1101 Windows Tool Chain (ELF) をアンインストールし
GNURX v1102 Windows Tool Chain (ELF) をインストールした。
GNURX v1101 で作成したプロジェクトを読み込みビルドするがエラーになる。 あれ!... あれ!
今までどのバージョンも下位に対して互換性があったような気がするが、今回はうまくいってないようだ。
さて、困った。
早く試してみたいので Newlib printf プロジェクトを最初から作り直すことにする。
そして、ビルド。
エラーは出てこない。
S-format ファイルを見てみると ROM にあるべきデータは ROM に配置されている。
修正されているようだ。
FDT で書き込む。
動作は問題ない。
これでよしよし、と言いたいところだが GNURX v1101 Windows Tool Chain (ELF) で何本もプロジェクトを作ってしまったのでこのまま引き下がるわけにはいかない。なんとしても GNURX v1101 を GNURX v1102 にコンバートしたいのだ。プロジェクトファイルを見比べているとパスが途中で途切れている部分がある。ここだと見当をつけて修正してみると...
はい、うまくコンバートできてます。
ファイルは $(PROJECTNAME).hwp 。
その中で
"$(TCINSTALL)\rx-elf\lib\gcc\rx-elf\^" "$(TCINSTALL)\rx-elf\lib\gcc\rx-elf\\optlibinc^"となっている部分を
"$(TCINSTALL)\rx-elf\lib\gcc\rx-elf\4.5-GNURX_v11.02^" "$(TCINSTALL)\rx-elf\lib\gcc\rx-elf\4.5-GNURX_v11.02\optlibinc^"このように修正する。
これで printf も一件落着だが手間がかかる。
気になることがもう一つ
今回のバージョン iodefine.h がルネサスと同じものが使ってある。もっとも rx62n だけなので不思議だ。
#pragma bit_order left
はクリアできたのだろうか?
プロジェクトを作ってコンパイルしてみるとエラーになる。
間違って入ってしまったようだ。
という訳で今回のバージョンは、ぜひ導入すべきだ。
ただし iodefine.h (C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\iodefine\rx62n.h) はインストールする前にバックアップを取っておいてインストール後入れ替える必要がある。
参照:KPIT GNU Tools and Support
環境:High-performance Embedded Workshop Upgrade 4.09.00
KPIT GNURX v11.02 Windows Tool Chain (ELF)
最近のコメント