前 言
本文主要介绍eMMC健康管理开发案例,实现读取单板机板载eMMC内部健康管理信息的功能。适用开发环境如下。
开发环境
Windows开发环境:Windows1064bit、Windows764bit
Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit
系统版本:Tronlong-Desktop 20.04、Linux-5.10.209、U-Boot-2017.09
sysroot:rk3562-Tronlong-Desktop-20.04-sysroot-[版本号].tar.gz
应用开发交叉编译工具:gcc-aarch64-linux-gnu_9.4.0.tar.gz
备注:本文基于2GByte LPDDR4X、16GByte eMMC(厂家:佰维存储,颗粒类型:MLC)配置单板机进行演示。
术语表
为便于阅读,下表对文出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

注意事项
我司提供的eMMC健康管理开发案例emmc_get_info位于产品资料“4-软件资料Demobase-demos”目录下,具体说明如下。

1案例说明
案例功能:通过向程序传入eMMC的设备节点路径、品牌等参数,实现读取eMMC内部健康管理信息的功能。该程序对获取的信息进行整理后打印输出,并同步记录日志,便于后续查阅。
程序流程图如下图所示。

图 1
2案例测试
单板机启动,请将案例"srclib"目录下的所有日志库文件拷贝至单板机系统的"/usr/lib/"目录下,并将案例bin目录下emmc_get_info可执行文件拷贝至单板机系统的任意目录下,执行如下命令查看程序参数说明。
Target#./emmc_get_info /dev/mmcblk0 -f h

图 2
参数解析:
-f:命令格式;
-c:查询eMMC extcsd;
-h:查看帮助菜单;
-bw:查询佰维存储品牌eMMC寿命评估信息;
-jbl:查询江波龙品牌eMMC寿命评估信息;
-ky:查询康盈品牌eMMC寿命评估信息。
信息查询
(1)查询eMMC的EXT_CSD寄存器内容
eMMC作为广泛应用于移动设备、嵌入式系统的存储解决方案,其功能配置、状态监控和高级特性主要通过EXT_CSD寄存器实现。
执行如下命令,可查询eMMC的EXT_CSD寄存器(扩展配置寄存器)内容。
Target#./emmc_get_info /dev/mmcblk0 -f c

图 3

图 4

图 5

图 6
(2)查询eMMC寿命状态信息
本次演示所使用的单板机,其板载eMMC的厂商为佰维存储,颗粒类型为MLC。
执行如下命令,查询eMMC寿命状态信息。
Target#./emmc_get_info /dev/mmcblk0 -f bw
备注:目前单板机所有配置板载eMMC的厂商均为佰维存储。

图 7

eMMC的颗粒类型有SLC、MLC、TLC等,它们在存储数据的方式、性能、寿命以及成本等方面存在一定差异。SLC(Single-Level Cell)为单层存储单元,特点是寿命长、速度快,通常用于缓存或关键数据。MLC/TLC(Multi/Triple-Level Cell)为多层存储单元,容量大但寿命较短,用于主存储区。
本次演示所使用的单板机,其板载eMMC颗粒类型为MLC。以下对本次获取的eMMC相关信息说明如下:
(1)MLC_TLC Min_Erase_Count、MLC_TLC Max_Erase_Count、MLC_TLC Avg_Erase_Count擦写次数分布在1~22次,相对eMMC的3000次可循环擦写次数来说,健康状态良好。
(2)eMMC Run Bad Pieces:4,即运行过程中产生的4个坏块数。
(3)Host Total_Write:37481MB,当前总数据写入量对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%。

日志功能
程序首次执行后将自动生成zlog日志配置文件,并且该文件默认关闭日志Log信息。如需开启日志Log信息,请执行如下命令修改zlog.conf日志配置文件。
Target#vi zlog.conf
图 8
修改内容如下:
cat.* //取消注释

图 9
再次运行程序将在当前目录下生成日志文件zlog.log。

图 10
3案例编译
请将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考《系统开发手册》文档安装LinuxSDK并完成LinuxSDK编译。在案例src目录执行如下命令,配置交叉编译工具链环境变量,进行案例编译。编译完成后,将在当前目录下生成可执行文件。
Host#source /home/tronlong/RK3562/environment
Host#make

图 11
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
审核编辑 黄宇
-
嵌入式
+关注
关注
5209文章
20625浏览量
336758 -
单板机
+关注
关注
1文章
53浏览量
18921 -
健康监测
+关注
关注
1文章
101浏览量
25690 -
emmc
+关注
关注
7文章
274浏览量
56268 -
RK3562
+关注
关注
0文章
107浏览量
744
发布评论请先 登录
RK3576 单板机 C/Python/MQTT 应用开发手册(一)
RK3576 单板机 LinuxSDK 开发与系统定制手册(二)
RK3576 单板机系统使用手册:配置、升级与组件安装指南(三)
RK3576 单板机系统使用手册:配置、升级与组件安装指南(二)
RK3576 单板机系统使用手册:配置、升级与组件安装指南(一)
RK3562 单板机嵌入式 ROS2 开发指南:环境搭建与工程编译
RK3562 单板机多媒体开发完全手册:视频输入输出与 GStreamer 案例详解(二)
RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(二)
RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(一)
RK3562 单板机 Linux 应用开发实战手册:LED/CAN/TCP/UART 案例与 Python 开发(二)
RK3562 单板机 Linux-RT 系统开发指南:内核配置、实时性优化与案例详解
RK3562 单板机系统开发完全手册:U-Boot/Kernel/Rootfs 开发与性能优化
3562 单板机 Linux 系统固化完全指南:从 SD 卡启动到 eMMC 永久部署
RK3562单板机系统使用与开发手册:基础操作、升级部署与工具链配置(一)
RK3562 单板机嵌入式 eMMC 健康监测开发指南:数据采集与状态分析
评论