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

How can I transport the project from nRF52832 to nRF52810 by solving the compiling errors like "Error[Lp011]: section placement failed " ?

hi, nordic support

SDK version is 15.3.0

the example is ble_app_uart_c

I have modified the project based on this address:https://infocenter.nordicsemi.com/index.jsp

But the following error occurred when I compiled

Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x570c bytes (max align 0x8) in <[0x2000'1800-0x2000'5fff]> (total
uncommitted space 0x4800).
Error[Lp021]: the destination for compressed initializer batch "P2-1" is placed at an address that is dependent on the size of the batch, which is not allowed
when using lz77 compression. Consider using "initialize by copy with packing = zeros" (or none) instead.

how to resolve them?

thx

  • Hi,

    You get these errors because the linker is not able to place all the code in the allocated RAM/flash size. The nRF52810 has a very limited RAM and flash size, and is intended only for small applications with limited BLE functionality (typically BLE beacon or peripheral applications with simple sensors, etc). The ble_app_uart_c example is a central application, requiring the S132 softdevice. This softdevice has RAM and flash requirements making it hard to fit most applications using this softdevice in nRF52810 chips. You may be able to fit the example if you optimize the flash/RAM size, but it will most likely not fit out-of-the-box.

    If you want to build a central application, I would recommend that you look into the nRF52832 IC or another one with a larger flash/RAM size.

    Best regards,
    Jørgen

  • Hi,

    You may be able to fit the example if you optimize the flash/RAM size --> how to optimize the flash and RAM?

    Turning off some drivers may reduce it. But I don’t know that those drivers are redundant, I have turned off the log driver

  • I did a quick test with the project in IAR, and it seems to be sufficient to reduce the HEAP/STACK sizes. I did not try running it, but the example compiles with these sizes set in the ICF-file:

    define symbol __ICFEDIT_size_cstack__   = 3072;
    define symbol __ICFEDIT_size_heap__     = 3072;

    Note that the S132 version supported in SDK 15.3.0 is not qualified for use with nRF52810, only s132 v5.1.0 is qualified.

  • Hi,

    i did not find the ICF-file,where is it?

    Note that the S132 version supported in SDK 15.3.0 is not qualified for use with nRF52810, only s132 v5.1.0 is qualified. -->what you means?Do you mean that only SDK14.2 is suitable for developing 52810?

    becasue the s132v5.1.0 is support in SDK14.2

  • The .icf file is found in "$PROJ_DIR$\ble_app_uart_c_iar_nRF5x.icf". Did you not modify this file to change the Flash/RAM sizes?

    Ryon_pan said:
    Do you mean that only SDK14.2 is suitable for developing 52810?

    No, it means that s132 v5.1.0 is the only s132 softdevice that is qualified for use with nRF52810. This softdevice version is only supported in SDK 14.2. We chose to support this version and not the later ones because it has a bit smaller flash/RAM requirements, and support most of the desired features.

    As I said, nRF52810 has a very limited flash/RAM size and it is mainly used for small beacon/peripheral application. These applications can be built using s112/113 softdevices, which was specifically designed for this device with limited flash/RAM size. s112 and s113 are both supported in the latest SDK (v16.0.0). If you want to build central/scanning applications for nRF52810, SDK 14.2.0 with s132 v5.1.0 is the easiest way to go.

Related