.ANY selector not enough

I'm using nrfSDK17 with 52832.

When I build my code ,I will get error ad follow:

linking...
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching ble_conn_params.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching peer_database.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrfx_clock.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrfx_prs.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrfx_wdt.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrf_fstorage_sd.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrf_log_default_backends.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching security_dispatcher.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching system_nrf52.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching mvars.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching mvars.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrf_sdh.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrf_log_backend_rtt.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6406E: No space in execution regions with .ANY selector matching nrf_sdh_ble.o(.data).
.\_build\nrf52832_xxaa.axf: Error: L6407E: Sections of aggregate size 0x58 bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.

As L6407E explain,It seem that I only need to scale up IRAM size no less than 0x58.

So I change size of IRAM1 to 0x7E28 and change start to 0x200081D8.

However,I will get follow informations at RTT.

 0> <info> app_timer: RTC: initialized.
 0> <warning> nrf_sdh_ble: Insufficient RAM allocated for the SoftDevice.
 0> <warning> nrf_sdh_ble: Change the RAM start location from 0x200081D8 to 0x20008230.
 0> <warning> nrf_sdh_ble: Maximum RAM size for application is 0x7DD0.
 0> <error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
 0> <error> app: ERROR 4 [NRF_ERROR_NO_MEM] at ..\..\..\main.c:2795
 0> PC at: 0x00029ED7
 0> <error> app: End of error report

So how can I solve it?I trided change optimization level of code,But It still need 0x38 extra size.

Parents Reply
  • Looks like you have configured the softdevice to use up to 33kB of RAM, which is a lot for an nRF52832 application. I think even the multilink central example only uses 17kB of RAM. I would look into what you have done that require the softdevice to allocate this amount of RAM, I would consider using the nRF52833 or nRF52840 instead if you need the softdevice to use this much RAM.

    Kenneth

Children
No Data
Related