こんにちは。NoMaYです。別スレッドのFreeRTOSのRTOSDemoプログラムを作っていて気付いたのですが、e2 studioのバグだと思われる現象に遭遇しました。e2 studioのプロジェクトのプロパティでCC-RXの設定を以下の画面コピーのように設定した場合に、CC-RXでは期待した通りにワーニングメッセージが表示されますが、e2 studioのエディタ上では条件コンパイル文によりコードが除外されていることになっています。一応、e2 studioのプロジェクトのプロパティで「Renesas Toolchain Builtin Language Settings」を確認してみたところ、実際に、e2 studioが組み込みマクロを間違えていることも確認出来ました。現象再現プロジェクトのファイル一式(投稿用に作成し直して大幅に簡素化したものです)e2studio_compiler_issues_20200714.zip現象再現プロジェクトのコード
void main(void){#if ( __TFU == 1 ) int __tfu = 1;#endif#if ( __DBL8 == 1 ) int __dbl8 = 1;#endif}
以下、画面コピーです。CC-RXのワーニングメッセージが出ている行がe2 studioのエディタ上でグレー表示になってしまっているe2 studioのプロジェクトのプロパティのCC-RXの設定e2 studioのプロジェクトのプロパティの「Renesas Toolchain Builtin Language Settings」の内容が間違っている(具体的には、__DBL8の定義が無く(代わりに__DBL4の定義がある)、__TFUの定義が無い、です。)[参考リンク]e2 studio バグリストe²studio 7.8 Known Issues ListList generated on 30/03/2020 15:14:31www2.renesas.eu/_custom/software/ree_eclipse/e2studio7/docs/releasenotes/7.8.0/openissues.htme²studio 2020-04 Known Issues ListList generated on 14/04/2020 15:14:31www2.renesas.eu/_custom/software/ree_eclipse/e2studio8/docs/releasenotes/2020_04/openissues.htm
こんにちは。NoMaYです。e2 studioのプロジェクトの「Renesas Toolchain Builtin Language Settings」の__DBL4と__DBL8の定義ですが、RXv3コア倍精度浮動小数点演算ユニットを内蔵していない品種(例えばRX130とか)でも、以下の画面コピーの通り、間違っていますね。現象再現プロジェクトのファイル一式e2studio_compiler_issues_20201009.zip以下、画面コピーです。(e2 studio v2020-10です。ツールバーは大幅にカスタマイズしています。)(1) [double型およびlong duble型をfloat型への変更を抑止する]にチェックマーク無しの場合チェックマーク無し ⇒ float型への変更を抑止しない ⇒ float型へ変更する ⇒ __DBL4=1となる筈しかし__DBL8=1となっているCC-RXのワーニングメッセージが出ている行がe2 studioのエディタ上でグレー表示になってしまっている(2) [double型およびlong duble型をfloat型への変更を抑止する]にチェックマーク有りの場合チェックマーク有り ⇒ float型への変更を抑止する ⇒ float型へ変更しない ⇒ __DBL8=1となる筈しかし__DBL4=1となっているCC-RXのワーニングメッセージが出ている行がe2 studioのエディタ上でグレー表示になってしまっている以下、CC-RXのヘルプの画面コピーです。[参考リンク]e2 studio バグリストe²studio 7.8 Known Issues ListList generated on 30/03/2020 15:14:31www2.renesas.eu/_custom/software/ree_eclipse/e2studio7/docs/releasenotes/7.8.0/openissues.htme²studio 2020-10 Known Issues ListList generated on 05/10/2020 12:32:59www2.renesas.eu/_custom/software/ree_eclipse/e2studio8/docs/releasenotes/2020_10/openissues.htm
NoMaY さん
コンパイラはLanguage Settingsに関係なくオプションの通りに動きます。一方、e² studioのエディタはLanguage Settingsにあるシンボルで判断します。もう大体分かってきたと思いますが、コンパイラがおかしいのではなく、Language Settingsの動きがオプションに付いて行けていないのが原因です。Language Settingsには任意のシンボルが自分で追加できるので、それで無理やり合わせてしまうのが手っ取り早いかもしれません。
こんにちは。NoMaYです。ちょっと好奇心から、e2 studio v2020-10でRX13TのGNURXプロジェクトを作成したのですが、RX13Tは以下の製品ページの通りRXv1コア+FPU搭載ですけど、以下の画面コピーの通りFPU命令を生成しないオプション設定になっていました。これは不適切ですね。(以下の画面コピーのオプション設定を弄ることでFPU命令を生成させることが出来るようにはなるようです。)RX13T 製品ページwww.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx/rx100/rx13t.html「RX13Tグループマイコンは、RXファミリで実績のあるRXv1コア 32MHz動作、FPU(Floating Point Unit、浮動小数点演算処理装置)、インバータ制御タイマ(MTU3)や12ビットA/Dコンバータなどを搭載し、1チップでブラシレスDCモータの高効率なインバータ制御を実現します。既存製品との互換性も高く、ハードウェア/ソフトウェアの設計資産の流用が容易です。加えて、32pin/48pinの少ピンパッケージをラインアップし、PGA(プログラマブルゲインアンプ)やコンパレータ、データフラッシュ、HOCOなどの機能を内蔵しており、お客様の制御基板面積縮小/BOM低減に貢献します。 」e2 studio 画面コピー[関連リンク]ちょっとお高いと言われるマルツさんでも\200で5V対応FPU入り32ビットCPUが買えるんですね、、、(ROM/RAM少ないですけど) (でも、競合メーカのものはもっと安いのかな?)RX13TグループRXファミリマイコン(32ピン)【R5F513T3ADFJ#30】www.marutsu.co.jp/pc/i/1632546/
ほや です。
RX13TでFPUオプションが有効にならない件、-fpu オプションを直接ぶっこんで見たらGNURXだとエラーになってしまいますね。認知済だそうなのでそのうち直ると思いますが。CC-RXだと選択できるので問題なさそうに見えます(追記:listingを見たらデフォルトのままでも-fpu付きでコンパイルされていました)。
ほやさん、こんにちは。NoMaYです。> (追記:listingを見たらデフォルトのままでも-fpu付きでコンパイルされていました)。私が試すと以下のコードで以下のリストファイルになっていてFPU命令は生成されてませんでしたよ。
float f1, f2, f3;int main(void) { f3 = f1 + f2; while(1) { } return 0;}
float f1, f2, f3;
int main(void) {
f3 = f1 + f2;
while(1) {
}
return 0;
35:../src/TestGNURX_RX13T.c **** int main(void) { 14 .loc 1 35 16 15 0000 7E AA push.l r10 16 .LCFI0: 17 0002 EF 0A mov.L r0, r10 18 .LCFI1: 36:../src/TestGNURX_RX13T.c **** 37:../src/TestGNURX_RX13T.c **** f3 = f1 + f2; 19 .loc 1 37 13 20 0004 FB 52 00 00 00 00 mov.L #_f1, r5 21 000a EC 54 mov.L [r5], r4 22 000c FB 52 00 00 00 00 mov.L #_f2, r5 23 0012 EC 53 mov.L [r5], r3 24 0014 EF 32 mov.L r3, r2 25 0016 EF 41 mov.L r4, r1 26 0018 05 00 00 00 bsr ___addsf3 27 .LVL0: 28 001c EF 15 mov.L r1, r5 29 001e EF 54 mov.L r5, r4 30 .loc 1 37 8 31 0020 FB 52 00 00 00 00 mov.L #_f3, r5 32 0026 E3 54 mov.L r4, [r5] 33 .L2: 38:../src/TestGNURX_RX13T.c **** while(1) { 34 .loc 1 38 10 discriminator 1 35 0028 2E 00 bra .L2 3 36 .LFE0:
私は、-fpuを直接指定するのではなく、以下の設定にしたらFPU命令を生成させることが出来ました。(あぁ、「デフォルトのまま」というのは以下の画面コピーのCPU Typeの日本語モードでの表記かな。)e2 studio 画面コピー
35:../src/TestGNURX_RX13T.c **** int main(void) { 13 .loc 1 35 16 14 0000 7E AA push.l r10 15 .LCFI0: 16 0002 EF 0A mov.L r0, r10 17 .LCFI1: 36:../src/TestGNURX_RX13T.c **** 37:../src/TestGNURX_RX13T.c **** f3 = f1 + f2; 18 .loc 1 37 13 19 0004 FB 52 00 00 00 00 mov.L #_f1, r5 20 000a EC 54 mov.L [r5], r4 21 000c FB 52 00 00 00 00 mov.L #_f2, r5 22 0012 EC 55 mov.L [r5], r5 23 0014 FC 8B 54 fadd r5, r4 24 .loc 1 37 8 25 0017 FB 52 00 00 00 00 mov.L #_f3, r5 26 001d E3 54 mov.L r4, [r5] 27 .L2: 38:../src/TestGNURX_RX13T.c **** while(1) { 28 .loc 1 38 10 discriminator 1 29 001f 2E 00 bra .L2 30 .LFE0:
ほやさん、こんにちは。NoMaYです。> > CC-RXだと選択できるので問題なさそうに見えます(追記:listingを見たらデフォルトのままでも-fpu付きでコンパイルされていました)。> これはCC-RXについて、です。そういうことでしたか。
こんにちは。NoMaYです。e2 studio 2022-04+CC-RL V1.11の組み合わせで下記エラーが発生するとの報告がありました。詳細は以下のスレッドに投稿されています。また、私の手元で再現させたプロジェクトを以下に添付します。issue_ccrl_odd_reloc_20220627.zip
E0562332:Relocation value is odd number : ".\generate\cstart.obj"-".text"-"0000005f"
e2studio + CC-RL+コード生成ツールの組み合わせで出る E0562332 エラーについてjapan.renesasrulz.com/cafe_rene/f/forum18/8267/e2studio-cc-rl-e0562332
こんにちは。NoMaYです。e2 studio 2022-07からCC-RHでのビルドが出来るようになったのですが、コンパイルオプションの設定項目に MISRA C Rule Check の項目がありません。CC-RXの設定項目にもCC-RLの設定項目にも存在して、CC-RHのオプションとしても存在します。素朴に、なぜ未実装のままリリースしたのかなぁ?、、、と不思議に思ってしまいます。以下、e2 studioのCC-RX/CC-RL/CC-RHの各場合とCC-RHのヘルプとCS+ for CCのCC-RHの場合の画面コピーです。e2 studio+CC-RXの場合:あるe2 studio+CC-RLの場合:あるe2 studio+CC-RHの場合:無い、、、CC-RHのヘルプCS+ for CC+CC-RHの場合:ある (ちなみにCS+ for CCの64bit版?はRH850専用です)
こんにちは。NoMaYです。e2 studio 2022-07からCC-RHでのビルドが出来るようになったのですが、前の投稿の件の他にも、CC-RXの場合にもCC-RLの場合にも設定項目があるのにCC-RHの場合には無い、というのがあります。以下の画面コピーのとおり、Stack Analysis ビュー(CS+ for CCでのCall Walkerに相当する)の為の設定項目がそうなってしまっていました。これも、素朴に、なぜ未実装のままリリースしたのかなぁ?、、、と不思議に思ってしまいます。以下、e2 studioのCC-RX/CC-RL/CC-RHの各場合とCS+ for CCのCC-RHでのCall Walkerの画面コピーです。e2 studio+CC-RXの場合:あるe2 studio+CC-RLの場合:あるe2 studio+CC-RHの場合:無い、、、(参) CS+ for CC+CC-RHでのCall Walker