Application caught in "app_error_fault_handler" with "NRF_FAULT_ID_SD_ASSERT" after boot from modified bootloader.

Hi everyone, this is the situation I have come across:

SDK: nRF5_SDK_17.1.0

Application is based on examples/ble_peripheral/ble_app_uart.

The modified bootloader is based on examples/dfu/secure_bootloader.

The application is works just fine standalone, and works fine with secure_bootloader(not modify).

What I have done to the modified bootloader is adding app timer and adding led noticing function to it, and change bootloader start address from 0x78000 to 0x70000, and change bootloader size from 0x6000 to 0xE000.

The modified bootloader works with led noticing function, and can download DFU package to the device, and can jump to the main application.

The problem is with this modified bootloader, the application always crash into "app_error_fault_handler" when initialize the app timer.

timers_init()->app_timer_init()->drv_rtc_init(&m_rtc_inst, &config, rtc_irq)->NRF_LOG_INFO("RTC: initialized.")->some more code->NRF_FAULT_ID_SD_ASSERT

When I had the NRF_LOG_INFO commented, it will still crash in to NRF_FAULT_ID_SD_ASSERT in further code.

The Keil IROM1 settings for application is with start address 0x26000, size 0x52000, IRAM1 start address 0x20002CB8, size 0xD348, these configration is not change for both of original bootloader and modified bootloader.

Lots of thanks!

Related