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

Configuration of section placement files for Segger Embedded Studio – Segger_flash.icf or Flash_placement.xml?

What is the current best practice?

I am using Segger Embedded Studio v4.12 for programming a Nordic 51822 application (SDK 12.3) and need to configure the section placement file to include a block for pwr_mgmt_data

Information on the Segger wiki discusses use of linker scripts (*.icf)
wiki.segger.com/Porting_from_GCC_to_SEGGER_Linker

But documentation from Nordic and in the Segger Manual suggest use of flash_placement.xml files
studio.segger.com/index.htm?ht…placement_file_format.htm

Advice from Nordic for importing a Keil project states:

If your project uses modules that require section variables (for example, the Peer Manager, Flash Data Storage, or Flash Storage), define where in the flash information from these modules should be stored.

  1. Download the flash_placement.xml and place it in your project directory.Files are provided for the following versions of the nRF5 SDK:
  2. Right-click on your project in the Project Explorer and select Import Section Placement.

From infocenter.nordicsemi.com/topi…eveloping/import_ses.html

However the option to 'import section placement' is not available in the SES menu for v4.12

Any help would be much appreciated!

Rob

  • Hello,

    I am not quite sure how to check without downloading and installing, but I believe that SES v4.12 has an armgcc compiler version that is "not supported" in our SDKs. By not supported, I mean that it isn't tested properly, and we have seen a few bug reports with weird behavior using this version. I suggest that you download the 3.40 version of Segger Embedded Studio. 

    However, I am not 100% sure that this is the reason that you don't see the import section placement option. Can you please try to follow this guide:

    https://devzone.nordicsemi.com/b/blog/posts/segger-embedded-studio-a-cross-platform-ide

    I remember that I did this a couple of times before we added support for SES projects in our SDK (included SES project files). And that did work.

    So please try to download SES v3.40, and follow the guide from the link.

    Best regards,

    Edvin

  • Edvin

    Thankyou for the helpful reply.  Your suggestion makes sense.  I wish I had known that SDK12.3 and SES v4.12 do not play nicely together before I started this project!

    Adding SES support for more recent versions of the SDK is a good idea. Unfortunately it does not help me since I am using NRF51 SoCs which are not supported by versions of the SDK > 12.3

    Is it likely that given the SES-Nordic alliance there will be further effort to develop compatibility with the newest version of Segger's IDE?

    With kindest regards

    Rob

  • Advice from Segger:

    Embedded Studio supports two linkers out of the box.
    The one is the gcc linker (section_placement.xml and memory map file) and the other our new Segger Linker (only one .icf file).
    The Nordic guide seems to reference the gcc linker.
    Make sure that in project options the linker is set to "GNU" instead of "SEGGER".
    Then you should get the "Import Section placement" option.

    (I was using the Segger linker, hence the import section placement option was not available in the project options menu.)

Related