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 。
その中で
"$(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)