# 闪存：在地址 0x08010000 检测到 ECC 错误，数据损坏

- **ID:** `embedded/flash-ecc-error-detected`
- **领域:** embedded
- **类别:** hardware_error
- **验证级别:** ai_generated
- **修复率:** 70%

## 根因

闪存 ECC 因辐射或老化导致的位翻转检测到不可纠正错误，造成数据损坏。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| STM32Cube_FW_U5 V1.3.0 | active | — | — |
| HAL V2.0.0 | active | — | — |

## 解决方案

1. ```
   在链接脚本中映射出故障闪存扇区：将 `*(.faulty_sector)` 添加到自定义段并排除使用。
   ```
2. ```
   使用闪存冗余，将关键数据存储到多个位置并采用多数投票机制。
   ```
3. ```
   ECC 错误后触发软件复位以尝试恢复：`NVIC_SystemReset();`
   ```

## 无效尝试

- **** — Re-flashing firmware does not fix hardware-level ECC errors in specific sectors. (90% 失败率)
- **** — Disabling ECC in flash controller removes error detection but leaves data vulnerable. (70% 失败率)
