/* Preliminary Header: Author: Mario Huettel */ .syntax unified .cpu cortex-m4 .thumb .type HardFault_PreHandler, %function .global HardFault_PreHandler .type HardFault_PreHandler, %function HardFault_PreHandler: TST LR, #4 // Test bit 2. If active => PSP was used, else MSP ITE EQ MRSEQ R0, MSP // Bit not set => MSP as argument MRSNE R0, PSP // Bit set => PSP LDR R1, =HardFault_Handler BX R1 //.weak HardFault_Handler //.thumb_set HardFault_Handler, HardFault_Handler_Default //HardFault_Handler_Default: //B HardFault_Handler_Default