.syntax unified .thumb .section .text .global HardFault_Handler .type HardFault_Handler, %function HardFault_Handler: // Проверяем бит 2 в LR: если 1, то использовался PSP, иначе MSP TST LR, #4 BNE UsePSP UseMSP: MRS R0, MSP // R0 = указатель MSP MOVS R1, #0 // R1 = флаг 0 (MSP) B CallHandler UsePSP: MRS R0, PSP // R0 = указатель PSP MOVS R1, #1 // R1 = флаг 1 (PSP) CallHandler: LDR R2, =HardFault_C_Handler BX R2 .size HardFault_Handler, . - HardFault_Handler