众所周知,Flash 存储器的写入耐久性有限,因此读取也可能有上限,例如此 Flash 耐久性测试的结论(第 3 点)中提到的。
在微控制器上,代码通常存储在 Flash 中,并通过直接从 Flash 单元中获取代码字来执行。
(至少这在 8 位微控制器上最常见,一些 32 位微控制器可能有一些小缓冲区)。
根据特定的代码,可能会非常频繁地访问某个位置,例如如果在主执行路径上存在一些繁忙的循环,例如等待中断
(例如来自计时器,将执行同步到固定间隔)。
这可以平均每秒对单个 Flash 单元产生 100K 甚至更多(读取)访问(取决于时钟和特定代码)。
这样的代码真的会破坏它下面的 Flash 单元吗?
(在为微控制器设计代码时,是否有必要关注这个特殊问题?例如要运行多年的系统的一部分?当然 Flash 可以通过 CRC 定期验证,但这并不妨碍如果发生系统故障,只是故障更有可能以受控方式发生)