From d487f58c6be4ed22f735d12861b59b85c3a924b9 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期六, 20 十二月 2025 21:53:25 +0800
Subject: [PATCH] HTTP下载路径文件成功,解析路径文件成功,CRC用的软件,硬件解析不对。准备改BOOT
---
STM32H743/Core/Src/stm32h7xx_it.c | 75 ++-----------------------------------
1 files changed, 5 insertions(+), 70 deletions(-)
diff --git a/STM32H743/Core/Src/stm32h7xx_it.c b/STM32H743/Core/Src/stm32h7xx_it.c
index eac2b1a..78808b0 100644
--- a/STM32H743/Core/Src/stm32h7xx_it.c
+++ b/STM32H743/Core/Src/stm32h7xx_it.c
@@ -56,27 +56,6 @@
/* USER CODE END 0 */
-/* store fault info for post-mortem inspection */
-typedef struct {
- volatile uint32_t r0;
- volatile uint32_t r1;
- volatile uint32_t r2;
- volatile uint32_t r3;
- volatile uint32_t r12;
- volatile uint32_t lr;
- volatile uint32_t pc;
- volatile uint32_t psr;
- volatile uint32_t cfsr;
- volatile uint32_t hfsr;
- volatile uint32_t mmfar;
- volatile uint32_t bfar;
-} MemFaultInfo_t;
-
-volatile MemFaultInfo_t g_memFaultInfo;
-
-void MemManage_Handler_C(uint32_t *pulFaultStackAddress);
-
-
/* External variables --------------------------------------------------------*/
extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3;
@@ -140,59 +119,15 @@
/**
* @brief This function handles Memory management fault.
*/
-//__attribute__((naked)) void MemManage_Handler(void)
-//{
-// __ASM volatile(
-// "TST LR, #4\n\t"
-// "ITE EQ\n\t"
-// "MRSEQ R0, MSP\n\t"
-// "MRSNE R0, PSP\n\t"
-// "B MemManage_Handler_C\n\t"
-// );
-//}
-
-/* C handler: pulFaultStackAddress points to stacked r0, r1, r2, r3, r12, lr, pc, psr */
-void MemManage_Handler_C(uint32_t *pulFaultStackAddress)
+void MemManage_Handler(void)
{
- /* save stacked registers */
- g_memFaultInfo.r0 = pulFaultStackAddress[0];
- g_memFaultInfo.r1 = pulFaultStackAddress[1];
- g_memFaultInfo.r2 = pulFaultStackAddress[2];
- g_memFaultInfo.r3 = pulFaultStackAddress[3];
- g_memFaultInfo.r12 = pulFaultStackAddress[4];
- g_memFaultInfo.lr = pulFaultStackAddress[5];
- g_memFaultInfo.pc = pulFaultStackAddress[6];
- g_memFaultInfo.psr = pulFaultStackAddress[7];
+ /* USER CODE BEGIN MemoryManagement_IRQn 0 */
- /* save fault status registers */
- g_memFaultInfo.cfsr = SCB->CFSR;
- g_memFaultInfo.hfsr = SCB->HFSR;
- g_memFaultInfo.mmfar = SCB->MMFAR;
- g_memFaultInfo.bfar = SCB->BFAR;
-
- /* try to print brief info to debug UART (may not always succeed in fault context) */
- DBG_Printf("*** MemManage Fault ***\r\n");
- DBG_Printf("CFSR=0x%08x HFSR=0x%08x MMFAR=0x%08x BFAR=0x%08x\r\n",
- (unsigned)g_memFaultInfo.cfsr,
- (unsigned)g_memFaultInfo.hfsr,
- (unsigned)g_memFaultInfo.mmfar,
- (unsigned)g_memFaultInfo.bfar);
- DBG_Printf("R0=0x%08x R1=0x%08x R2=0x%08x R3=0x%08x\r\n",
- (unsigned)g_memFaultInfo.r0,
- (unsigned)g_memFaultInfo.r1,
- (unsigned)g_memFaultInfo.r2,
- (unsigned)g_memFaultInfo.r3);
- DBG_Printf("R12=0x%08x LR=0x%08x PC=0x%08x PSR=0x%08x\r\n",
- (unsigned)g_memFaultInfo.r12,
- (unsigned)g_memFaultInfo.lr,
- (unsigned)g_memFaultInfo.pc,
- (unsigned)g_memFaultInfo.psr);
-
- /* break here for debugger, then loop forever */
- __asm volatile ("BKPT #0");
+ /* USER CODE END MemoryManagement_IRQn 0 */
while (1)
{
- __asm volatile ("WFI");
+ /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+ /* USER CODE END W1_MemoryManagement_IRQn 0 */
}
}
--
Gitblit v1.10.0