Linker giving error when building the ble_app_alert_notification_pca10028_s130

Hi,

I have installed Segger Studio for ARM v6.22a.

I have also installed the SDK5 version 12.3.0.

I imported the IAR project project  ble_app_start_notification_pca10028_s130 (.eww file) 

I also selected internal toolchain on the popup.

I also followed the directions followed for importing KEIL projects into the workspace :https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/segger-embedded-studio-a-cross-platform-ide

I was not able to "import section placement" as the option is not showing up when I right click on the project name. Is it because I am using a non commercial license?

Now when I do the build I get a whole lot of linker errors.

Can you please tell me what I am missing?

Please see error image below:

Rajkumar

  • Hi

    Why exactly are you changing stuff in the flash placement file? Is there a reason you set the RAM name to RAM1? This is only necessary when updating to SDK v17.0.2, so please revert this change. This likely causes a conflict with where where the RAM name "RAM" is used define the RAM segments, which is why you're getting this new error.

    Next for your actual issue, I think that is due to missing a step somewhere in the SES import guide https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/segger-embedded-studio-a-cross-platform-ide. Can you double check that you for example have done the Adding nRF5 MDK files section correctly? 

    • Download ses_nrf51_startup.s and save it into NRF5_SDK/components/toolchain/embedded_studio/ (create the folder)
    • Remove Cortex_M_Startup.s from the Internal Files folder in the Project Explorer
    • Right click the Internal Files folder and select Add Existing File...
    • In NRF5_SDK/components/toolchain/ select system_nrf51.c
    • Do the same for NRF5_SDK/components/toolchain/embedded_studio/ses_nrf51_startup.s
    • Select Project -> Edit Options... and then select the Preprocessor tab
    • Add ../../../../../../components/device to the User Include Directories field to include the device header files in our Embedded Studio project

    Best regards,

    Simon

  • Hi Simon,

    Actually I was able to completely build the project by changing the "__RAM_segment_end__" reference to "__RAM1_segment_end__". Hope that is fine.

    However, When I tried the s130 softdevice 2.0.1 with the peripheral example in the 12.3.0 SDK, the soft device initialization returns error code 8. 

    My device kit is an nrf51422 device. From the compatibility matrix I read that for nrf51422, the peripheral examples are compatible with S110 softdevice and the (central and peripheral) examples are compatible with S130.

    Is that true?

    So for trying out a peripheral example in the 12.3.0 SDK, I would need S110?

    Thanks.

    best regards,

    Rajkumar

  • Hi Simon,

    I did as you suggested(importing a project) from scratch. I imported a new project(ble_app_proximity). I did all the import steps you mentioned and did a compile.

    I am now getting some linker errors. Please see attached file.

    I am using Nordic Segger Embedded studio version 5.68 from the following site: 

    https://www.nordicsemi.com/Products/Development-tools/Segger-Embedded-Studio/Download?lang=en as suggested by my team member.

    Please let me know what I should do.

    regards,

    Rajkumar

  • Hi again Rajkumar

    Okay, if your flash_placement file is now set up correctly, you also need to set up RAM and Flash memory segments in your project settings as explained in this blog post. Remember to select the Common configuration in the project options window.

    Best regards,

    Simon

  • Hi Simon,

    I made the changes to the Section placement macros as shown in attached file. I also made changes to the memory segment macros as attached in the 2nd file.

    However, when I flash the 2.0.1 Softdevice hex file(using Nrfgo studio) and then use "Debug" menu option in EMbedded studio to run the application(app_ble_ancs_c),

    1. First time I run the debugger after flashing the soft device, the program stops and main and then after a few functions, the ble_stack_init runs through successfully but then fails either at peer_manager_init() or later.

    2. The 2nd time and  after that, when I run the debugger after flashing the softdeviec code and running the debugger, the function ble_stack_init() always gives error code 8 at the app_error.c.

    I have not been able to see the bluetooth device using my phone bluetooth scanning even once.

    The failure seems to happen at sd_softdevice_enable() which causes the fault.

    The clock use is the external crystal. There is no change made to the example code.

    Please let me know where I could be going wrong.

Related