I have been trying to integrate Segger SystemView into my project but haven't had any luck so far.
After manually applying the patch and including a #include "SEGGER_SYSVIEW_FreeRTOS.h", I start seeing a lot of undefined reference errors. For instance, "SEGGER_SYSVIEW_RecordExitISR" is defined in SEGGER_SYSVIEW.c , and SEGGER_SYSVIEW.c is already included in the preprocessor of the Segger IDE project.
/app_timer_freertos.o: in function `app_timer_start':1> /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:194: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld:
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:194: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/app_timer_freertos.o: in function `app_timer_stop':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:230: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:230: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1>
/Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/port_cmsis_systick.o: in function
`RTC1_IRQHandler':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:128: undefined reference to `SEGGER_SYSVIEW_RecordEnterISR'1>
/Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:158: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld:
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:166: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/queue.o: in function `prvInitialiseNewQueue':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:447: undefined reference to `SEGGER_SYSVIEW_RecordU32x3'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/queue.o: in function `xQueueGenericSend':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:755: undefined reference to `SEGGER_SYSVIEW_ShrinkId'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:755: undefined reference to `SEGGER_SYSVIEW_RecordU32x4'
After manually applying the patch and including a #include "SEGGER_SYSVIEW_FreeRTOS.h", I start seeing a lot of undefined reference errors. For instance, "SEGGER_SYSVIEW_RecordExitISR" is defined in SEGGER_SYSVIEW.c , and SEGGER_SYSVIEW.c is already included in the preprocessor of the Segger IDE project.
/app_timer_freertos.o: in function `app_timer_start':1> /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:194: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld:
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:194: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/app_timer_freertos.o: in function `app_timer_stop':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:230: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/components/libraries/timer/app_timer_freertos.c:230: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1>
/Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/port_cmsis_systick.o: in function
`RTC1_IRQHandler':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:128: undefined reference to `SEGGER_SYSVIEW_RecordEnterISR'1>
/Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:158: undefined reference to `SEGGER_SYSVIEW_RecordExitISRToScheduler'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld:
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/portable/CMSIS/nrf52/port_cmsis_systick.c:166: undefined reference to `SEGGER_SYSVIEW_RecordExitISR'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/queue.o: in function `prvInitialiseNewQueue':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:447: undefined reference to `SEGGER_SYSVIEW_RecordU32x3'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: Output/Release/Obj/Init template - FreeRTOS/queue.o: in function `xQueueGenericSend':1>
/Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:755: undefined reference to `SEGGER_SYSVIEW_ShrinkId'1> /Applications/SEGGER Embedded Studio for ARM 5.42/gcc/arm-none-eabi/bin/ld: /Users/Projects/BLE/nRF5_SDK_17.0.2_d674dde/external/freertos/source/queue.c:755: undefined reference to `SEGGER_SYSVIEW_RecordU32x4'