重置后不久,尝试擦除存储区1,扇区0时,STM32H7挂起

时间:2019-07-09 15:59:54

标签: stm32 cortex-m

使用STM32H753,我在存储区1扇区0(0x08000000)中具有启动代码,该引导代码检测并跳转到存储区2扇区0(0x08100000)中的应用程序代码。在应用代码中,我试图擦除并重写存储区1的扇区0,但是当我在复位后太早设置FLASHH7_CR_START时,MCU锁定(没有故障处理程序输出)。

应用程序代码非常复杂,并启用了芯片的许多功能,但是既没有库交换也没有FLASH CRC。已知故障处理程序可以工作。

我尝试过的事情:

  • 从复位等待50到100毫秒,然后才能擦除;成功
  • 重定向擦除/重写到存储区1,扇区5;成功(无需等待)
  • 应用程序代码禁用高速缓存;仍然失败
  • 在复位后和100ms之后比较FLASHH7寄存器组;没有变化
  • 检查SR中的错误,并清除所有用CCR检测到的错误;没有发现错误
  • 检查WRPPRAR寄存器;没有保护套
  • 检查勘误表rev6(2019年6月19日);没有相关问题

引导代码不启用任何中断或缓存,并且应用程序代码写入VTOR

擦除STM32H7引导扇区(或最近执行的扇区)似乎还有其他时间敏感性。我想念什么?

1 个答案:

答案 0 :(得分:2)

由于图像而发布作为答案。

我怀疑。可能是硅虫

enter image description here

这是勘误页面中的内容。检查您的uC模型(您实际上隐藏了它:)),然后为您的模型下载勘误表。