分享
UTILITY-FLASH-ECC-FAULT User Manual
输入“/”快速插入内容
UTILITY-FLASH-ECC-FAULT User Manual
用户2753
用户2753
用户2999
用户2999
2025年9月11日修改
🌤️版本信息:
•
YCT
: v2.7.0
•
SDK
: YTM32B1MC0/sdk 1.3.1
•
UtilityFlashEccFault
: v0.8.0
•
EVB
: YTM32B1MC0-EVB-Q64 Rev.B
1.
前言
UtilityFlashEccFault 是一个
云途
实现的针对YTM32B1LE1/ YTM32B1MC0
/ YTM32B1HA0 Flash Un-Recovery ECC Error会造成HardFault芯片的一个通用处理的库。
本文将深入探讨 UtilityFlashEccFault 的各个方面,帮助读者全面了解其功能和应用。具体内容如下:
•
🌻 Flash ECC 相关介绍
•
在这一部分,我们将介绍 Flash ECC的机制。
•
🌻 UtilityFlashEccFault UtilityFlashEccFault 原理介绍
•
在这一部分,我们将介绍 UtilityFlashEccFault 的机制和实现原理。
•
🌻 UtilityFlashEccFault UtilityFlashEccFault 常用API介绍
•
在这一部分,我们将逐一介绍 UtilityFlashEccFault API 的功能和使用方法。
•
🌻 以 YTM32B1MC0 系列 MCU 为例,配置一个
示例工程
•
为了帮助读者更好地理解和应用 UtilityFlashEccFault ,我们将以 YTM32B1MC0 系列 MCU 为例,配置一个完整的示例
2.
ECC 机制
2.1
ECC介绍
ECC:Error Correction Code,纠错码。是一种用于检测和纠正 Flash 存储器中的错误的技术。
YTM32 全系列 Flash 都带有 ECC,错误校验。在读取到 Recovery Error(单 bit 错误)后,可以进行自动纠错。
读取到 Unrecovery Error(2 bit 错误)后,会进行报错。
•
编码过程:
当数据被写入Flash存储器时,ECC编码器会根据特定的算法对数据进行编码。
编码后的数据(包括数据位和冗余ECC位)一起被存储在存储器中。
•
解码与校验过程:
在读取数据时,ECC解码器会对读取的数据进行解码,并与存储器中的ECC位进行比较。
如果发现错误,ECC解码器会尝试根据ECC位的信息来纠正错误,并输出正确的数据,并在EFM状态寄存器中置位对应状态。
下图原理简化举例说明: 数据位4bit + ECC位3bit:
假定3个不同颜色的圆相交的4个小格代表着4bit数据,与其他圆没有交集的那个格代表着ECC bit。
人为设定一个规则:每个圆内的4个bit异或结果要为0。
当4bit数据位确定后(假使如图1001),即可确定唯一ECC bit结果:a 4=1;a5=0;a 6=1。
发生任何1bit跳变(包括ECC bit),均可被检查出来并纠正,达到ECC的目的。
例如YTM32B1MC0的RM手册中则写明了,所用的Flash program单元word共 72bits = 64bits data + 8bits ECC
Data就是可以直接访问的数据,8bits ECC是不可被直接访问的,但在读取Data时硬件会自动的使用ECC来校验Data。