シェルティさん、こんにちは。NoMaYです。別スレッドのFreeRTOSのRTOSDemoプログラムを作っていて気付いたのですが、掲題の件、以下の結果となっていて、CC-RXでなぜ効き目が弱いのか、シェルティさん経由で、CC-RX開発チームに調べて頂くことは出来ないでしょうか?(プログラムの構造上、FullDemoとSimpleBlinkyDemoの2種類のDemoを切り替えられるようになっていて、SimpleBlinkyDemoに切り替えた場合には沢山の未使用の変数/関数が生じるようになっているものです。) なお、使用したCC-RXはV3.02です。CC-RX版のプロジェクトのファイル一式 (e2 studioにzipファイルを直接インポートすることは不可。CS+にも対応。)FreeRTOSDemo_CCRX_20200707.zip 983KBCC-RXの場合
PROGRAM SECTION: 0000f8fd Byte(s) ← 63,741 (十進表記)ROMDATA SECTION: 00001c19 Byte(s) ← 7,193 (十進表記)RAMDATA SECTION: 0000ea1a Byte(s) ← 59,930 (十進表記)
ICCRXの場合
19'345 bytes of readonly code memory 1'920 bytes of readonly data memory 54'978 bytes of readwrite data memory
GNURX
text data bss dec hex filename 28084 1092 55156 84332 1496c RTOSDemo_GNURX.elf
もっとも、調べて頂くことは出来ないでしょうか、とは言ったものの、ICCRXについてもGNURXについても分からないだろうと思いますので、CC-RXの挙動で取っ掛かりになるのではないだろうかと思った点を、以下に書いてみました。CC-RXの未使用の変数/関数を削除する最適化の疑問点● リンカにインフォメーションメッセージでunused symbolを表示させたところ、以下のようなdeleteされたシンボルのリストが表示されたのですが、それでもずっと沢山のunusedシンボルのリストが表示されました。直感的に、なぜunusedシンボルが残っているのか(deleteされていないのか)不思議な気がするのです、、、(その一方で、_Except_Vectorsや_Reset_Vectorがunusedになっているのも不思議ですが、、、)リンカのインフォメーションメッセージのdeleteされたシンボルのリスト
M0560004:"DefaultBuild\lowsrc.obj"-"_sml_buf" deleted by optimization M0560004:"DefaultBuild\r_byteq.obj"-"_R_BYTEQ_Close" deleted by optimization M0560004:"DefaultBuild\r_byteq.obj"-"_R_BYTEQ_GetVersion" deleted by optimization M0560004:"DefaultBuild\r_dtc_rx.obj"-"_R_DTC_CreateSeq" deleted by optimization M0560004:"DefaultBuild\r_dtc_rx.obj"-"_R_DTC_Close" deleted by optimization M0560004:"DefaultBuild\r_dtc_rx.obj"-"_R_DTC_GetVersion" deleted by optimization M0560004:"DefaultBuild\r_dtc_rx_target.obj"-"_r_dtc_module_disable" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortWrite" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortRead" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortDirectionSet" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PinRead" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PinControl" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_GetVersion" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_gpio_port_addr_get" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_gpio_pin_function_check" deleted by optimization M0560004:"DefaultBuild\r_gpio_rx.obj"-"_gpio_set_output_type" deleted by optimization M0560004:"DefaultBuild\r_sci_rx_pinset.obj"-"_R_SCI_PinSet_SCI9" deleted by optimization M0560004:"DefaultBuild\r_sci_rx.obj"-"_R_SCI_Receive" deleted by optimization M0560004:"DefaultBuild\r_sci_rx.obj"-"_R_SCI_Close" deleted by optimization M0560004:"DefaultBuild\r_sci_rx.obj"-"_R_SCI_GetVersion" deleted by optimization M0560004:"DefaultBuild\r_sci_rx72n.obj"-"_sci_disable_ints" deleted by optimization M0560004:"xfofind"-"__Fofind" deleted by optimization M0560004:"xctype"-"__Getpctype" deleted by optimization M0560004:"xstate"-"__Getpmbstate" deleted by optimization M0560004:"xwcstate"-"__Getpwcstate" deleted by optimization
M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_uxEventGroupGetNumber" M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_vEventGroupSetNumber" M0560400:Unused symbol "DefaultBuild\heap_4.obj"-"_vPortInitialiseBlocks" M0560400:Unused symbol "DefaultBuild\heap_4.obj"-"_vPortGetHeapStats" M0560400:Unused symbol "DefaultBuild\port.obj"-"_p_vSoftwareInterruptEntry" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_uxQueueMessagesWaitingFromISR" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_vQueueDelete" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_uxQueueGetQueueNumber" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_vQueueSetQueueNumber" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_ucQueueGetQueueType" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueIsQueueEmptyFromISR" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueCreateSet" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueAddToSet" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueRemoveFromSet" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueSelectFromSet" M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueSelectFromSetFromISR" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferGenericCreate" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_vStreamBufferDelete" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferReset" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferSetTriggerLevel" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferBytesAvailable" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferSend" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferSendFromISR" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceive" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferNextMessageLengthBytes" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceiveFromISR" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferIsEmpty" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferIsFull" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferSendCompletedFromISR" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceiveCompletedFromISR" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_uxStreamBufferGetStreamBufferNumber" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_vStreamBufferSetStreamBufferNumber" M0560400:Unused symbol "DefaultBuild\stream_buffer.obj"-"_ucStreamBufferGetStreamBufferType" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskPriorityGetFromISR" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskResumeFromISR" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskEndScheduler" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_pcTaskGetName" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskGetSystemState" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskCatchUpTicks" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskGetTaskNumber" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskSetTaskNumber" M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskGetStackHighWaterMark" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetTimerDaemonTaskHandle" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetPeriod" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetExpiryTime" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerPendFunctionCall" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_uxTimerGetTimerNumber" M0560400:Unused symbol "DefaultBuild\timers.obj"-"_vTimerSetTimerNumber" M0560400:Unused symbol "DefaultBuild\IntSemTest.obj"-"_xInterruptGivePeriod" M0560400:Unused symbol "DefaultBuild\UARTCommandConsole.obj"-"_vOutputString" M0560400:Unused symbol "DefaultBuild\main_full.obj"-"_main_full" M0560400:Unused symbol "DefaultBuild\main_full.obj"-"_vFullDemoTickHook" M0560400:Unused symbol "DefaultBuild\freertos_object_init.obj"-"_Kernel_Object_init" M0560400:Unused symbol "DefaultBuild\freertos_object_init.obj"-"_Object_init_manual" M0560400:Unused symbol "DefaultBuild\freertos_start.obj"-"_demo_main" M0560400:Unused symbol "DefaultBuild\r_smc_interrupt.obj"-"_R_Interrupt_Create" M0560400:Unused symbol "DefaultBuild\dbsct.obj"-"__CTBL" M0560400:Unused symbol "DefaultBuild\dbsct.obj"-"__DTBL" M0560400:Unused symbol "DefaultBuild\dbsct.obj"-"__BTBL" M0560400:Unused symbol "DefaultBuild\dbsct.obj"-"_deadSpace" M0560400:Unused symbol "DefaultBuild\lowsrc.obj"-"_sml_buf" M0560400:Unused symbol "DefaultBuild\lowsrc.obj"-"_environ" M0560400:Unused symbol "DefaultBuild\lowsrc.obj"-"_read" M0560400:Unused symbol "DefaultBuild\lowsrc.obj"-"_lseek" M0560400:Unused symbol "DefaultBuild\r_bsp_common.obj"-"_R_BSP_GetVersion" M0560400:Unused symbol "DefaultBuild\r_bsp_common.obj"-"_R_BSP_GetIClkFreqHz" M0560400:Unused symbol "DefaultBuild\r_bsp_cpu.obj"-"_R_BSP_InterruptsDisable" M0560400:Unused symbol "DefaultBuild\r_bsp_cpu.obj"-"_R_BSP_SoftwareReset" M0560400:Unused symbol "DefaultBuild\r_bsp_interrupts.obj"-"_R_BSP_InterruptRead" M0560400:Unused symbol "DefaultBuild\r_bsp_locking.obj"-"_R_BSP_SoftwareUnlock" M0560400:Unused symbol "DefaultBuild\r_bsp_software_interrupt.obj"-"_R_BSP_SoftwareInterruptClose" M0560400:Unused symbol "DefaultBuild\r_bsp_software_interrupt.obj"-"_R_BSP_SoftwareInterruptSetTask" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___MDEreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OFS0reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OFS1reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___TMINFreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___BANKSELreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___SPCCreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___TMEFreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OSIS1reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OSIS2reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OSIS3reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___OSIS4reg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___FAWreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"___ROMCODEreg" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"_Except_Vectors" M0560400:Unused symbol "DefaultBuild\vecttbl.obj"-"_Reset_Vector" M0560400:Unused symbol "DefaultBuild\r_byteq.obj"-"_R_BYTEQ_Close" M0560400:Unused symbol "DefaultBuild\r_byteq.obj"-"_R_BYTEQ_GetVersion" M0560400:Unused symbol "DefaultBuild\r_dtc_rx.obj"-"_R_DTC_CreateSeq" M0560400:Unused symbol "DefaultBuild\r_dtc_rx.obj"-"_R_DTC_Close" M0560400:Unused symbol "DefaultBuild\r_dtc_rx.obj"-"_R_DTC_GetVersion" M0560400:Unused symbol "DefaultBuild\r_dtc_rx_target.obj"-"_r_dtc_module_disable" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortWrite" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortRead" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PortDirectionSet" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PinRead" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_PinControl" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_R_GPIO_GetVersion" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_gpio_port_addr_get" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_gpio_pin_function_check" M0560400:Unused symbol "DefaultBuild\r_gpio_rx.obj"-"_gpio_set_output_type" M0560400:Unused symbol "DefaultBuild\r_gpio_rx72n.obj"-"_g_gpio_open_drain_n_support" M0560400:Unused symbol "DefaultBuild\r_gpio_rx72n.obj"-"_g_gpio_open_drain_p_support" M0560400:Unused symbol "DefaultBuild\r_gpio_rx72n.obj"-"_g_gpio_pull_up_support" M0560400:Unused symbol "DefaultBuild\r_gpio_rx72n.obj"-"_g_gpio_dscr_support" M0560400:Unused symbol "DefaultBuild\r_gpio_rx72n.obj"-"_g_gpio_dscr2_support" M0560400:Unused symbol "DefaultBuild\r_sci_rx_pinset.obj"-"_R_SCI_PinSet_SCI9" M0560400:Unused symbol "DefaultBuild\r_sci_rx.obj"-"_R_SCI_Receive" M0560400:Unused symbol "DefaultBuild\r_sci_rx.obj"-"_R_SCI_Close" M0560400:Unused symbol "DefaultBuild\r_sci_rx.obj"-"_R_SCI_GetVersion" M0560400:Unused symbol "DefaultBuild\r_sci_rx72n.obj"-"_sci_disable_ints" M0560400:Unused symbol "xfofind"-"__Fofind" M0560400:Unused symbol "xprintf"-"_stderr" M0560400:Unused symbol "xctype"-"__Getpctype" M0560400:Unused symbol "xctype"-"__Tls_setup__Ctype" M0560400:Unused symbol "xstate"-"__Getpmbstate" M0560400:Unused symbol "localeco"-"__Tls_setup__Locale" M0560400:Unused symbol "xwcstate"-"__Getpwcstate" M0560400:Unused symbol "xvalues"-"__Denorm" M0560400:Unused symbol "xvalues"-"__Eps" M0560400:Unused symbol "xvalues"-"__Hugeval" M0560400:Unused symbol "xvalues"-"__Nan" M0560400:Unused symbol "xvalues"-"__Snan" M0560400:Unused symbol "xvalues"-"__Rteps" M0560400:Unused symbol "xvalues"-"__Xbig" M0560400:Unused symbol "xvalues"-"__Zero"
こんにちは。NoMaYです。RX Driver Package V1.35で以下の対応が入ったようです。
/***********************************************************************************************************************Pre-processor Directives***********************************************************************************************************************//* Set this as the entry point from a power-on reset */#if defined(__CCRX__)#if BSP_CFG_CONFIGURATOR_VERSION < 2140 /* The PResetPRG section of compiler setting are not added by Smart configurator if you are using Smart Configurator for RX V2.13.0 (equivalent to e2 studio 2022-04) or earlier version. Please update Smart configurator to Smart Configurator for RX V2.14.0 (equivalent to e2 studio 2022-07) or later version. */ #error "To use this version of BSP, you need to upgrade Smart configurator. Please upgrade Smart configurator. If you don't use Smart Configurator, please change value of BSP_CFG_CONFIGURATOR_VERSION in r_bsp_config.h."#endif#pragma section ResetPRG /* Put PResetPRG section at the start address of the code flash. */#pragma entry PowerON_Reset_PC#endif /* defined(__CCRX__) */
[関連リンク]RX MCUのROM/RAM usage sizeがRenesas QuickConnect IoTのsample programでボロ負け(very worse than)している件(RA MCUやRL78 MCUに比べて)japan.renesasrulz.com/cafe_rene/f/analog/7575/rx-mcu-rom-ram-usage-size-renesas-quickconnect-iot-sample-program-very-worse-than-ra-mcu-rl78-mcu