diff options
-rw-r--r-- | src/common/includes/Core/common.h | 1 | ||||
-rw-r--r-- | src/common/sourcelist.txt | 1 | ||||
-rw-r--r-- | src/common/src/Core/common.c | 40 | ||||
-rw-r--r-- | src/glutt-o-logique/common.c | 40 | ||||
-rw-r--r-- | src/simulator/src/Core/common.c | 5 |
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() { -} |