CC-RXの未使用の変数/関数を削除する最適化の効き目がGNURX/ICCRXより歴然と弱いのですが、、、

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

CC-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されたシンボルのリスト

6758.FreeRTOSDemo_delete_symbols_20200707.txt
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


リンカのインフォメーションメッセージのunusedシンボルのリスト
8838.FreeRTOSDemo_unused_symbols_20200707.txt
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"

 

  • これはリンク順の問題かと。。。
    resetprg.objをリンクの先頭に移動してみてください。
  • NoMaYさん

    こんにちは、シェルティです。

    種々調査いただきありがとうございます。本件調べてみます。
    少し開発リソースの空きがないので時間がかかりそうです。
    #誰かの質問を誰かに聞く前には、自分で解釈した言葉で聞くようにしています

    もしかするとエビスクラウンさんの指摘で直るのかもしれませんが、
    デフォルト設定値できっちり最適化がかかりきる、というのも大事だと思っています。
    色んな環境でベンチマークをとってマイコン選定する人が居たとすると、
    デフォルト設定で性能が出せないと競合のマイコンに負けてしまいますからね。

    以上です
  • エビスクラウンさん、シェルティさん、こんにちは。NoMaYです。

    エビスクラウンさんのアドバイスに基づいてresetprg.objをリンク順の先頭にしてみたところ、以下のように劇的に改善されました。どうもありがとうございました。ですが、まだまだ沢山のunusedシンボルが残りました。(但しunusedとは考えられないものもunusedになっていますが。) そこを改善するヒントになるかなと思いますので、エビスクラウンさんの方で、リンク順の問題ではないだろうか、と推測された、その推論の過程のようなものを教えて頂けないでしょうか?

    なお、シェルティさんのリプライとも関連するのですが、もともとのリンク順はe2 studioで特に何もリンク順を弄っていない時のリンク順でした。(そのリンク順に合わせるようにCS+でリンク順を弄って、双方で生成されるmotファイルが同一になるよう、私が普段投稿する時と同じようにしていたものなのでした。)

    CC-RXでの今までリンク順による結果

    PROGRAM SECTION:  0000f8fd Byte(s) ← 63,741 (十進表記)
    ROMDATA SECTION:  00001c19 Byte(s) ←  7,193 (十進表記)
    RAMDATA SECTION:  0000ea1a Byte(s) ← 59,930 (十進表記)

    CC-RXでのリンク順でresetprg.objを先頭にしてみた場合の結果

    PROGRAM SECTION:  0000743b Byte(s) ← 29,755 (十進表記)
    ROMDATA SECTION:  00001c19 Byte(s) ←  7,193 (十進表記)
    RAMDATA SECTION:  0000db92 Byte(s) ← 56,210 (十進表記)

    以下、CC-RXでのリンク順でresetprg.objを先頭にしてみた場合のリンカの各種出力です。

    リンカのインフォメーションメッセージのdeleteされたシンボルのリスト

    2816.FreeRTOSDemo_delete_symbols_20200707_2.txt
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupCreate" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupSync" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupWaitBits" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupClearBits" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupClearBitsFromISR" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupGetBitsFromISR" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupSetBits" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_vEventGroupDelete" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_vEventGroupSetBitsCallback" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_vEventGroupClearBitsCallback" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_xEventGroupSetBitsFromISR" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_uxEventGroupGetNumber" deleted by optimization
    M0560004:"DefaultBuild\event_groups.obj"-"_vEventGroupSetNumber" deleted by optimization
    M0560004:"DefaultBuild\heap_4.obj"-"_vPortInitialiseBlocks" deleted by optimization
    M0560004:"DefaultBuild\heap_4.obj"-"_vPortGetHeapStats" deleted by optimization
    M0560004:"DefaultBuild\port.obj"-"_vPortTaskUsesDPFPU" deleted by optimization
    M0560004:"DefaultBuild\port.obj"-"_vPortEndScheduler" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueGenericReset" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueCreateMutex" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueGiveMutexRecursive" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueTakeMutexRecursive" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueCreateCountingSemaphore" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueGiveFromISR" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueSemaphoreTake" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueuePeek" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueuePeekFromISR" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_uxQueueMessagesWaiting" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_uxQueueSpacesAvailable" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_uxQueueMessagesWaitingFromISR" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_vQueueDelete" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_uxQueueGetQueueNumber" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_vQueueSetQueueNumber" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_ucQueueGetQueueType" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueIsQueueEmptyFromISR" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueCreateSet" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueAddToSet" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueRemoveFromSet" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueSelectFromSet" deleted by optimization
    M0560004:"DefaultBuild\queue.obj"-"_xQueueSelectFromSetFromISR" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_prvReadBytesFromBuffer" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferGenericCreate" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_vStreamBufferDelete" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferReset" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferSetTriggerLevel" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferSpacesAvailable" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferBytesAvailable" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferSend" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferSendFromISR" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceive" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferNextMessageLengthBytes" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceiveFromISR" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferIsEmpty" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferIsFull" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferSendCompletedFromISR" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_xStreamBufferReceiveCompletedFromISR" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_uxStreamBufferGetStreamBufferNumber" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_vStreamBufferSetStreamBufferNumber" deleted by optimization
    M0560004:"DefaultBuild\stream_buffer.obj"-"_ucStreamBufferGetStreamBufferType" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskDelete" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskDelay" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_eTaskGetState" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskPriorityGet" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskPriorityGetFromISR" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskPrioritySet" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskSuspend" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskResume" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskResumeFromISR" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskEndScheduler" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGetTickCountFromISR" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskGetNumberOfTasks" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_pcTaskGetName" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskGetSystemState" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskCatchUpTicks" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskPlaceOnUnorderedEventList" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskRemoveFromUnorderedEventList" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskSetTimeOutState" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskGetTaskNumber" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskSetTaskNumber" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskGetStackHighWaterMark" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGetCurrentTaskHandle" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskPriorityInherit" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_vTaskPriorityDisinheritAfterTimeout" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_uxTaskResetEventItemValue" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_pvTaskIncrementMutexHeldCount" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_ulTaskGenericNotifyTake" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGenericNotifyWait" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGenericNotify" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGenericNotifyFromISR" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_xTaskGenericNotifyStateClear" deleted by optimization
    M0560004:"DefaultBuild\tasks.obj"-"_ulTaskGenericNotifyValueClear" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerCreate" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerGenericCommand" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerGetTimerDaemonTaskHandle" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerGetPeriod" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_vTimerSetReloadMode" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_uxTimerGetReloadMode" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerGetExpiryTime" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_pcTimerGetName" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerIsTimerActive" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_pvTimerGetTimerID" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_vTimerSetTimerID" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerPendFunctionCallFromISR" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_xTimerPendFunctionCall" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_uxTimerGetTimerNumber" deleted by optimization
    M0560004:"DefaultBuild\timers.obj"-"_vTimerSetTimerNumber" deleted by optimization
    M0560004:"DefaultBuild\FreeRTOS_CLI.obj"-"_cOutputBuffer" deleted by optimization
    M0560004:"DefaultBuild\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIRegisterCommand" deleted by optimization
    M0560004:"DefaultBuild\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIProcessCommand" deleted by optimization
    M0560004:"DefaultBuild\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIGetOutputBuffer" deleted by optimization
    M0560004:"DefaultBuild\IntQueueTimer.obj"-"_vInitialiseTimerForIntQueueTest" deleted by optimization
    M0560004:"DefaultBuild\Sample-CLI-commands.obj"-"_vRegisterSampleCLICommands" deleted by optimization
    M0560004:"DefaultBuild\BlockQ.obj"-"_vBlockingQueueProducer" deleted by optimization
    M0560004:"DefaultBuild\BlockQ.obj"-"_vBlockingQueueConsumer" deleted by optimization
    M0560004:"DefaultBuild\BlockQ.obj"-"_vStartBlockingQueueTasks" deleted by optimization
    M0560004:"DefaultBuild\BlockQ.obj"-"_xAreBlockingQueuesStillRunning" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_prvTestMasterTask" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_prvSyncTask" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_prvTestSlaveTask" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_vStartEventGroupTasks" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_vPeriodicEventGroupsProcessing" deleted by optimization
    M0560004:"DefaultBuild\EventGroupsDemo.obj"-"_xAreEventGroupTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_prvSendFrontAndBackTest" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_prvLowPriorityMutexTask" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_prvMediumPriorityMutexTask" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_prvHighPriorityMutexTask" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_xHighPriorityMutexTask" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_xMediumPriorityMutexTask" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_vStartGenericQueueTasks" deleted by optimization
    M0560004:"DefaultBuild\GenQTest.obj"-"_xAreGenericQueueTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_prvHigherPriorityNormallyEmptyTask" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_prvLowerPriorityNormallyEmptyTask" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_prv1stHigherPriorityNormallyFullTask" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_prv2ndHigherPriorityNormallyFullTask" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_prvLowerPriorityNormallyFullTask" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_vStartInterruptQueueTasks" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_xAreIntQueueTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyEmptyTask1" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyEmptyTask2" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyFullTask1" deleted by optimization
    M0560004:"DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyFullTask2" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_vInterruptMutexMasterTask" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_vInterruptMutexSlaveTask" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_vInterruptCountingSemaphoreTask" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_xSlaveHandle" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_vStartInterruptSemaphoreTasks" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_vInterruptSemaphorePeriodicTest" deleted by optimization
    M0560004:"DefaultBuild\IntSemTest.obj"-"_xAreInterruptSemaphoreTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\QueueOverwrite.obj"-"_prvQueueOverwriteTask" deleted by optimization
    M0560004:"DefaultBuild\QueueOverwrite.obj"-"_vStartQueueOverwriteTask" deleted by optimization
    M0560004:"DefaultBuild\QueueOverwrite.obj"-"_xIsQueueOverwriteTaskStillRunning" deleted by optimization
    M0560004:"DefaultBuild\QueueOverwrite.obj"-"_vQueueOverwritePeriodicISRDemo" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_prvSuspendedTaskTimerTestCallback" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_prvNotifyingTimer" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_prvNotifiedTask" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_prvRand" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_vStartTaskNotifyTask" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_xNotifyTaskFromISR" deleted by optimization
    M0560004:"DefaultBuild\TaskNotify.obj"-"_xAreTaskNotificationTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_prvTimerTestTask" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_prvAutoReloadTimerCallback" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_prvOneShotTimerCallback" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_prvISRAutoReloadTimerCallback" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_prvISROneShotTimerCallback" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_xLastCycleFrequency$3" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_vStartTimerDemoTask" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_xAreTimerDemoTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\TimerDemo.obj"-"_vTimerPeriodicISRTests" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_vPrimaryBlockTimeTestTask" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_vSecondaryBlockTimeTestTask" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_xTestQueue" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_xSecondary" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_xRunIndicator" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_vCreateBlockTimeTasks" deleted by optimization
    M0560004:"DefaultBuild\blocktim.obj"-"_xAreBlockTimeTestTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\countsem.obj"-"_prvCountingSemaphoreTask" deleted by optimization
    M0560004:"DefaultBuild\countsem.obj"-"_xParameters" deleted by optimization
    M0560004:"DefaultBuild\countsem.obj"-"_vStartCountingSemaphoreTasks" deleted by optimization
    M0560004:"DefaultBuild\countsem.obj"-"_xAreCountingSemaphoreTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_vSuicidalTask" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_vCreateTasks" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_uxTasksRunningNow$2" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_vCreateSuicidalTasks" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_xIsCreateTaskStillRunning" deleted by optimization
    M0560004:"DefaultBuild\death.obj"-"_xCreatedTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vLimitedIncrementTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vContinuousIncrementTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vCounterControlTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vQueueSendWhenSuspendedTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vQueueReceiveWhenSuspendedTask" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_xContinuousIncrementHandle" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_xLimitedIncrementHandle" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_ulCounter" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_vStartDynamicPriorityTasks" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_xAreDynamicPriorityTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\dynamic.obj"-"_xSuspendedTestQueue" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_vCompetingMathTask1" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_vCompetingMathTask2" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_vCompetingMathTask3" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_vCompetingMathTask4" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_vStartMathTasks" deleted by optimization
    M0560004:"DefaultBuild\flop.obj"-"_xAreMathsTaskStillRunning" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_prvRecursiveMutexControllingTask" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_prvRecursiveMutexBlockingTask" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_prvRecursiveMutexPollingTask" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_xMutex" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_xControllingTaskHandle" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_xBlockingTaskHandle" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_vStartRecursiveMutexTasks" deleted by optimization
    M0560004:"DefaultBuild\recmutex.obj"-"_xAreRecursiveMutexTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\semtest.obj"-"_prvSemaphoreTest" deleted by optimization
    M0560004:"DefaultBuild\semtest.obj"-"_vStartSemaphoreTasks" deleted by optimization
    M0560004:"DefaultBuild\semtest.obj"-"_xAreSemaphoreTasksStillRunning" deleted by optimization
    M0560004:"DefaultBuild\UARTCommandConsole.obj"-"_prvUARTCommandConsoleTask" deleted by optimization
    M0560004:"DefaultBuild\UARTCommandConsole.obj"-"_cInputString$1" deleted by optimization
    M0560004:"DefaultBuild\UARTCommandConsole.obj"-"_cLastInputString$2" deleted by optimization
    M0560004:"DefaultBuild\UARTCommandConsole.obj"-"_vUARTCommandConsoleStart" deleted by optimization
    M0560004:"DefaultBuild\UARTCommandConsole.obj"-"_vOutputString" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_prvCheckTask" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_prvPseudoRandomiser" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_prvRegTest1Task" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_prvRegTest2Task" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_main_full" deleted by optimization
    M0560004:"DefaultBuild\main_full.obj"-"_vFullDemoTickHook" deleted by optimization
    M0560004:"DefaultBuild\serial.obj"-"_xSerialPortInitMinimal" deleted by optimization
    M0560004:"DefaultBuild\serial.obj"-"_vSerialPutString" deleted by optimization
    M0560004:"DefaultBuild\serial.obj"-"_xSerialGetChar" deleted by optimization
    M0560004:"DefaultBuild\serial.obj"-"_xSerialPutChar" deleted by optimization
    M0560004:"DefaultBuild\freertos_object_init.obj"-"_Kernel_Object_init" deleted by optimization
    M0560004:"DefaultBuild\freertos_object_init.obj"-"_Object_init_manual" deleted by optimization
    M0560004:"DefaultBuild\freertos_start.obj"-"_demo_main" deleted by optimization
    M0560004:"DefaultBuild\r_cg_hardware_setup.obj"-"_xSerialTxDtcInfo" deleted by optimization
    M0560004:"DefaultBuild\r_smc_interrupt.obj"-"_R_Interrupt_Create" deleted by optimization
    M0560004:"DefaultBuild\lowlvl.obj"-"_charget" deleted by optimization
    M0560004:"DefaultBuild\lowsrc.obj"-"_read" deleted by optimization
    M0560004:"DefaultBuild\lowsrc.obj"-"_lseek" deleted by optimization
    M0560004:"DefaultBuild\lowsrc.obj"-"_sml_buf" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_common.obj"-"_R_BSP_GetVersion" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_common.obj"-"_R_BSP_GetIClkFreqHz" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_cpu.obj"-"_R_BSP_InterruptsDisable" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_cpu.obj"-"_R_BSP_SoftwareReset" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_interrupts.obj"-"_R_BSP_InterruptRead" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_locking.obj"-"_R_BSP_SoftwareUnlock" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_software_interrupt.obj"-"_R_BSP_SoftwareInterruptClose" deleted by optimization
    M0560004:"DefaultBuild\r_bsp_software_interrupt.obj"-"_R_BSP_SoftwareInterruptSetTask" deleted by optimization
    M0560004:"DefaultBuild\r_byteq.obj"-"_R_BYTEQ_Flush" deleted by optimization
    M0560004:"DefaultBuild\r_byteq.obj"-"_R_BYTEQ_Unused" 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_Create" 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_Send" deleted by optimization
    M0560004:"DefaultBuild\r_sci_rx.obj"-"_R_SCI_Receive" deleted by optimization
    M0560004:"DefaultBuild\r_sci_rx.obj"-"_R_SCI_Control" 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:"DefaultBuild\r_sci_rx72n.obj"-"_sci_async_cmds" 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
    


    リンカのインフォメーションメッセージのunusedシンボルのリスト
    0268.FreeRTOSDemo_unused_symbols_20200707_2.txt
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupCreate"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupSync"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupWaitBits"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupClearBits"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupClearBitsFromISR"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupGetBitsFromISR"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupSetBits"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_vEventGroupDelete"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_vEventGroupSetBitsCallback"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_vEventGroupClearBitsCallback"
    M0560400:Unused symbol "DefaultBuild\event_groups.obj"-"_xEventGroupSetBitsFromISR"
    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\port.obj"-"_vPortTaskUsesDPFPU"
    M0560400:Unused symbol "DefaultBuild\port.obj"-"_vPortEndScheduler"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueGenericReset"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueCreateMutex"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueGiveMutexRecursive"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueTakeMutexRecursive"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueCreateCountingSemaphore"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueGiveFromISR"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueueSemaphoreTake"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueuePeek"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_xQueuePeekFromISR"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_uxQueueMessagesWaiting"
    M0560400:Unused symbol "DefaultBuild\queue.obj"-"_uxQueueSpacesAvailable"
    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"-"_xStreamBufferSpacesAvailable"
    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"-"_vTaskDelete"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskDelay"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_eTaskGetState"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskPriorityGet"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskPriorityGetFromISR"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskPrioritySet"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskSuspend"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskResume"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskResumeFromISR"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskEndScheduler"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskGetTickCountFromISR"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskGetNumberOfTasks"
    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"-"_vTaskPlaceOnUnorderedEventList"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskRemoveFromUnorderedEventList"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskSetTimeOutState"
    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\tasks.obj"-"_xTaskGetCurrentTaskHandle"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskPriorityInherit"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_vTaskPriorityDisinheritAfterTimeout"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_uxTaskResetEventItemValue"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_pvTaskIncrementMutexHeldCount"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_ulTaskGenericNotifyTake"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskGenericNotifyWait"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskGenericNotify"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskGenericNotifyFromISR"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_xTaskGenericNotifyStateClear"
    M0560400:Unused symbol "DefaultBuild\tasks.obj"-"_ulTaskGenericNotifyValueClear"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerCreate"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGenericCommand"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetTimerDaemonTaskHandle"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetPeriod"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_vTimerSetReloadMode"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_uxTimerGetReloadMode"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerGetExpiryTime"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_pcTimerGetName"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerIsTimerActive"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_pvTimerGetTimerID"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_vTimerSetTimerID"
    M0560400:Unused symbol "DefaultBuild\timers.obj"-"_xTimerPendFunctionCallFromISR"
    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\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIRegisterCommand"
    M0560400:Unused symbol "DefaultBuild\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIProcessCommand"
    M0560400:Unused symbol "DefaultBuild\FreeRTOS_CLI.obj"-"_FreeRTOS_CLIGetOutputBuffer"
    M0560400:Unused symbol "DefaultBuild\IntQueueTimer.obj"-"_vInitialiseTimerForIntQueueTest"
    M0560400:Unused symbol "DefaultBuild\Sample-CLI-commands.obj"-"_vRegisterSampleCLICommands"
    M0560400:Unused symbol "DefaultBuild\BlockQ.obj"-"_vStartBlockingQueueTasks"
    M0560400:Unused symbol "DefaultBuild\BlockQ.obj"-"_xAreBlockingQueuesStillRunning"
    M0560400:Unused symbol "DefaultBuild\EventGroupsDemo.obj"-"_vStartEventGroupTasks"
    M0560400:Unused symbol "DefaultBuild\EventGroupsDemo.obj"-"_vPeriodicEventGroupsProcessing"
    M0560400:Unused symbol "DefaultBuild\EventGroupsDemo.obj"-"_xAreEventGroupTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\GenQTest.obj"-"_vStartGenericQueueTasks"
    M0560400:Unused symbol "DefaultBuild\GenQTest.obj"-"_xAreGenericQueueTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyEmptyTask1"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyEmptyTask2"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyFullTask1"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_xHighPriorityNormallyFullTask2"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_vStartInterruptQueueTasks"
    M0560400:Unused symbol "DefaultBuild\IntQueue.obj"-"_xAreIntQueueTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\IntSemTest.obj"-"_vStartInterruptSemaphoreTasks"
    M0560400:Unused symbol "DefaultBuild\IntSemTest.obj"-"_vInterruptSemaphorePeriodicTest"
    M0560400:Unused symbol "DefaultBuild\IntSemTest.obj"-"_xAreInterruptSemaphoreTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\IntSemTest.obj"-"_xInterruptGivePeriod"
    M0560400:Unused symbol "DefaultBuild\QueueOverwrite.obj"-"_vStartQueueOverwriteTask"
    M0560400:Unused symbol "DefaultBuild\QueueOverwrite.obj"-"_xIsQueueOverwriteTaskStillRunning"
    M0560400:Unused symbol "DefaultBuild\QueueOverwrite.obj"-"_vQueueOverwritePeriodicISRDemo"
    M0560400:Unused symbol "DefaultBuild\TaskNotify.obj"-"_vStartTaskNotifyTask"
    M0560400:Unused symbol "DefaultBuild\TaskNotify.obj"-"_xNotifyTaskFromISR"
    M0560400:Unused symbol "DefaultBuild\TaskNotify.obj"-"_xAreTaskNotificationTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\TimerDemo.obj"-"_vStartTimerDemoTask"
    M0560400:Unused symbol "DefaultBuild\TimerDemo.obj"-"_xAreTimerDemoTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\TimerDemo.obj"-"_vTimerPeriodicISRTests"
    M0560400:Unused symbol "DefaultBuild\blocktim.obj"-"_vCreateBlockTimeTasks"
    M0560400:Unused symbol "DefaultBuild\blocktim.obj"-"_xAreBlockTimeTestTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\countsem.obj"-"_vStartCountingSemaphoreTasks"
    M0560400:Unused symbol "DefaultBuild\countsem.obj"-"_xAreCountingSemaphoreTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\death.obj"-"_vCreateSuicidalTasks"
    M0560400:Unused symbol "DefaultBuild\death.obj"-"_xIsCreateTaskStillRunning"
    M0560400:Unused symbol "DefaultBuild\death.obj"-"_xCreatedTask"
    M0560400:Unused symbol "DefaultBuild\dynamic.obj"-"_vStartDynamicPriorityTasks"
    M0560400:Unused symbol "DefaultBuild\dynamic.obj"-"_xAreDynamicPriorityTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\dynamic.obj"-"_xSuspendedTestQueue"
    M0560400:Unused symbol "DefaultBuild\flop.obj"-"_vStartMathTasks"
    M0560400:Unused symbol "DefaultBuild\flop.obj"-"_xAreMathsTaskStillRunning"
    M0560400:Unused symbol "DefaultBuild\recmutex.obj"-"_vStartRecursiveMutexTasks"
    M0560400:Unused symbol "DefaultBuild\recmutex.obj"-"_xAreRecursiveMutexTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\semtest.obj"-"_vStartSemaphoreTasks"
    M0560400:Unused symbol "DefaultBuild\semtest.obj"-"_xAreSemaphoreTasksStillRunning"
    M0560400:Unused symbol "DefaultBuild\UARTCommandConsole.obj"-"_vUARTCommandConsoleStart"
    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\main_full.obj"-"_ulRegTest1LoopCounter"
    M0560400:Unused symbol "DefaultBuild\main_full.obj"-"_ulRegTest2LoopCounter"
    M0560400:Unused symbol "DefaultBuild\serial.obj"-"_xSerialPortInitMinimal"
    M0560400:Unused symbol "DefaultBuild\serial.obj"-"_vSerialPutString"
    M0560400:Unused symbol "DefaultBuild\serial.obj"-"_xSerialGetChar"
    M0560400:Unused symbol "DefaultBuild\serial.obj"-"_xSerialPutChar"
    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_cg_hardware_setup.obj"-"_xSerialTxDtcInfo"
    M0560400:Unused symbol "DefaultBuild\r_smc_cgc_user.obj"-"_R_CGC_Create_UserInit"
    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\lowlvl.obj"-"_charget"
    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_Flush"
    M0560400:Unused symbol "DefaultBuild\r_byteq.obj"-"_R_BYTEQ_Unused"
    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_Create"
    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_Send"
    M0560400:Unused symbol "DefaultBuild\r_sci_rx.obj"-"_R_SCI_Receive"
    M0560400:Unused symbol "DefaultBuild\r_sci_rx.obj"-"_R_SCI_Control"
    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 "DefaultBuild\r_sci_rx72n.obj"-"_sci_async_cmds"
    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"
    


    リンカでのリンク順の全体
    4073.FreeRTOSDemo_link_order_2.txt
    -library=DefaultBuild\RTOSDemo.lib
    -input=DefaultBuild\resetprg.obj
    -input=DefaultBuild\port_asm.obj
    -input=DefaultBuild\event_groups.obj
    -input=DefaultBuild\list.obj
    -input=DefaultBuild\heap_4.obj
    -input=DefaultBuild\port.obj
    -input=DefaultBuild\queue.obj
    -input=DefaultBuild\stream_buffer.obj
    -input=DefaultBuild\tasks.obj
    -input=DefaultBuild\timers.obj
    -input=DefaultBuild\main_blinky.obj
    -input=DefaultBuild\FreeRTOS_CLI.obj
    -input=DefaultBuild\IntQueueTimer.obj
    -input=DefaultBuild\Sample-CLI-commands.obj
    -input=DefaultBuild\BlockQ.obj
    -input=DefaultBuild\EventGroupsDemo.obj
    -input=DefaultBuild\GenQTest.obj
    -input=DefaultBuild\IntQueue.obj
    -input=DefaultBuild\IntSemTest.obj
    -input=DefaultBuild\QueueOverwrite.obj
    -input=DefaultBuild\TaskNotify.obj
    -input=DefaultBuild\TimerDemo.obj
    -input=DefaultBuild\blocktim.obj
    -input=DefaultBuild\countsem.obj
    -input=DefaultBuild\death.obj
    -input=DefaultBuild\dynamic.obj
    -input=DefaultBuild\flop.obj
    -input=DefaultBuild\recmutex.obj
    -input=DefaultBuild\semtest.obj
    -input=DefaultBuild\UARTCommandConsole.obj
    -input=DefaultBuild\main_full.obj
    -input=DefaultBuild\serial.obj
    -input=DefaultBuild\freertos_object_init.obj
    -input=DefaultBuild\freertos_start.obj
    -input=DefaultBuild\r_cg_hardware_setup.obj
    -input=DefaultBuild\r_smc_cgc.obj
    -input=DefaultBuild\r_smc_cgc_user.obj
    -input=DefaultBuild\r_smc_interrupt.obj
    -input=DefaultBuild\hwsetup.obj
    -input=DefaultBuild\dbsct.obj
    -input=DefaultBuild\lowlvl.obj
    -input=DefaultBuild\lowsrc.obj
    -input=DefaultBuild\mcu_locks.obj
    -input=DefaultBuild\r_bsp_common.obj
    -input=DefaultBuild\r_bsp_cpu.obj
    -input=DefaultBuild\r_bsp_interrupts.obj
    -input=DefaultBuild\r_bsp_locking.obj
    -input=DefaultBuild\r_bsp_mcu_startup.obj
    -input=DefaultBuild\r_bsp_software_interrupt.obj
    -input=DefaultBuild\sbrk.obj
    -input=DefaultBuild\mcu_clocks.obj
    -input=DefaultBuild\mcu_init.obj
    -input=DefaultBuild\mcu_interrupts.obj
    -input=DefaultBuild\mcu_mapped_interrupts.obj
    -input=DefaultBuild\vecttbl.obj
    -input=DefaultBuild\r_byteq.obj
    -input=DefaultBuild\r_dtc_rx.obj
    -input=DefaultBuild\r_dtc_rx_target.obj
    -input=DefaultBuild\r_gpio_rx.obj
    -input=DefaultBuild\r_gpio_rx72n.obj
    -input=DefaultBuild\r_sci_rx_pinset.obj
    -input=DefaultBuild\r_sci_rx.obj
    -input=DefaultBuild\r_sci_rx72n.obj
    -input=DefaultBuild\r_sci_rx72n_data.obj
    -input=DefaultBuild\FIT_patch.obj
    

     

  • エビスクラウンです。

    推測ではなく、本件はモジュール間最適化の制約と記憶しています。
    マニュアルのどこかに記載があったかと思います。

    詳細は知りませんが、未参照シンボルの削除はエントリ関数(#pragma entry指定またはオプション)を起点に行うようであり、エントリ関数よりも手前(番地の小さい)に配置された関数は対象外となるようです。

    また、ここから先は小生の憶測ですが、リアルタイムOSのように起点となる関数(タスク)が複数存在する場合や関数ポインタで呼び出された関数等は対象外となるのではないでしょうか?
    そのように考えなければ、unusedが分かっているのに削除できないことの説明がつきません。
    逆にエントリ関数があくまでも起点であるのであれば、現状の結果もうなずけるかと。。。
    済みません。小生の完全な憶測なので無視してくださって構いません。
  • エビスクラウンさん、こんにちは。NoMaYです。

    リプライありがとうございました。おかげさまで、私は事態を掌握出来たかと思います。以下の制約(というか裏仕様というべき?)があったのですね。思い起こせば、CC-RXの素のresetprg.cとセクション配置は以下のようになっていて、(今回の件を意図したかは分かりませんが)エントリ関数がCODE FLASH ROM領域の先頭に配置されるようになっていたのでした。このやり方をFITでのresetprg.cとRXスマートコンフィグレータベース(だと思う)の自前のセクション配置に適用してみたところ(リンク順を変更しなくても)更に改善されました。

    未使用の変数/関数を削除する最適化の制約(裏仕様?)

    ● エントリ関数よりも手前(番地の小さい)に配置された関数は対象外となる

    CC-RXでの最初の投稿時のリンク順による結果

    PROGRAM SECTION:  0000f8fd Byte(s) ← 63,741 (十進表記)
    ROMDATA SECTION:  00001c19 Byte(s) ←  7,193 (十進表記)
    RAMDATA SECTION:  0000ea1a Byte(s) ← 59,930 (十進表記)

    CC-RXでのFITのresetprg.cと自前セクション配置を変更した場合の結果

    PROGRAM SECTION:  000053f7 Byte(s) ← 21,495 (十進表記)
    ROMDATA SECTION:  00001411 Byte(s) ←  5,137 (十進表記)
    RAMDATA SECTION:  0000d83c Byte(s) ← 55,356 (十進表記)

    CC-RXの素のresetprg.cとセクション配置

    #pragma section ResetPRG        // output PowerON_Reset to PResetPRG section

    #pragma entry PowerON_Reset_PC

    void PowerON_Reset_PC(void)
    {
        略
    }
    PResetPRG/0FFC00000,
    C_1,C_2,C,C_8,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,D_8,P,PIntPRG,W_1,W_2,W,L/0FFC00100,

    上記を参考にFITのresetprg.cと自前セクション配置(RXスマートコンフィグレータベースだと思う)を変更(赤文字箇所を追加)

    #if defined(__CCRX__)
    #pragma section ResetPRG /* put PResetPRG section at the start address of the code flash */
    #pragma entry PowerON_Reset_PC
    #endif /* defined(__CCRX__) */
    PResetPRG,C_1,C_2,C,C_8,C$*,D_1,D_2,D,D_8,W*,L,P/0FFC00000

    なお、CC-RXのヘルプとリリースノートを見返してみたのですが、今回のような制約(裏仕様?)の記載は見当たりませんでした。(以下の画面コピーの1枚目のとおり、エントリ関数の指定が必要であることは記載されていましたが、、、)





    あと、ヘルプを見返していて気付いたのですが、リンカのインフォメーションメッセージのunused symbolの表示は、もともと必ずしも正確では無いような情報であるようですね。すみませんでした。



     

  • NoMaYさん、エビスクラウンさん

    シェルティです、こんにちは。

    ありがとうございます。BSPの中にあるresetprg.c を起点に調査を進めます。
    調査対象が明確になると依頼先が明確になり話が早く進むことが多いですね。
    今回はBSPチームに依頼できました。必要に応じてコンパイラチームにも確認入れていただけると思います。
    調査結果や今後の話が明確になりましたらまた書き込みます。

    本当に助かります。ありがとうございました。

    以上です
  • NoMaYさん、エビスクラウンさん

    シェルティです、こんにちは。

    本件FreeRTOS(ネットワークスタック込み)のROM/RAMを削っているときに対処が途中になっていると気付きました。まことに申し訳ありません。また話を動かし始めています。直し方は明確で、デフォルトで最適化が効くようにBSPを直すかツール側を直すかという議論をしています。他にも対処が途中になっているものも可能な限り拾っていきたいと思います。

    以上です

  • シェルティさん

    エビスクラウンです。お久しぶりです。

    実はCC-RXではなく、CC-RLでちょっと改善して欲しい案件(警告の抑止)があるのですが、ここで投稿しても良いでしょうか?

  • エビスクラウンさん、こんにちは。NoMaYです。

    それだと埋もれてしまいそうな予感がしますので、別スレッドを立てた方が良いのではないかな、と思うのです。(もっとも、どのようにしたところで、いつかは埋もれてしまいますが。) タイトルは「CC-RLでちょっと改善して欲しい案件」でどうでしょう。そうすれば他の案件も加えていけますし。

  • エビスクラウンさん、NoMaYさん

    こんにちは、シェルティです。

    ご提案ありがとうございます。ピックアップさせていただきます。以下2スレッドは定期的にフォローします。

    ①RL78 SmartConfiguratorで気になった点とか改善する案とか報告してみるスレッド

    ②CC-RLでちょっと改善して欲しい案件

    現在はシェルティのボランタリーベースの活動になっていますが、かふぇルネに有効なフィードバックが多く届いていることを社内アピールし正式に人を割り当てるなどした方が良いというような提案を考えています。

    コードが公開されているようなもの(RAのFlexible Software PackageやRX Driver Packageなど)はGitHubでコードを公開しつつあるのでGitHubのIssueやPull Requestを正式に開発プロセスに組み入れるような提案も考えています。

    色々手を打とうとはしていますが、なかなか歩みが遅く申し訳なく思います。全力投球はします。

    引き続きご支援いただけますと幸いです。

    以上です