Hi,
I am working QN9080 version C, SDK 6.2, test project working peripheral and central BLE, and during peripheral connection while sending data, below hard fault handle fired in llc_end_evt_defer with Valid Bus Fault Address in a reserved area 0x400d678, till now we don't have solid way to reproduce that hard fault, except keep peripheral BLE connected while sending/receive and it will fire after some time.
Our BLE connection interval is 15 ms.
[2019-05-29 19:05:26.811] (283209)(ERR)(hard_fault_handler_c)(533)[HardFault handler]
[2019-05-29 19:05:26.827] (283209)(ERR)(hard_fault_handler_c)(535)R0 = 400371c
[2019-05-29 19:05:26.827] (283209)(ERR)(hard_fault_handler_c)(536)R1 = 4
[2019-05-29 19:05:26.843] (283209)(ERR)(hard_fault_handler_c)(537)R2 = 0
[2019-05-29 19:05:26.843] (283209)(ERR)(hard_fault_handler_c)(538)R3 = 40400240
[2019-05-29 19:05:26.858] (283209)(ERR)(hard_fault_handler_c)(539)R12 = 3006e29
[2019-05-29 19:05:26.858] (283209)(ERR)(hard_fault_handler_c)(540)Stacked LR = 1df4f
[2019-05-29 19:05:26.858] (283209)(ERR)(hard_fault_handler_c)(541)Stacked PC = 19d08
[2019-05-29 19:05:26.874] (283209)(ERR)(hard_fault_handler_c)(542)Stacked PSR = 21000000
[2019-05-29 19:05:26.874] (283209)(ERR)(hard_fault_handler_c)(544)Current LR = ffffffe9
[2019-05-29 19:05:26.890] (283209)(ERR)(hard_fault_handler_c)(545)hardfault args adrr = 0x400d698
[2019-05-29 19:05:26.890] (283209)(ERR)(hard_fault_handler_c)(546)Current xPSR = 0x3
[2019-05-29 19:05:26.890] (283209)(ERR)(hard_fault_handler_c)(547)Current MSP = 0x400d678
[2019-05-29 19:05:26.905] (283209)(ERR)(hard_fault_handler_c)(548)Current PSP = 0x0
[2019-05-29 19:05:26.905] (283209)(ERR)(hard_fault_handler_c)(549)Current CONTROL = 0x0
[2019-05-29 19:05:26.921] (283209)(ERR)(hard_fault_handler_c)(551)Stack content at stack_start_addr = 0xa5a5a5a5
[2019-05-29 19:05:26.921] (283209)(ERR)(hard_fault_handler_c)(552)Stack content at stack_end_addr = 0xa5a5a5a5
[2019-05-29 19:05:26.936] (283209)(ERR)(hard_fault_handler_c)(554)current VTOR = 0x0
[2019-05-29 19:05:26.936] (283209)(ERR)(hard_fault_handler_c)(555)current HFSR = 0x40000000
[2019-05-29 19:05:26.952] (283209)(ERR)(hard_fault_handler_c)(556)current MMFAR = 0x40243fc
[2019-05-29 19:05:26.952] (283209)(ERR)(hard_fault_handler_c)(557)current BFAR = 0x40243fc
[2019-05-29 19:05:26.968] (283209)(ERR)(hard_fault_handler_c)(558)current ACTLR = 0x0
[2019-05-29 19:05:26.968] (283209)(ERR)(hard_fault_handler_c)(561)current CCR = 0x200
[2019-05-29 19:05:26.983] (283209)(ERR)(hard_fault_handler_c)(562)current AFSR = 0x0
[2019-05-29 19:05:26.983] (283209)(ERR)(hard_fault_handler_c)(563)Bus Fault (BFSR) = 0x82
[2019-05-29 19:05:26.999] (283209)(ERR)(hard_fault_handler_c)(566) - Valid Bus Fault Address
[2019-05-29 19:05:26.999] (283209)(ERR)(hard_fault_handler_c)(586) - Precise Data Bus Error
[2019-05-29 19:05:26.999] (283209)(ERR)(hard_fault_handler_c)(592)Memory Management Fault (MMSR) = 0x0
[2019-05-29 19:05:27.015] (283209)(ERR)(hard_fault_handler_c)(617)Usage Fault (UFSR) = 0x0
[2019-05-29 19:05:27.030] (283209)(ERR)(hard_fault_handler_c)(643)*****************************************
[2019-05-29 19:05:27.030] (283209)(ERR)(hard_fault_handler_c)(644) Hard Fault
[2019-05-29 19:05:27.046] (283209)(ERR)(hard_fault_handler_c)(645)*****************************************
Hello Mahfouz, I hope you're doing well!
I need to ask some questions so I can fully understand your issue:
What SDK version are you using? I can't find a 6.2 version. Could you please help me with a link?
What example code did you base your application on?
Are you using a custom board? Or are you using the Development Kit?
One thing to consider is the footprint of the program you're using, some of the examples use more Memory and FLASH storage than others, it's possible that you're running out of any of those two resources. Could you please check the BLE Release Notes pdf included in the SDK documentation to see the base footprint of the example you're using? To that, you have to add your application's memory and flash usage.
Best regards,
Sebastian