こんにちは。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 1const_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 1const_mqttDemoAuth_f 0003c47c 0003f3ee 2f73 2const_mqttDemoHelper_f 00040000 00043f2e 3f2f 2const_mqttDemoConn_f 00043f30 0004952e 55ff 2const_coreMqtt_f 00050000 00057b1a 7b1b 2const_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_LOGGINGLIBRARY_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 1const_mqttDemoHelper_f 000000d8 00001085 fae 2const_mqttDemoConn_f 00001086 00001113 8e 2const_mqttDemoAuth_f 00001114 000011bb a8 2const_coreMqttSerializer_f 000011bc 000029fd 1842 2.text 00002b08 00002d9a 293 1.const 00003000 00003000 0 2.constf 00003000 000065b9 35ba 2const_coreMqtt_f 000065ba 0000898b 23d2 2const_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_LOGGINGLIBRARY_LOG_LEVEL=LOG_NONENDEBUG ← 今回更に追加
もともと
今回
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...
SECTION START END SIZE ALIGN.vect 00000000 0000007f 80 0const_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 2const_mqttDemoConn_f 000017fa 00001887 8e 2const_mqttDemoAuth_f 00001888 0000192f a8 2const_coreMqtt_f 00001930 000019ff d0 2const_coreMqttSerializer_f 00001a00 00001aef f0 2const_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)の画面コピーです。