Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 8 months ago.
How to write a Hard Fault Handler
What is the best way to handle faults?
Obviously a watch dog timer (WDT) is a good option.
Is there a way to code in mbed a Hard Fault Handler, something like the following: https://blog.feabhas.com/2013/02/developing-a-generic-hard-fault-handler-for-arm-cortex-m3cortex-m4/
Does the following code override the Default Hard Fault_Handler?
void HardFault_Handler(void) { while(1); }
1 Answer
9 years, 8 months ago.
This would be nice to have ! have you searched if any user did not implement those fault handlers for mbed? I haven't seen yet but might be around.
Yes your above code does overwrite as it's strong symbol and the default one is weak (those placed in the startup files.
Regards, 0xc0170
Trying to post a comment here was giving me a "Page Error" until I posted ??? under my question.
Where do I find the startup files?
posted by 07 Apr 2015I have found this on mbed: https://developer.mbed.org/forum/helloworld/topic/624/
and
http://developer.mbed.org/forum/mbed/topic/2712/
One code option was:
#include "mbed.h" extern "C" void HardFault_Handler() { error("Hard Fault!\n"); } DigitalOut myled(LED1); char * test; int main() { strcpy(test,"test"); while(1) { myled = 1; wait(0.2); myled = 0; wait(0.2); } }
and
// Reset_Handler // NMI_Handler // HardFault_Handler // MemManage_Handler // BusFault_Handler // UsageFault_Handler extern "C" void HardFault_Handler() { pc.printf("Hard Fault!\n"); //NVIC_SystemReset(); } extern "C" void NMI_Handler() { pc.printf("NMI Fault!\n"); //NVIC_SystemReset(); } extern "C" void MemManage_Handler() { pc.printf("MemManage Fault!\n"); //NVIC_SystemReset(); } extern "C" void BusFault_Handler() { pc.printf("BusFault Fault!\n"); //NVIC_SystemReset(); } extern "C" void UsageFault_Handler() { pc.printf("UsageFault Fault!\n"); //NVIC_SystemReset(); }
???
posted by -deleted- 07 Apr 2015You may also need this
Thank you.
posted by -deleted- 07 Apr 2015