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

I need help with converting any example from Keil to SES

Hello,

I've been trying for days to convert any example from Keil to SES, I have road probably every question here on the dev zone but I am unable to fix this, I ever specially install windows on my mac to try if there it would work.

So, I have done everything from official nordic documents, I've been through several problems which I happily solve, but that I'm not able to.

I get those errors:


unplaced section: .log_dynamic_data_app [nrf_log_frontend.o], size=12, align=4

undefined symbol: __SRAM_segment_end__

undefined symbol: __start_log_const_data

undefined symbol: __start_log_dynamic_data

undefined symbol: __stop_log_const_data

I'm working on latest SEGGER, I have tried latest SDK, also 14.2 . The same errors. 

Thanks for reply

Parents Reply Children
  • Don't try to import project.  That is what will get you into big troubles.  It is better to start from a existing SES example project, then add the source files you need.  Note that SES compiler is very limited.  It does not support C++.  

  • I have tried this also, to be specific, I have tried to rewrite MPU9250 any example from: https://github.com/Martinsbl/nrf5-mpu-examples on base of example twi_sensor from sdk14.2 . 
    Firstly I imported his example (mpu-simple) to ses, then I have opened another window with twi_sensor example in ses, and comparing two of them together I added all nrf libraries, all nrf drivers and all application .c files that was in imported example. I did not touch any system file or something else. And I almost got it to built, but I have few errors.

    1. With compiling app_error_weak.c:
    'NRF_LOG_ENABLED' undeclared (first use in this function); did you mean 'NRF_MODULE_ENABLED'?
    (this error is not present when compiling the same document in imported example)

    2. With compiling SEGGER_RTT_printf.c
    'SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_UP_BUFFERS'?
    'SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_DOWN_BUFFERS'?

    3. With compiling SEGGER_RTT_Syscalls_SES.c
    'SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_UP_BUFFERS'?
    'SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_DOWN_BUFFERS'?

    4. With compiling SEGGER_RTT.c
    'SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_UP_BUFFERS'?
    'SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS' undeclared here (not in a function); did you mean 'SEGGER_RTT_MAX_NUM_DOWN_BUFFERS'?
    'SEGGER_RTT_CONFIG_BUFFER_SIZE_UP' undeclared here (not in a function); did you mean 'SEGGER_RTT_PRINTF_BUFFER_SIZE'?
    'SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN' undeclared here (not in a function); did you mean 'SEGGER_RTT_PRINTF_BUFFER_SIZE'?
    'SEGGER_RTT_CONFIG_DEFAULT_MODE' undeclared (first use in this function); did you mean 'SEGGER_RTT_MODE_DEFAULT'?

    And I have compiled these example in Keil with no problem at all, But I don't have enough money to buy Keil since I am student Disappointed

  • those are defined in sdk_config.h.  Look for it.  

    To work with sensors I recommend using Eclipse with IOsonata library.  SES cannot be with it used because it is C++.

    MPU-9250 driver code : 

    github.com/.../agm_mpu9250.cpp

    To use Eclipse with nRF5 series follow these blog pages : 

    https://embeddedsoftdev.blogspot.com/p/ehal-nrf51.html

    Example source code using MPU-9250 and stream data to Thing App.

    https://github.com/IOsonata/IOsonata/tree/master/ARM/Nordic/exemples/BlueIOThingy

    Eclipse project for that : 

    https://github.com/IOsonata/IOsonata/tree/master/ARM/Nordic/nRF52/nRF52832/exemples/BlueIOThingy

    SDK16 is required.

  • Hi, I did what you have recommended, I have set up Eclipse and all of that. No w I have this error:

    19:35:04 **** Incremental Build of configuration Debug for project BlueIOThingy ****

    make all 

    Building target: BlueIOThingy.elf

    Invoking: Cross ARM GNU C++ Linker

    arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections  -g3 -T "../../../../../../exemples/BlueIOThingy/gcc_nrf52_thingy_xxaa.ld" -Xlinker --gc-sections -L"../../../../../../../../../external/BSEC/algo/lite_version/bin/gcc/Cortex_M4" -L"../../../../lib/Eclipse/Debug" -Wl,-Map,"BlueIOThingy.map" --specs=nano.specs --specs=rdimon.specs -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group -o "BlueIOThingy.elf"  ./src/BlueIOICM20948.o ./src/BlueIOMPU9250.o ./src/BlueIOTcs.o ./src/BlueIOTes.o ./src/BlueIOThingy.o ./src/BlueIOTms.o ./src/BlueIOTuis.o   -lIOsonata_nRF52832 -lalgobsec

    /usr/local/Caskroom/gcc-arm-embedded/9-2019-q4-major/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: cannot find -lIOsonata_nRF52832

    collect2: error: ld returned 1 exit status

    make: *** [BlueIOThingy.elf] Error 1

    "make all" terminated with exit code 2. Build might be incomplete.

    19:35:04 Build Failed. 2 errors, 0 warnings. (took 131ms)

    It seems that it cannot find -lIOsonata_nRF52832 in arm none eabi? it seems strange.

    What should I Do next?

  • You need to build the lib project first.  open the lib project from .../ARM/Nordic/nRF52/nRF52832/lib

    compile both Debug & Release build. It will generate the libIOsonata_nRF52832.a

Related