知识卡片
擦写阶段最危险
内容
闪存擦除和编程期间,旧代码可能已被删除而新代码尚未完整写入,断电或校验失败都会让设备变砖。发散:更新流程的可靠性要围绕这一小段危险窗口设计,而不是围绕正常路径设计。
参考来源
- 位置:《嵌入式系统设计与实践》第7章《更新代码》"7.3.4 危险时刻:擦除和编程"一节(源文件:_epub-src/OEBPS/text00106.html)
- 结论依据:原文明确"到目前为止,还没有对系统造成任何损坏。如果系统重置,那么可能发生的最坏情况是正常操作被破坏了。但是,在擦除旧代码后,就不是那么回事了。几乎所有出错的情况都是突发性的系统失效,包括掉电",说明擦除到新代码写完之间的窗口是唯一真正危险的阶段。
- 原始内容:到目前为止,还没有对系统造成任何损坏。如果系统重置,那么可能发生的最坏情况是正常操作被破坏了。但是,在擦除旧代码后,就不是那么回事了。几乎所有出错的情况都是突发性的系统失效,包括掉电。因此,在擦除旧代码之前,要屏蔽所有的中断(没有任何理由可以不这么做),然后才可以写入新代码。