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

Parents
  • There is a reason why this SDK is no longer recommended for new designs. Switch to NCS ASAP.

    Typical reason for the SD Asserts is that you forgot to properly set the interrupt priority for one of the peripherials. Its one of the restrictions when using softdevice.

  • I searched all my code with the keyword "_OBSERVER" and found that I only used one NRF_SDH_BLE_OBSERVER to handle Bluetooth scanning events. For chip peripherals, I only used UART, SAADC, and RTC.

    The priority of the only NRF_SDH_BLE_OBSERVER is 3, In the event handling of NRF_SDH_BLE_OBSERVER, only data from BLE_GAP_EVT_ADV_REPORT is stored in the buffer array, with no other operations performed. All priorities use the default configuration of the SDK. 

Reply
  • I searched all my code with the keyword "_OBSERVER" and found that I only used one NRF_SDH_BLE_OBSERVER to handle Bluetooth scanning events. For chip peripherals, I only used UART, SAADC, and RTC.

    The priority of the only NRF_SDH_BLE_OBSERVER is 3, In the event handling of NRF_SDH_BLE_OBSERVER, only data from BLE_GAP_EVT_ADV_REPORT is stored in the buffer array, with no other operations performed. All priorities use the default configuration of the SDK. 

Children
No Data
Related