aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/arm-m/exceptions.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/arm-m/exceptions.c b/arch/arm/arm-m/exceptions.c
index b8a8d44b..b8c19644 100644
--- a/arch/arm/arm-m/exceptions.c
+++ b/arch/arm/arm-m/exceptions.c
@@ -23,6 +23,7 @@
#include <debug.h>
#include <compiler.h>
#include <stdint.h>
+#include <kernel/thread.h>
#include <arch/arm/cm.h>
static void dump_frame(const struct arm_cm_exception_frame *frame)
@@ -40,6 +41,7 @@ static void dump_frame(const struct arm_cm_exception_frame *frame)
static void hardfault(struct arm_cm_exception_frame *frame)
{
+ inc_critical_section();
printf("hardfault: ");
dump_frame(frame);
@@ -50,6 +52,7 @@ static void hardfault(struct arm_cm_exception_frame *frame)
static void usagefault(struct arm_cm_exception_frame *frame)
{
+ inc_critical_section();
printf("usagefault: ");
dump_frame(frame);
@@ -58,6 +61,7 @@ static void usagefault(struct arm_cm_exception_frame *frame)
static void busfault(struct arm_cm_exception_frame *frame)
{
+ inc_critical_section();
printf("busfault: ");
dump_frame(frame);
@@ -68,6 +72,7 @@ static void busfault(struct arm_cm_exception_frame *frame)
void _nmi(void)
{
+ inc_critical_section();
printf("nmi\n");
halt();
}
@@ -85,6 +90,7 @@ __NAKED void _hardfault(void)
void _memmanage(void)
{
+ inc_critical_section();
printf("memmanage\n");
halt();
}
@@ -114,6 +120,7 @@ void _usagefault(void)
/* systick handler */
void __WEAK _systick(void)
{
+ inc_critical_section();
printf("systick\n");
halt();
}