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

Softdevice halts at location 0x000008C4

Hi There,

We have an issue where our project crashes, but the app_error_fault_handler() callback is not being called to help identify the cause of the issue. We are using the following version of the Softdevice: s132_nrf52_3.0.0_softdevice.hex

Without the debugger connected, the crash results in the application rebooting, but with the debugger attached it will halt at flash location 0x000008C4, which is within the softdevice.

We've also added the following additional fault handlers, but they are not catching the issue:

  • HardFault_Handler
  • MemManage_Handler
  • BusFault_Handler
  • UsageFault_Handler

Any suggestions on how to further debug this issue?

Cheers, Donal

  • FormerMember
    0 FormerMember

    The debugger halt at flash location 0x000008C4 indicates a hardfault in MBR, which indicates that there it may have been a problem when reading the RAM, resulting in a BusFault.

    It is possible that there can be a problem related to booting of the application, do you use the correct start-up files?

    Remember that the RAM address 0x20000000 is reserved, also when the softdevice is not in use.

  • Thank you for your reply Kristin. We don't seem to have any problem with booting the application normally. It is only during the normal operation of our application (which uses BLE/SoftDevice), that on occasion, the debugger halts at that location or the application reboots if the debugger is not connected.

    I will check the start-up files.

    There is a second way which we have been able to get our BLE application to halt at flash location 0x000008C4. This is to run our application normally, let BLE initialise & start advertising. Then pause with the debugger for a few seconds and resume execution. Immediately the application will halt at flash location 0x000008C4. We understand that you are not able to pause execution while the SoftDevice is running, but wanted to point out that it jumps to the same location, just in case it helps.

  • FormerMember
    0 FormerMember in reply to FormerMember

    When the application crashes at location 0x000008C4 during normal operation, does the hardfault registers provide any useful information? (This link can be useful for hardfault debugging.)

Related