aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/includes/Core/common.h1
-rw-r--r--src/common/sourcelist.txt1
-rw-r--r--src/common/src/Core/common.c40
-rw-r--r--src/glutt-o-logique/common.c40
-rw-r--r--src/simulator/src/Core/common.c5
5 files changed, 39 insertions, 48 deletions
diff --git a/src/common/includes/Core/common.h b/src/common/includes/Core/common.h
index b483dfb..80739cf 100644
--- a/src/common/includes/Core/common.h
+++ b/src/common/includes/Core/common.h
@@ -58,4 +58,3 @@ int random_bool(void);
#define FAULT_SOURCE_USART 4
void trigger_fault(int source);
-void hard_fault_handler_extra();
diff --git a/src/common/sourcelist.txt b/src/common/sourcelist.txt
index 717b215..97cb298 100644
--- a/src/common/sourcelist.txt
+++ b/src/common/sourcelist.txt
@@ -1,2 +1,3 @@
src/GPIO/usart.c
src/GPS/gps.c
+src/Core/common.c
diff --git a/src/common/src/Core/common.c b/src/common/src/Core/common.c
index d04987a..6f608ad 100644
--- a/src/common/src/Core/common.c
+++ b/src/common/src/Core/common.c
@@ -211,43 +211,3 @@ void trigger_fault(int source)
while (1) {}
}
-void hard_fault_handler_c(uint32_t *hardfault_args)
-{
- uint32_t stacked_r0;
- uint32_t stacked_r1;
- uint32_t stacked_r2;
- uint32_t stacked_r3;
- uint32_t stacked_r12;
- uint32_t stacked_lr;
- uint32_t stacked_pc;
- uint32_t stacked_psr;
-
- stacked_r0 = hardfault_args[0];
- stacked_r1 = hardfault_args[1];
- stacked_r2 = hardfault_args[2];
- stacked_r3 = hardfault_args[3];
-
- stacked_r12 = hardfault_args[4];
- stacked_lr = hardfault_args[5];
- stacked_pc = hardfault_args[6];
- stacked_psr = hardfault_args[7];
-
- usart_debug_puts("\n\n[Hard fault handler - all numbers in hex]\n");
- usart_debug("R0 = %x\n", stacked_r0);
- usart_debug("R1 = %x\n", stacked_r1);
- usart_debug("R2 = %x\n", stacked_r2);
- usart_debug("R3 = %x\n", stacked_r3);
- usart_debug("R12 = %x\n", stacked_r12);
- usart_debug("LR [R14] = %x subroutine call return address\n", stacked_lr);
- usart_debug("PC [R15] = %x program counter\n", stacked_pc);
- usart_debug("PSR = %x\n", stacked_psr);
- usart_debug("BFAR = %x\n", (*((volatile unsigned long *)(0xE000ED38))));
- usart_debug("CFSR = %x\n", (*((volatile unsigned long *)(0xE000ED28))));
- usart_debug("HFSR = %x\n", (*((volatile unsigned long *)(0xE000ED2C))));
- usart_debug("DFSR = %x\n", (*((volatile unsigned long *)(0xE000ED30))));
- usart_debug("AFSR = %x\n", (*((volatile unsigned long *)(0xE000ED3C))));
-
- hard_fault_handler_extra();
-
- while (1);
-}
diff --git a/src/glutt-o-logique/common.c b/src/glutt-o-logique/common.c
index ba6bba8..d089091 100644
--- a/src/glutt-o-logique/common.c
+++ b/src/glutt-o-logique/common.c
@@ -23,9 +23,45 @@
*/
#include <stm32f4xx.h>
+#include "GPIO/usart.h"
-#include "../common/src/Core/common.c"
+void hard_fault_handler_c(uint32_t *hardfault_args)
+{
+ uint32_t stacked_r0;
+ uint32_t stacked_r1;
+ uint32_t stacked_r2;
+ uint32_t stacked_r3;
+ uint32_t stacked_r12;
+ uint32_t stacked_lr;
+ uint32_t stacked_pc;
+ uint32_t stacked_psr;
-void hard_fault_handler_extra() {
+ stacked_r0 = hardfault_args[0];
+ stacked_r1 = hardfault_args[1];
+ stacked_r2 = hardfault_args[2];
+ stacked_r3 = hardfault_args[3];
+
+ stacked_r12 = hardfault_args[4];
+ stacked_lr = hardfault_args[5];
+ stacked_pc = hardfault_args[6];
+ stacked_psr = hardfault_args[7];
+
+ usart_debug_puts("\n\n[Hard fault handler - all numbers in hex]\n");
+ usart_debug("R0 = %x\n", stacked_r0);
+ usart_debug("R1 = %x\n", stacked_r1);
+ usart_debug("R2 = %x\n", stacked_r2);
+ usart_debug("R3 = %x\n", stacked_r3);
+ usart_debug("R12 = %x\n", stacked_r12);
+ usart_debug("LR [R14] = %x subroutine call return address\n", stacked_lr);
+ usart_debug("PC [R15] = %x program counter\n", stacked_pc);
+ usart_debug("PSR = %x\n", stacked_psr);
+ usart_debug("BFAR = %x\n", (*((volatile unsigned long *)(0xE000ED38))));
+ usart_debug("CFSR = %x\n", (*((volatile unsigned long *)(0xE000ED28))));
+ usart_debug("HFSR = %x\n", (*((volatile unsigned long *)(0xE000ED2C))));
+ usart_debug("DFSR = %x\n", (*((volatile unsigned long *)(0xE000ED30))));
+ usart_debug("AFSR = %x\n", (*((volatile unsigned long *)(0xE000ED3C))));
usart_debug("SCB_SHCSR = %x\n", SCB->SHCSR);
+
+ while (1);
}
+
diff --git a/src/simulator/src/Core/common.c b/src/simulator/src/Core/common.c
index 00afc2c..8b2fe09 100644
--- a/src/simulator/src/Core/common.c
+++ b/src/simulator/src/Core/common.c
@@ -1,7 +1,2 @@
void __disable_irq() {
}
-
-#include "../../../common/src/Core/common.c"
-
-void hard_fault_handler_extra() {
-}