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

Firmware crashes (hardfault) when code includes ble_radio_notification_init

Hi,

The code is working normally, but when I include ble_radio_notification_init functionality. Then it crashes (hardfaults), on some boards not all.

[19:18:40.550] <error>: HARD FAULT at 0x002D082C
[19:18:40.550] <error>:   R0:  0x40020514  R1:  0x00000001  R2:  0x4000B000  R3:  0x00000000
[19:18:40.550] <error>:   R12: 0x00000000  LR:  0xFFFFFFED  PSR: 0x810F0025
[19:18:40.550] <error>: Cause: Instruction bus error.

While calling ble_radio_notification_init --

Priority level set  - 3 ( 0-1 reserved for softdevice ).

NRF_RADIO_NOTIFICATION_DISTANCES set to NRF_RADIO_NOTIFICATION_DISTANCE_800US

So my question why is it only failing on few nrf52840 boards not all?

Also what change can i make to prevent it from happening?

---------------------------------------

board being used - nrf52840

softdevice - s140

sdk - nRF5_SDK_15.2.0

---------------------------------------

P.S. Currently, board is not physically available with me, so cannot run debugger.

-xcepti0n

Parents Reply
  • Ok, normally that would happen either if

    • The assert is inside the external code like softdevice, but the address 0X2D082C seems to be outside the softdevice. What version of S140 are you using?
    • you have optimized away all debug information from the binary when addr2line might not work as intended.

    In anycase, you can look into the generated .map file of your application and see what function resides at that address location.

Children
Related