Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

nRF52832 NRF_FAULT_ID_SD_ASSERT @PC 0x00014ce0

This is a product based on nRF52832, which uses BLE Bluetooth to scan iBeacons and communicates with an LTE module via UART for data reporting.

It occasionally enters the app_error_fault_handler with a high probability, where the ID is 1 (NRF_FAULT_ID_SD_ASSERT), the PC is at 0x00014ce0, and the info is 0.

After automatically executing NVIC_SystemReset, it enters this state again within a short period, such as 5 seconds to 1 minute, repeating more than ten times.

I wonder what assertion the SoftDevice has made at this PC address. 

Environment information:

nRF52832

s132_nrf52_7.2.0_softdevice.hex

nRF5_SDK_17.0.2_d674dde

running without RTOS

ble_gap_scan_params_t scan_param = {
.active = 0x0,
.interval = 40,
.window = 32,
.filter_policy = BLE_GAP_SCAN_FP_ACCEPT_ALL,
.timeout = 0,
.scan_phys = BLE_GAP_PHY_1MBPS,
};

Could you help me analyze the possible causes of this issue? Thanks a lot

  • Did you already setup the scan to be without a timeout?

    If so, considering the fact that the changes to priority of SD BLE observers helped, it is most likely the problem is in handling of the callbacks.

    A test to confirm this would be commenting out all scan report processing. If you want to keep the rest of the system the same, you could add a very simple counter to increment when scan reports come. The rest of the logic act upon this counter instead.

    If the test confirms, please try to offload all handlings outside of the scan report processing.

  • Thanks for the suggestion.

    When I tried to decompile SoftDevcie.hex, I found that the value of the RTC0 timer was used for some kind of assertion at the address 0x00014ce0, which caused the problem.

    Therefore, I decided to try using 32.768KHz divided from a 32M crystal oscillator (NRF_SDH_CLOCK_LF_SRC=2, NRF_CLOCK_LF_SRC_SYNTH), and the problem didn't occur again for several consecutive days.

    Therefore, I think there is something wrong with my external 32.768KHz crystal oscillator, and I am trying to replace it with those from different manufacturers to see if the problem can be solved.

    Thanks♪(・ω・)ノ

Related