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)

コメント

_ elijah ― 2011年08月28日 15時48分38秒

iodefine.hの入れ替えですが、これは旧バージョンをインストールしないと手に入らないのでしょうか?
11.02でMSTP(CMT0)をするとCMTが動かず、iodefine.hをここで公開されているRX62N_blinkのものと入れ替えると動作しました。
今はCMTの割り込みが一度しかこないという症状に悩み中です。
SDRAMのアクセスタイムを測ろうと思っていたのですがCMTの割り込みで詰まっています

_ syslab ― 2011年08月28日 19時12分47秒

>旧バージョンをインストールしないと手に入らないのでしょうか?
私が確認しているのは KPIT GNURX v11.01 の iodefine.h ですが Kpit の releaseNotes によると Maintenance Pack1 for KPIT GNURX v11.02 では修正されているようです。
http://www.kpitgnutools.com/releaseNotes.php?view=RNDET&RN=510

したがって、11.01 の iodefine.h を
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\iodefine\
にコピーするか Maintenance Pack1 for KPIT GNURX v11.02 を新たにインストールするかどちらかだと思います。

CMTについてはまだよく分かっていないのでコメントでき無いのが残念です。

_ elijah ― 2011年08月28日 19時37分31秒

ありがとうございます。
CMTはがんばってみます。
手配線でもSDRAMは動いていそうだとわかっただけでも収穫でした。

_ elijah ― 2011年08月29日 00時11分26秒

MSTP(CMT0)が動かない件は解決しました。
MSTPCRA構造の先頭にパディングunsigned long :4がないだけでした。;

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログのタイトルは?(syslab と記入してください)

コメント:

トラックバック

このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2011/06/29/5936287/tb