R5F1006Aを使用して、UARTとI2Cのマスター機能を持ち合わせたプロジェクトを作成しております。
ビルドを実行すると下記エラーが出ます。
(E) E0562321 E0562321:Section ".monitor2" overlaps section ".textf" RX2.mtpj
ビルド時に生成された、mapファイルの中身は下記になります。
対策方法をお教え下さい。
Renesas Optimizing Linker (W3.06.00 ) 07-Oct-2024 14:30:57
*** Options ***
-subcommand=DefaultBuild\RX2.clnk-Input=DefaultBuild\cstart.obj-Input=DefaultBuild\stkinit.obj-Input=DefaultBuild\r_main.obj-Input=DefaultBuild\r_systeminit.obj-Input=DefaultBuild\r_cg_cgc.obj-Input=DefaultBuild\r_cg_cgc_user.obj-Input=DefaultBuild\r_cg_port.obj-Input=DefaultBuild\r_cg_port_user.obj-Input=DefaultBuild\r_cg_serial.obj-Input=DefaultBuild\r_cg_serial_user.obj-Input=DefaultBuild\tsp_common.obj-Input=DefaultBuild\tsp_exe_set_interval.obj-Input=DefaultBuild\tsp_main.obj-Input=DefaultBuild\r_cg_timer.obj-Input=DefaultBuild\r_cg_timer_user.obj-Input=DefaultBuild\tsp_timer.obj-Input=DefaultBuild\tsp_exe_set_mode.obj-Input=DefaultBuild\tsp_exe_start_transmitter.obj-Input=DefaultBuild\tsp_exe_measurement.obj-Input=DefaultBuild\tsp_exe_get_status.obj-Input=DefaultBuild\tsp_exe_set_clock.obj-Input=DefaultBuild\tsp_sp_loglevel.obj-Input=DefaultBuild\tsp_int_meas_check.obj-Input=DefaultBuild\tsp_int_meas_collect.obj-SECURITY_ID=00000000000000000000-DEVICE=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F1006A.DVF-DEBug-NOCOmpress-NOOPtimize-OUtput=DefaultBuild\RX2.abs-OCDBG=84-DEBUG_MONITOR=3D00-3FFF-USER_OPT_BYTE=EFF3E8-LISt=DefaultBuild\RX2.map-SHow=SYmbol,Total_size-STARt=.text,.RLIB,.SLIB,.textf,.constf,.data,.sdata,.init_array,.const/00800,.dataR,.bss/FF700,.sdataR,.sbss/FFE20-ROm=.data=.dataR-ROm=.sdata=.sdataR-NOMessage-MEMory=High-Total_size-NOLOgo-LIBrary=DefaultBuild\RX2.lib-end
*** Error information ***
E0562321:Section ".monitor2" overlaps section ".textf"
*** 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.text 00000800 00000a0f 210 1.RLIB 00000a10 00000a10 0 1.SLIB 00000a10 000018dd ece 1.textf 000018de 00003f69 268c 1.constf 00003f6a 00003f6a 0 2.data 00003f6a 00003fa7 3e 2.sdata 00003fa8 00003fa8 0 2.init_array 00003fa8 00003fa8 0 2.const 00003fa8 000042f3 34c 2.monitor2 00003d00 00003fff 300 1.dataR 000ff700 000ff73d 3e 2.bss 000ff73e 000ffd69 62c 2.sdataR 000ffe20 000ffe20 0 2.sbss 000ffe20 000ffe20 0 2
*** Total Section Size ***
RAMDATA SECTION: 0000066a Byte(s)ROMDATA SECTION: 00000722 Byte(s)PROGRAM SECTION: 0000376a Byte(s)
プロジェクトを作成し直し、出来る限りROM、RAMの削減をおこないましたが、まだ下記エラーが出ます。
F0563100:Section address overflow out of range : ".textf"
CC-RLのリンク設定のDefault値は、
リンク・オプション>セクション>セクションを自動的に配置する:はい
となっております。
mapファイルは下記の様になっています。
Renesas Optimizing Linker (W3.06.00 ) 07-Oct-2024 15:45:32
-subcommand=DefaultBuild\RL78.clnk-Input=DefaultBuild\cstart.obj-Input=DefaultBuild\stkinit.obj-Input=DefaultBuild\r_main.obj-Input=DefaultBuild\r_systeminit.obj-Input=DefaultBuild\r_cg_cgc.obj-Input=DefaultBuild\r_cg_cgc_user.obj-Input=DefaultBuild\r_cg_port.obj-Input=DefaultBuild\r_cg_port_user.obj-Input=DefaultBuild\r_cg_serial.obj-Input=DefaultBuild\r_cg_serial_user.obj-Input=DefaultBuild\r_cg_timer.obj-Input=DefaultBuild\r_cg_timer_user.obj-Input=DefaultBuild\tsp_common.obj-Input=DefaultBuild\tsp_main.obj-Input=DefaultBuild\tsp_timer.obj-Input=DefaultBuild\tsp_exe_get_status.obj-Input=DefaultBuild\tsp_exe_measurement.obj-Input=DefaultBuild\tsp_exe_set_clock.obj-Input=DefaultBuild\tsp_exe_set_interval.obj-Input=DefaultBuild\tsp_exe_set_mode.obj-Input=DefaultBuild\tsp_exe_start_transmitter.obj-Input=DefaultBuild\tsp_int_meas_check.obj-Input=DefaultBuild\tsp_int_meas_collect.obj-Input=DefaultBuild\tsp_sp_loglevel.obj-SECURITY_ID=00000000000000000000-DEVICE=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F1006A.DVF-DEBug-NOCOmpress-NOOPtimize-OUtput=DefaultBuild\RL78.abs-OCDBG=84-DEBUG_MONITOR=3D00-3FFF-USER_OPT_BYTE=EFF3E8-LISt=DefaultBuild\RL78.map-SHow=SYmbol,Total_size-AUTO_SECTION_LAYOUT-ROm=.data=.dataR-ROm=.sdata=.sdataR-NOMessage-MEMory=High-NOLOgo-LIBrary=DefaultBuild\RL78.lib-end
W0561120:Section address is not assigned to ".textf"F0563100:Section address overflow out of range : ".textf"
SECTION START END SIZE ALIGN.vect 00000000 0000007f 80 0.constf 00000080 00000080 0 2.init_array 00000080 00000080 0 2.sdata 00000080 00000080 0 2.data 00000082 000000bf 3e 2.option_byte 000000c0 000000c3 4 1.RLIB 000000c0 000000c0 0 1.security_id 000000c4 000000cd a 1.monitor1 000000ce 000000d7 a 1.text 000000d8 000002e5 20e 1.SLIB 000002e6 000011a8 ec3 1.const 00002000 0000231e 31f 2.monitor2 00003d00 00003fff 300 1.bss 000ff700 000ffa83 384 2.dataR 000ffa84 000ffac1 3e 2.sbss 000ffe20 000ffe20 0 2.sdataR 000ffe20 000ffe20 0 2.textf 000ffe20 00102037 2218 1
RAMDATA SECTION: 000003c2 Byte(s)ROMDATA SECTION: 000006f5 Byte(s)PROGRAM SECTION: 000032e9 Byte(s)
対応方法をお教え下さい。
チョコです。
以下の.textfのアドレスがおかしいですね。
ffe20はRAM領域で.sbssのはずなので、ここにtextfを割り当てているのが意味不明です。
また、以下の.constはミラー領域で、これがあるので、text領域が分割され、コードフラッシュに入らなくなったのではないでしょうか。
リンクの順番を見直すか、ミラー領域を使わないようにする必要があるのではないでしょうか
以上
ちょこ様、tf様 回答ありがとうございます。
そもそもプログラム領域が足りなくなったようで、R5F1006Eに載せ替えて、プロジェクトを作成しなおしたらエラーが出なくなりました。