CC-RL V1.12について

こんにちは。NoMaYです。

アセンブラソースでも以下のメッセージが表示されますけれども、これは消せないのかな?、、、

W0511187:CC-RL V1のオプション"-Odefault"の評価期間の有効期限が切れています。暗黙に"-Olite"指定に変更します。引き続き"-Odefault"を利用したい場合は製品の購入を検討ください。明示的に"-Olite"か"-Onothing"を指定することで、この警告は消えます。

以下、CS+の画面コピーです。


 

  • こんにちは。NoMaYです。

    リンクサイズ制限が無くなったということで、以下のデモプログラムをビルドしてみました。ちょっと脱線しますけれども、ビルド出来たものの、何というかROMDATAセクションのサイズが異様に大きいように思いましたので、後で調べてみようかと思います。

    RL78/G23-128p Fast Prototyping Board で FreeRTOS を用いてAmazon Web Services に接続する方法
    https://www.renesas.com/jp/ja/document/apn/rl78g23-connecting-amazon-web-services-using-freertos-rl78g23-128p-fast-prototyping-board-rev101

    *** Total Section Size ***

    RAMDATA SECTION:  00009772 Byte(s)
    ROMDATA SECTION:  00026393 Byte(s)
    PROGRAM SECTION:  0001e265 Byte(s)

     
    以下、e2 studioの画面コピーです。




    [追記]

    MAPファイルのセクション一覧は以下の通りでした。何というかconst_○○○セクションのサイズが腑に落ちないです、、、

    *** Mapping List ***

    SECTION                            START      END         SIZE   ALIGN
    .vect
                                      00000000  0000007f        80   0
    .option_byte
                                      000000c0  000000c3         4   1
    .security_id
                                      000000c4  000000cd         a   1
    .monitor1
                                      000000ce  000000d7         a   1
    .data
                                      000000d8  000005d7       500   2
    .sdata
                                      000005d8  000005d8         0   2
    .RLIB
                                      000005d8  000010e8       b11   1
    .text
                                      000010e9  0000137b       293   1
    const_coreMqttState_f
                                      0000137e  00002a8b      170e   2
    .const
                                      00003000  00003000         0   2
    .constf
                                      00003000  0000bab1      8ab2   2
    .textf
                                      0000bab2  00025eb9     1a408   1
    .SLIB
                                      00025eba  00028f72      30b9   1
    const_mqttDemoAuth_f
                                      0003c47c  0003f3ee      2f73   2
    const_mqttDemoHelper_f
                                      00040000  00043f2e      3f2f   2
    const_mqttDemoConn_f
                                      00043f30  0004952e      55ff   2
    const_coreMqtt_f
                                      00050000  00057b1a      7b1b   2
    const_coreMqttSerializer_f
                                      00057b1c  0005f59a      7a7f   2
    .monitor2
                                      000bfe00  000bffff       200   1
    .dataR
                                      000f3f00  000f43ff       500   2
    .bss
                                      000f4400  000fd671      9272   2
    .sdataR
                                      000ffe20  000ffe20         0   2
    .sbss
                                      000ffe20  000ffe20         0   2

     
    [追記]

    調べ始めて暫くして気付いたのですけれども、アサーション絡みで、以下の画面コピーの通り、アサーションのprintf書式文字列とか関数名文字列/条件式文字列/ソースファイル名フルパス文字列とか入ってますね。(入念さが災いしてしまった?)

    以下、VSCodeのバイナリファイル編集拡張機能(Hex Editor)の画面コピーです。


     

  • こんにちは。NoMaYです。

    GitHubのルネサスさんのアカウントに以下のリポジトリが出来ていましたね。出来たばかりでREADME.mdが流用元のもののままでしたけれども、それで、あっ?、っと思ったのですけれども、シングルチップマイコンのアプリケーションとしては異様に大きなconstセクションがアサーション絡みで生成されているのではなかろうか?という話は、ひょっとしたら流用元のものでも同じ話があるのではなかろうか?という気がしたのでした。

    新規
    github.com/renesas/iot-reference-rl78

    流用元
    github.com/renesas/iot-reference-rx

    [追記]

    上記のリポジトリのソースには、今回のソースに含まれていた以下のような記述が追加されていませんでしたけれども、もしかしたらリンク時に何かあるかも知れません。(何かあるかも知れませんし、何も無いかも知れません。)

    例)

    libraries/coreMQTT/source/core_mqtt_state.c

    #include <assert.h>
    #include <string.h>
    #include "core_mqtt_state.h"

    #pragma section const const_coreMqttState

     
    github.com/renesas/iot-reference-rl78/blob/7a1620e/Middleware/FreeRTOS/coreMQTT/source/core_mqtt_state.c#L29-L31

    #include <assert.h>
    #include <string.h>
    #include "core_mqtt_state.h"

     

  • こんにちは。NoMaYです。

    くだんのROMDATAセクションのサイズが異様に大きいように思われる件ですけれども、コンパイルオプションで以下を定義して、リンクオプションで手動セクション配置をやめて自動セクションレイアウト機能に任せることにして、ということをしたところ、セクションサイズと(モニタ領域を除いた)終端アドレスは以下のようになりました。

    コンパイルオプションで定義を追加した (かつ、リンクオプションで自動セクションレイアウト機能に任せることにした)

    DISABLE_LOGGING
    LIBRARY_LOG_LEVEL=LOG_NONE

     
    変更前

    RAMDATA SECTION:  00009772 Byte(s)
    ROMDATA SECTION:  00026393 Byte(s)  →  156,563 バイト(10進数)
    PROGRAM SECTION:  0001e265 Byte(s)

    ...

    const_coreMqttSerializer_f
                                      00057b1c  0005f59a      7a7f   2
    .monitor2
                                      000bfe00  000bffff       200   1

    ...

     
    変更後

    RAMDATA SECTION:  000096a4 Byte(s)
    ROMDATA SECTION:  00009393 Byte(s)  →  37,779 バイト(10進数)
    PROGRAM SECTION:  00014ed9 Byte(s)

    ...

    .SLIB
                                      0001bbd8  0001ec77      30a0   1
    .monitor2
                                      000bfe00  000bffff       200   1
    ...

     
    [追記]

    変更後のMAPファイルのセクション一覧は以下の通りでした。

    SECTION                            START      END         SIZE   ALIGN
    .vect
                                      00000000  0000007f        80   0
    .sdata
                                      00000080  00000080         0   2
    .option_byte
                                      000000c0  000000c3         4   1
    .security_id
                                      000000c4  000000cd         a   1
    .monitor1
                                      000000ce  000000d7         a   1
    const_mqttDemoHelper_f
                                      000000d8  00001085       fae   2
    const_mqttDemoConn_f
                                      00001086  00001113        8e   2
    const_mqttDemoAuth_f
                                      00001114  000011bb        a8   2
    const_coreMqttSerializer_f
                                      000011bc  000029fd      1842   2
    .text
                                      00002b08  00002d9a       293   1
    .const
                                      00003000  00003000         0   2
    .constf
                                      00003000  000065b9      35ba   2
    const_coreMqtt_f
                                      000065ba  0000898b      23d2   2
    const_coreMqttState_f
                                      0000898c  000093a2       a17   2
    .data
                                      00009b32  00009f63       432   2
    .textf
                                      0000a032  0001b0c6     11095   1
    .RLIB
                                      0001b0c7  0001bbd7       b11   1
    .SLIB
                                      0001bbd8  0001ec77      30a0   1
    .monitor2
                                      000bfe00  000bffff       200   1
    .bss
                                      000f3f00  000fd171      9272   2
    .dataR
                                      000fd172  000fd5a3       432   2
    .sbss
                                      000ffe20  000ffe20         0   2
    .sdataR
                                      000ffe20  000ffe20         0   2

     
    [追記]

    まだ、以下の画面コピーの通り、アサーションのprintf書式文字列とか条件式文字列/ソースファイル名フルパス文字列とか残っていますね。(関数名文字列も画面の範囲外のどこかに残っていそうです。)

    以下、VSCodeのバイナリファイル編集拡張機能(Hex Editor)の画面コピーです。


     

  • こんにちは。NoMaYです。

    くだんのROMDATAセクションのサイズが異様に大きいように思われる件ですけれども、前の投稿のものに加えて更にもう1つコンパイルオプションの定義を増やしたところ、セクションサイズと(モニタ領域を除いた)終端アドレスは以下のようになりました。

    コンパイルオプションで定義を追加した (かつ、リンクオプションで自動セクションレイアウト機能に任せることにした)

    DISABLE_LOGGING
    LIBRARY_LOG_LEVEL=LOG_NONE
    NDEBUG  ←  今回更に追加

     
    もともと

    RAMDATA SECTION:  00009772 Byte(s)
    ROMDATA SECTION:  00026393 Byte(s)  →  156,563 バイト(10進数)
    PROGRAM SECTION:  0001e265 Byte(s)

    ...

    const_coreMqttSerializer_f
                                      00057b1c  0005f59a      7a7f   2
    .monitor2
                                      000bfe00  000bffff       200   1

    ...

     
    今回

    RAMDATA SECTION:  000096a4 Byte(s)
    ROMDATA SECTION:  000021ac Byte(s)  →  8,620 バイト(10進数)
    PROGRAM SECTION:  00012748 Byte(s)

    ...

    .SLIB
                                      0001241b  000154b4      309a   1
    .monitor2
                                      000bfe00  000bffff       200   1
    ...

     
    [追記]

    変更後のMAPファイルのセクション一覧は以下の通りでした。

    SECTION                            START      END         SIZE   ALIGN
    .vect
                                      00000000  0000007f        80   0
    const_mqttDemoHelper_f
                                      00000080  00000082         3   2
    .sdata
                                      00000080  00000080         0   2
    .option_byte
                                      000000c0  000000c3         4   1
    .security_id
                                      000000c4  000000cd         a   1
    .monitor1
                                      000000ce  000000d7         a   1
    .constf
                                      000000d8  000017f9      1722   2
    const_mqttDemoConn_f
                                      000017fa  00001887        8e   2
    const_mqttDemoAuth_f
                                      00001888  0000192f        a8   2
    const_coreMqtt_f
                                      00001930  000019ff        d0   2
    const_coreMqttSerializer_f
                                      00001a00  00001aef        f0   2
    const_coreMqttState_f
                                      00001af0  00001bb6        c7   2
    .data
                                      000021c8  000025f9       432   2
    .text
                                      000026c8  0000295a       293   1
    .const
                                      00003000  00003000         0   2
    .textf
                                      00003000  00011909      e90a   1
    .RLIB
                                      0001190a  0001241a       b11   1
    .SLIB
                                      0001241b  000154b4      309a   1
    .monitor2
                                      000bfe00  000bffff       200   1
    .bss
                                      000f3f00  000fd171      9272   2
    .dataR
                                      000fd172  000fd5a3       432   2
    .sbss
                                      000ffe20  000ffe20         0   2
    .sdataR
                                      000ffe20  000ffe20         0   2

     
    [追記]

    まだ、以下の画面コピーの通り、(ログでもアサーションでも無い)普通のデモメッセージと思われる文字列は残っていますけれども、了解出来る範囲でしょうかね。

    以下、VSCodeのバイナリファイル編集拡張機能(Hex Editor)の画面コピーです。