使用STM32H753,我在存储区1扇区0(0x08000000
)中具有启动代码,该引导代码检测并跳转到存储区2扇区0(0x08100000
)中的应用程序代码。在应用代码中,我试图擦除并重写存储区1的扇区0,但是当我在复位后太早设置FLASHH7_CR_START
时,MCU锁定(没有故障处理程序输出)。
应用程序代码非常复杂,并启用了芯片的许多功能,但是既没有库交换也没有FLASH CRC。已知故障处理程序可以工作。
我尝试过的事情:
SR
中的错误,并清除所有用CCR
检测到的错误;没有发现错误WRP
和PRAR
寄存器;没有保护套引导代码不启用任何中断或缓存,并且应用程序代码写入VTOR
。
擦除STM32H7引导扇区(或最近执行的扇区)似乎还有其他时间敏感性。我想念什么?