embedded
hardware_error
ai_generated
partial
闪存:在地址 0x08010000 检测到 ECC 错误,数据损坏
Flash: ECC error detected at address 0x08010000, data corruption
ID: embedded/flash-ecc-error-detected
70%修复率
81%置信度
1证据数
2024-04-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| STM32Cube_FW_U5 V1.3.0 | active | — | — | — |
| HAL V2.0.0 | active | — | — | — |
根因分析
闪存 ECC 因辐射或老化导致的位翻转检测到不可纠正错误,造成数据损坏。
English
Flash memory ECC detected uncorrectable error due to bit-flip from radiation or aging, causing data corruption.
官方文档
https://www.st.com/resource/en/application_note/an5342.pdf解决方案
-
在链接脚本中映射出故障闪存扇区:将 `*(.faulty_sector)` 添加到自定义段并排除使用。
-
使用闪存冗余,将关键数据存储到多个位置并采用多数投票机制。
-
ECC 错误后触发软件复位以尝试恢复:`NVIC_SystemReset();`
无效尝试
常见但无效的做法:
-
90% 失败
Re-flashing firmware does not fix hardware-level ECC errors in specific sectors.
-
70% 失败
Disabling ECC in flash controller removes error detection but leaves data vulnerable.