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

softdevice,application and bootloader flash error

I have taken ble_app_ancs_c_s130_pca10028 example of sdk11,s130 version 2.0.0 and i integrated Alert Notification Service,DIS[device information service] and DFU... Device is advertising in NRF CONNECT..ANCS and ANS are working fine.when i try to flash softdevice ,application and bootloader in order to do DFU with the below specification..

The below specifications is for SOFTDEVICE,

FLASH (rx) : ORIGIN = 0x01000, LENGTH = 0x1B000

RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x1F80

The below specifications is for APPLICATION,

FLASH (rx) : ORIGIN = 0x0001B000, LENGTH = 0x3C000

RAM (rwx) : ORIGIN = 0x20002020, LENGTH = 0x4000

The below specifications is for BOOTLOADER,

FLASH (rx) : ORIGIN = 0x0003C000, LENGTH = 0x3C00

IRAM1 (rwx) : ORIGIN = 0x20002C00, LENGTH = 0x5380

IRAM2 (rwx) : ORIGIN = 0x20007F80, LENGTH = 0x80

ble_enable_params.common_enable_params.vs_uuid_count =VENDOR_SPECIFIC_UUID_COUNT; VENDOR_SPECIFIC_UUID_COUNT=8;

ble_enable_params.gatts_enable_params.attr_tab_size = 0x500;

from command line am getting as ERROR: THE area to write is not erased

from NRFGO STUDIO am getting ERROR as : this hex file has data in softdevice region. try programming using program softdevice or erase all before programming.

What could be the possible reason for facing these errors?....

Parents
  • Obviously you got error in linker script. Note that softdevice region begins at 0x01000 and is 0x1b000 long. So its end address is 0x0100 + 0x1b000 = 0x1c000 but your application starts at 0x1b000 (should be 0x1c000 !) the same situation is with bootloader and application - they overlay. What is more your flash region for application goes out of memory - on nrf51 you have either 0x20000 or 0x40000 bytes of memory.

    I would recommend to check addresses in linker scripts provided by nordic.

Reply
  • Obviously you got error in linker script. Note that softdevice region begins at 0x01000 and is 0x1b000 long. So its end address is 0x0100 + 0x1b000 = 0x1c000 but your application starts at 0x1b000 (should be 0x1c000 !) the same situation is with bootloader and application - they overlay. What is more your flash region for application goes out of memory - on nrf51 you have either 0x20000 or 0x40000 bytes of memory.

    I would recommend to check addresses in linker scripts provided by nordic.

Children
No Data
Related