基于 RK3576 单板机的 eMMC 健康监控案例详解

电子说

1.4w人已加入

描述

前  言

本文主要介绍eMMC健康管理开发案例,实现读取单板机板载eMMC内部健康管理信息的功能。适用开发环境如下。

开发环境
 

Windows开发环境:Windows10 64bit、Windows7 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bit

系统版本:Tronlong-Desktop 22.04、Linux-6.1.115、U-Boot-2017.09

sysroot:rk3576-Tronlong-Desktop-22.04-sysroot-[版本号].tar.gz

应用开发交叉编译工具:gcc-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.tar.gz

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

emmc

1案例说明

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

程序流程图如下图所示。

emmc

2案例测试

将单板机启动后,请将案例lib目录下的所有日志库文件拷贝至单板机系统的"/usr/lib/"目录下,并将案例bin目录下emmc_get_info可执行文件拷贝至单板机系统的任意目录下,执行如下命令查看程序参数说明。

Target# ./emmc_get_info /dev/mmcblk0 -f h

emmc

参数解析:

-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/mmcblk0 -f c

emmcemmcemmc

(2)查询eMMC寿命状态信息

本次演示所使用的单板机,其板载eMMC的厂商为佰维存储,颗粒类型为MLC。

执行如下命令,查询eMMC寿命状态信息。

Target# ./emmc_get_info /dev/mmcblk0 -f bw

备注:目前单板机所有配置板载eMMC的厂商均为佰维存储。

emmcemmc

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~17次,相对eMMC的3000次可循环擦写次数来说,健康状态良好。

(2)eMMC Run Bad Pieces:3,即运行过程中产生的3个坏块数。

(3)Host Total_Write:78989MB,当前总数据写入量对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%。

emmc

2.2日志功能

程序首次执行后将自动生成zlog日志配置文件,并且该文件默认关闭日志Log信息。如需开启日志Log信息,请执行如下命令修改zlog.conf日志配置文件。

Target# vi zlog.conf

emmc

修改内容如下:

cat.* //取消注释

emmc

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

emmc

3案例编译

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

Host# source /home/tronlong/RK3576/environment

Host# make

emmc

4关键代码

(1)打印说明菜单。

emmc

(2)zlog初始化。

emmc

(3)创建zlog配置文件。

emmc

(4)读取csd寄存器信息。

emmc

(5)查看各eMMC品牌的寿命评估信息。

emmc


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分