This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Undefined reference to SEGGER_SYSVIEW APIs upon integrating the patches

Been having trouble integrating systemview for tracing FreeRTOS application. I came across this thread, and even tried replacing the files with what's inside the PatchedFiles.zip folder, and I see there's an #include "SEGGER_SYSVIEW_FreeRTOS.h" inside FreeRTOSConfig.h, but upon compiling I start seeing a bunch of undefined reference errors including undefined reference to SEGGER_SYSVIEW_RecordVoid'`
Looks like traceTASK functions are invoked but it can't seem to find the reference. Anything obvious that I haven't figured out?
Parents Reply
  • Sorry, aren't these paths hardcoded in the preprocessor anyways? If so, the existing nordic projects in the SDK follow the same approach. 

    And I'm not sure how Segger IDE deals with it but I assumed if I send you my project and put it into SDK/examples/<Your-Folder>/<Another-Folder>, it would work the same for you as it does for me. And I just realized I sent you the entire solution instead of just the project itself which I'm yet to figure out how to save it.


    But you can take a look at Init template - FreeRTOS

Children
  • I am not really sure why we are seeing the difference. Mostly we are using different SES versions and/or you are using Mac and I am testing this on Windows.. I still get this after trying to patch few things in the folder naming.

    The SES version I am using is this one

  • Your error says the project is already loaded. That's what you see after building it? You're making sure it's a clean project? For me, all I have to do is just add the existing project into my solution, set it as an active project and build it.

    I'm not very great at Segger yet and there's a lot of things that still annoy me about it and i'm getting used to it

    And yes i'm using a mac and there's minor differences in the versions but I don't think that should be a problem. 

  • Yes, this is clean project just unzipped into a folder name Susheel1_ble_app_hrs_freertos instead of SmartWatch as it seems like there are some files added into your project which has the folder name Susheel1_ble_app_hrs_freertos  hardcoded.

    The error 'solution is already loaded' seems to be a bit confusing. The solution is not loaded anywhere else. There is no other SES instance on my PC other than this one which is reporting an error. After I click OK, then it loads the previous project I was debugging which is ble_app_beacon. 

    This is very strange because I cannot find any other thread which has similar issues on devzone. Seems like a project compatibility issue from Segger side within OS versions. 

  • Can we try this one? It may not make a difference but I just tested it again on my machine, and it works ok. At least I'm able to open the solution and build it fine.

    You could try the existing NRF's programs (ble_uart etc) but I'm mostly concerned about my own project regarding integrating SystemView. 

    Project 4.zip

  • The problem was caused for me from this changes in your .emProject file

      <configuration Name="Common" gcc_cplusplus_language_standard="c++11" />
      <import file_name="../../../../../peripheral/uart/pca10056/blank/ses/uart_pca10056.emProject" />
      <import file_name="../../../../../peripheral/twi_sensor/pca10056/blank/ses/twi_sensor_pca10056.emProject" />
      <import file_name="../../../../Susheel1_ble_app_hrs_freertos/pca10056/s140/ses/ble_app_hrs_freertos_pca10056_s140.emProject" />
      <import file_name="../../../../../ble_peripheral/ble_app_uart/pca10056/s140/ses/ble_app_uart_pca10056_s140.emProject" />
      <import file_name="../../../../../peripheral/blinky_freertos/pca10056/blank/ses/blinky_FreeRTOS_pca10056.emProject" />
    

    I am now able to open the project but after that I have not managed to compile your cpp/hpp files with the project settings you sent. There must be some other dependency that is resolved in your system that makes SES resolve cpp linkage. 

Related