シェルティさん、こんにちは。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"