2381575_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2381575_zh-CN

2381575_zh-CN

MPC5647 闪存无法访问

我们使用的是 MPC5647 设备。

我们使用Trace32,将一个应用程序编程写入了内部闪存区域。编程过程刚开始(或刚一完成),目标硬件的电源就被切断了。

此事件发生后,便无法再访问应用区域中的闪存。通过Trace32访问Flash时,内存内容显示为"????????" ,或者"FFFFFFFF" 。我们怀疑是在Flash编程操作尚未完全结束之前就切断了电源。

在此情况下,应用闪存区域将无法使用,且只能通过执行 AN4521_MPC56xx C90FL Flash Recovery.pdf 中所述的出厂恢复程序来恢复闪存。执行恢复操作后,闪存即可再次使用。

我们希望了解以下内容:

  1. 是什么原因导致了这种现象?

    • 为什么在闪存编程过程中发生意外断电会导致无法访问该闪存块?

  2. 为什么不能直接对闪存进行重新编程呢?

    • 为什么在重新对闪存进行编程之前,必须先执行恢复/出厂初始化操作?

    • 这是否与无效的 ECC 状态、不完整的擦除操作,还是其他闪存控制器内部状况有关?

如果能对Flash的内部工作原理进行详细说明,我们将不胜感激。

Re: MPC5647 Flash Inaccessibility

你好

此事件发生后,便无法再访问应用区域中的闪存。通过Trace32访问Flash时,内存内容显示为"????????" ,或者"FFFFFFFF" 。我们怀疑是在Flash编程操作尚未完全结束之前就切断了电源。

这表明闪存可能已损坏。

在此情况下,应用闪存区域将无法使用,且只能通过执行 AN4521_MPC56xx C90FL Flash Recovery.pdf 中所述的出厂恢复程序来恢复闪存。执行恢复操作后,闪存即可再次使用。

这肯定是编程过程中因断电导致的闪存损坏。闪存中存在大量ECC错误,这就是为什么你在跟踪信息中看到“?????”的原因。

为什么在闪存编程过程中发生意外断电会导致无法访问该闪存块?

简而言之,如果您未完成编程或进行了擦除,闪存数据将出现不匹配,并伴随ECC症状。


  • 为什么在重新对闪存进行编程之前,必须先执行恢复/出厂初始化操作?

标准程序命令期望获得一个已彻底擦除的块
中断后:

控制器检测到无效状态 → 拒绝命令

因此:

擦除/编程序列始终无法正确启动
访问可能被阻止或返回虚假数据

  • 这是否与无效的 ECC 状态、不完整的擦除操作,还是其他闪存控制器内部状况有关?

因电源中断而进入ECC状态。

顺祝商祺!

Peter



Tags (1)
No ratings
Version history
Last update:
‎06-17-2026 02:28 AM
Updated by: