前 言
本文主要介紹eMMC健康管理開發(fā)案例,實(shí)現(xiàn)讀取核心板板載eMMC內(nèi)部健康管理信息的功能。適用開發(fā)環(huán)境如下。
開發(fā)環(huán)境
Windows開發(fā)環(huán)境:Windows 10 64bit
Linux開發(fā)環(huán)境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK開發(fā)包:LinuxSDK-[版本號](基于SDK_2025.1)
交叉編譯工具鏈:
應(yīng)用開發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
U-Boot、內(nèi)核開發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
評估板系統(tǒng)版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02
備注:本文基于8GByteeMMC(廠家:佰維存儲,顆粒類型:MLC(PSLC技術(shù)))、1GByteDDR配置核心板進(jìn)行演示。
術(shù)語表
為便于閱讀,下表對文檔出現(xiàn)的關(guān)鍵術(shù)語進(jìn)行解釋;對于廣泛認(rèn)同釋義的術(shù)語,在此不做注釋。

注意事項(xiàng)
我司提供的eMMC健康管理開發(fā)案例emmc_get_info位于產(chǎn)品資料“4-軟件資料Demobase-demos”目錄下,具體說明如下。

1案例說明
案例功能:通過向程序傳入eMMC的設(shè)備節(jié)點(diǎn)路徑、品牌等參數(shù),實(shí)現(xiàn)讀取eMMC內(nèi)部健康管理信息的功能。該程序?qū)Λ@取的信息進(jìn)行整理后打印輸出,并同步記錄日志,便于后續(xù)查閱。
程序流程圖如下圖所示。
圖 1
2案例測試
評估板啟動(dòng),請將案例lib目錄下的所有日志庫文件拷貝至評估板文件系統(tǒng)的"/usr/lib"目錄下,并將案例bin目錄下emmc_get_info可執(zhí)行文件拷貝至評估板文件系統(tǒng)的任意目錄下,執(zhí)行如下命令查看程序參數(shù)說明。
Target# ./emmc_get_info /dev/mmcblk -f h
圖 2
參數(shù)解析:
-f:命令格式;
-c:查詢eMMC extcsd;
-h:查看幫助菜單;
-bw:查詢佰維存儲品牌eMMC壽命評估信息;
-jbl:查詢江波龍品牌eMMC壽命評估信息;
-ky:查詢康盈品牌eMMC壽命評估信息。
2.1信息查詢
(1)查詢eMMC的EXT_CSD寄存器內(nèi)容
eMMC作為廣泛應(yīng)用于移動(dòng)設(shè)備、嵌入式系統(tǒng)的存儲解決方案,其功能配置、狀態(tài)監(jiān)控和高級特性主要通過EXT_CSD寄存器實(shí)現(xiàn)。
執(zhí)行如下命令,可查詢eMMC的EXT_CSD寄存器(擴(kuò)展配置寄存器)內(nèi)容。
Target# ./emmc_get_info /dev/mmcblk1 -f c
圖 3
圖 4
圖 5
圖 6
(2)查詢eMMC壽命狀態(tài)信息
本次演示所使用的核心板,其板載eMMC廠商為佰維存儲,顆粒類型為MLC(采用PSLC技術(shù))。
執(zhí)行如下命令,查詢eMMC壽命狀態(tài)信息。
Target# ./emmc_get_info /dev/mmcblk1 -f bw
備注:參數(shù)“bw”需根據(jù)實(shí)際eMMC廠商修改,否則將無法查詢eMMC壽命狀態(tài)信息。
圖 7
表 3?打印結(jié)果
eMMC的顆粒類型有SLC、MLC、TLC等,它們在存儲數(shù)據(jù)的方式、性能、壽命以及成本等方面存在一定差異。SLC(Single-Level Cell)為單層存儲單元,特點(diǎn)是壽命長、速度快,通常用于緩存或關(guān)鍵數(shù)據(jù)。MLC/TLC(Multi/Triple-Level Cell)為多層存儲單元,容量大但壽命較短,用于主存儲區(qū)。
本次演示所使用的核心板,其板載eMMC采用PSLC技術(shù),程序會將其識別為SLC顆粒。以下對本次獲取的eMMC相關(guān)信息說明如下:
(1)SLC Min_Erase_Count、SLC Max_Erase_Count、SLC Avg_Erase_Count擦寫次數(shù)分布在0~1次,相對eMMC的3000次可循環(huán)擦寫次數(shù)來說,健康狀態(tài)良好。
(2)eMMC Run Bad Pieces:3,即運(yùn)行過程中產(chǎn)生的3個(gè)壞塊數(shù)。
(3)Host Total_Write:3650MB,當(dāng)前總數(shù)據(jù)寫入量較小,對eMMC壽命幾乎無影響。
(4)eMMC Life Time Estimation A:0x00,基于SLC顆粒類型eMMC的最大擦寫次數(shù)磨損的壽命預(yù)估A。
(5)eMMC Life Time Estimation B:0x01,基于MLC/TLC顆粒類型eMMC的最大擦寫次數(shù)磨損的壽命預(yù)估B。
(6)00%-10% device life time used,說明eMMC消耗壽命≤10%。

2.2日志功能
程序首次執(zhí)行后將自動(dòng)生成zlog.conf日志配置文件,并且該文件默認(rèn)關(guān)閉日志Log信息。如需開啟日志Log信息,請執(zhí)行如下命令修改zlog.conf日志配置文件。
Target# vi zlog.conf
圖 8
修改內(nèi)容如下:
cat.* //取消注釋
圖 9
再次運(yùn)行程序?qū)⒃诋?dāng)前目錄下生成日志文件zlog.log。
圖 10
3關(guān)鍵代碼
(1)打印說明菜單。
圖 11?mian.c
(2)zlog初始化。
圖 12?supplement_zlog.c
(3)創(chuàng)建zlog配置文件。
圖 13?supplement_zlog.c
(4)讀取csd寄存器信息。
圖 14?extra_mmc.c
(5)查看各eMMC品牌的壽命評估信息。
圖 15?main.c
審核編輯 黃宇
-
評估板
+關(guān)注
關(guān)注
1文章
931瀏覽量
31175 -
emmc
+關(guān)注
關(guān)注
7文章
261瀏覽量
55981
發(fā)布評論請先 登錄
DR1 系列評估板 PS 端裸機(jī)與 FreeRTOS 開發(fā)案例手冊
DR1 系列核心板 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(二)
DR1 系列核心板 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(一)
DR1 評估板 PL 端 FPGA 開發(fā)完全指南:基礎(chǔ)案例與 ADC 采集模塊詳解(一)
DR1M90 評估板 TD-FD 工程與 Linux 多場景應(yīng)用開發(fā)指南
DR1平臺Linux應(yīng)用開發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)
基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開發(fā)指南(4)
基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(1)
一步步完成安路飛龍 DR1M90 Linux 系統(tǒng)固化:啟動(dòng)卡制作 + eMMC 固化
安路DR1M90評估板:從基礎(chǔ)外設(shè)到通信模塊測試指南
【米爾MYC-YM90X安路飛龍DR1開發(fā)板】HMI人機(jī)界面開發(fā)
搭載ARM,NPU,F(xiàn)PGA三種核心的開發(fā)板—米爾安路DR1M90飛龍派
有ARM,NPU,F(xiàn)PGA三種核心的開發(fā)板 — 米爾安路飛龍派開發(fā)板
【米爾MYC-YM90X安路飛龍DR1開發(fā)板】安路科技 SALDRAGON開發(fā)板介紹
拯救NAND/eMMC:延長閃存壽命
DR1 系列評估板 eMMC 健康管理案例開發(fā)手冊:信息查詢與壽命監(jiān)控
評論