DFU FATAL ERROR

HI currently i am using nrf52840 s140 sdk ver 17.1.0 and have added buttonless dfu in the central uart application after running we got run time error and we followed the ref example Implementing Nordic nRF52 OTA DFU over Bluetooth LE - Part 4 | Novel Bits after adding the buttonless dfu to my main central uart app unable to run 

run time error:
 <info> app: Setting vector table to bootloader: 0x000F1000
<info> app: Setting vector table to main app: 0x00027000
<error> app: Fatal error

ld file mem layout

MEMORY
{
UNPLACED_SECTIONS (wx) : ORIGIN = 0x100000000, LENGTH = 0
uicr_mbr_params_page (wx) : ORIGIN = 0x10001018, LENGTH = 0x00000004
uicr_bootloader_start_address (wx) : ORIGIN = 0x10001014, LENGTH = 0x00000004
RAM1 (wx) : ORIGIN = 0x20000000, LENGTH = 0x00040000
FLASH1 (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000
}

main app

main() {

// Initialize the async SVCI interface to bootloader before any interrupts are enabled.
err_code = ble_dfu_buttonless_async_svci_init();
APP_ERROR_CHECK(err_code);

// Initialize.
log_init();
//timer_init();
uart_init();
// buttons_leds_init();
db_discovery_init();
power_management_init();
ble_stack_init();
gatt_init();
services_init();
advertising_init();
nus_c_init();
scan_init();
printf("BLE UART central example started.\n");

/* Send Reset Pkt */
send_uart_message(reset_pkt,12);
scan_start();
advertising_start();

for (;;)
{
idle_state_handle();
}

}

  • Your linker script settings don't match with ble_stack_init(). Too many mistakes for a post here - read on how to configure stuff when a softdevice is present or check those examples.

  • OK how can I make it correct we need to enable dfu service in central uart app s140 softdevice ,nrf52480 

  • Hello,

    The buttonless dfu service is not designed to run on a central. Can you please describe a bit more in detail what you want to achieve? While it is possible to have a bootloader on a central device, the bootloader is not designed to work on BLE centrals. 

    Please describe:

    1: What kind of device is your device? What is it intended to connect to?

    2: How do you intend to decide, and inform the central device, that it is supposed to enter DFU mode?

    3: How do you intend to upload the new application image to the device? Through the peripheral? Through a mobile phone?

    And for now, I think we should leave the linker script as it was. Nothing (yet) says that we need to change this.

    Best regards,

    Edvin

Related