陈工-创龙科技 发表于 6 天前

DR1 系列评估板 eMMC 健康管理案例开发手册:信息查询与寿命监控

前言本文主要介绍eMMC健康管理开发案例,实现读取核心板板载eMMC内部健康管理信息的功能。适用开发环境如下。开发环境Windows开发环境:Windows 10 64bitLinux开发环境:VMware16.2.5、Ubuntu22.04.4 64bitLinuxSDK开发包:LinuxSDK-[版本号](基于SDK_2025.1)交叉编译工具链:应用开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnuU-Boot、内核开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu评估板系统版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02备注:本文基于8GByte eMMC(厂家:佰维存储,颗粒类型:MLC(PSLC技术))、1GByte DDR配置核心板进行演示。术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。https://file1.elecfans.com/web3/M00/48/A0/wKgZO2lxzl6AXsxwAAAroCaAQfU075.png注意事项我司提供的eMMC健康管理开发案例emmc_get_info位于产品资料“4-软件资料\Demo\base-demos\”目录下,具体说明如下。
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzlqAIXx6AAANx9l70mU682.png
1案例说明案例功能:通过向程序传入eMMC的设备节点路径、品牌等参数,实现读取eMMC内部健康管理信息的功能。该程序对获取的信息进行整理后打印输出,并同步记录日志,便于**查阅。程序流程图如下图所示。
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzlGATxrJAABCtksia64001.png
图 1
2案例测试评估板启动,请将案例lib目录下的所有日志库文件拷贝至评估板文件系统的"/usr/lib"目录下,并将案例bin目录下emmc_get_info可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。Target# ./emmc_get_info /dev/mmcblk -f h
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzkeAKnr1AAAmFtpKWoU478.png
图 2
参数解析:-f:命令格式;-c:查询eMMC extcsd;-h:查看帮助菜单;-bw:查询佰维存储品牌eMMC寿命评估信息;-jbl:查询江波龙品牌eMMC寿命评估信息;-ky:查询康盈品牌eMMC寿命评估信息。2.1信息查询(1)查询eMMC的EXT_CSD寄存器内容eMMC作为广泛应用于移动设备、嵌入式系统的存储解决方案,其功能配置、状态监控和高级特性主要通过EXT_CSD寄存器实现。执行如下命令,可查询eMMC的EXT_CSD寄存器(扩展配置寄存器)内容。Target# ./emmc_get_info /dev/mmcblk1 -f c
https://file1.elecfans.com/web3/M00/48/A0/wKgZO2lxziaAHa6DAACtZ_iXWZw932.png
图 3
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxziaAJJLtAADClIkBLdY762.png
图 4
https://file1.elecfans.com/web3/M00/48/A0/wKgZO2lxziaACQ8fAABhTPUYs3A527.png
图 5
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxziaANsiAAACRzaPUgvA978.png
图 6
(2)查询eMMC寿命状态信息本次演示所使用的核心板,其板载eMMC厂商为佰维存储,颗粒类型为MLC(采用PSLC技术)。执行如下命令,查询eMMC寿命状态信息。Target# ./emmc_get_info /dev/mmcblk1 -f bw备注:参数“bw”需根据实际eMMC厂商修改,否则将无法查询eMMC寿命状态信息。
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzgWAegYrAAOieijOFJE638.png
图 7
https://file1.elecfans.com/web3/M00/48/A0/wKgZO2lxzf2AE-B6AABMfN78aII902.png表 3 打印结果
eMMC的颗粒类型有SLC、MLC、TLC等,它们在存储数据的方式、性能、寿命以及成本等方面存在一定差异。SLC(Single-Level Cell)为单层存储单元,特点是寿命长、速度快,通常用于缓存或关键数据。MLC/TLC(Multi/Triple-Level Cell)为多层存储单元,容量大但寿命较短,用于主存储区。本次演示所使用的核心板,其板载eMMC采用PSLC技术,程序会将其识别为SLC颗粒。以下对本次获取的eMMC相关信息说明如下:(1)SLC Min_Erase_Count、SLC Max_Erase_Count、SLC Avg_Erase_Count擦写次数分布在0~1次,相对eMMC的3000次可循环擦写次数来说,健康状态良好。(2)eMMC Run Bad Pieces:3,即运行过程中产生的3个坏块数。(3)Host Total_Write:3650MB,当前总数据写入量较小,对eMMC寿命几乎无影响。(4)eMMC Life Time Estimation A:0x00,基于SLC颗粒类型eMMC的最大擦写次数磨损的寿命预估A。(5)eMMC Life Time Estimation B:0x01,基于MLC/TLC颗粒类型eMMC的最大擦写次数磨损的寿命预估B。(6)00%-10% device life time used,说明eMMC消耗寿命≤10%。https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxzmqATmWCAAAVV0J-jmY445.png
2.2日志功能程序首次执行后将自动生成zlog.conf日志配置文件,并且该文件默认关闭日志Log信息。如需开启日志Log信息,请执行如下命令修改zlog.conf日志配置文件。Target#vi zlog.conf

https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzoyAfU54AAAEjsMzodM648.png
图 8修改内容如下:
cat.* //取消注释
https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxzpmAXU8CAAAeTea_Et4773.png
图 9
再次运行程序将在当前目录下生成日志文件zlog.log。
https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxzqeAQj9WAACbaRz95vA192.png
图 10
3关键代码(1)打印说明菜单。
https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxzrOAVLV_AAA-kLlCTlA854.png
图 11 mian.c
(2)zlog初始化。
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzrqAJ2r4AAB6hYLjMSI729.png
图 12 supplement_zlog.c
(3)创建zlog配置文件。
https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxzsOAN5GIAAA1xQVnfrE887.png
图 13 supplement_zlog.c
(4)读取csd寄存器信息。
https://file1.elecfans.com/web3/M00/48/9F/wKgZPGlxzsuAGmUkAAChkkaRt00030.png
图 14 extra_mmc.c
(5)查看各eMMC品牌的寿命评估信息。
https://file1.elecfans.com/web3/M00/48/A1/wKgZO2lxztKAcA4sAAAyz0yKTac857.png
图 15 main.c
页: [1]
查看完整版本: DR1 系列评估板 eMMC 健康管理案例开发手册:信息查询与寿命监控