一、壓測的重要性與核心目的
1.為什么必須做壓測?
RK平臺多應(yīng)用于嵌入式設(shè)備(如工業(yè)控制器、智能終端、消費電子),這類設(shè)備常面臨復(fù)雜工況(高低溫、高負載、長期運行)與嚴苛可靠性要求,壓測是量產(chǎn)前不可或缺的“風(fēng)險攔截環(huán)節(jié)”,核心原因包括:

1.硬件隱患提前暴露:避免因IO電壓不匹配、DDR信號干擾、電源紋波超標等問題,導(dǎo)致設(shè)備量產(chǎn)后面臨死機、重啟、硬件燒毀等故障;
2.軟件穩(wěn)定性驗證:排查多模塊協(xié)同(如CPU+DDR+Wi-Fi)、長期高負載下的內(nèi)存泄漏、線程死鎖、驅(qū)動兼容性問題;
3.性能達標保障:確保磁盤讀寫、GPU渲染、CPU算力等關(guān)鍵指標滿足產(chǎn)品設(shè)計需求,避免用戶使用時出現(xiàn)卡頓、響應(yīng)慢等體驗問題;
4.成本風(fēng)險控制:若未做壓測,設(shè)備量產(chǎn)后面臨售后維修、召回,成本是前期壓測投入的10-100倍,且損害品牌口碑。
2.壓測的核心價值
5.從“被動修復(fù)”轉(zhuǎn)為“主動預(yù)防”:在實驗室環(huán)境模擬設(shè)備全生命周期可能遇到的極端場景,提前解決90%以上的穩(wěn)定性問題;
6.量化設(shè)備可靠性:通過“10臺設(shè)備×24小時”“高低溫循環(huán)”等標準化壓測,驗證設(shè)備連續(xù)運行無故障時長,為量產(chǎn)提供數(shù)據(jù)支撐;
7.適配場景拓展:通過用戶場景壓測,確保設(shè)備在真實使用場景(如詞典筆“掃描-翻譯-待機”、工業(yè)設(shè)備“數(shù)據(jù)采集-傳輸-存儲”)下穩(wěn)定運行。
二、壓測前準備
8.開啟測試工具配置:在Buildroot中啟用所需測試包,執(zhí)行如下配置命令,確保CPU、內(nèi)存、音頻、Wi-Fi等測試功能可用:
# 啟用CPU和內(nèi)存壓力測試工具BR2_PACKAGE_STRESSAPPTEST=y# 啟用內(nèi)存正確性測試工具BR2_PACKAGE_MEMTESTER=y# 啟用包含多模塊測試的套件BR2_PACKAGE_ROCKCHIP_TEST=y
1.配置測試目錄權(quán)限:確保/userdata/rockchip-test目錄具備可讀寫權(quán)限,用于存儲壓測日志和數(shù)據(jù)。
2.開啟串口日志保存:連接產(chǎn)品串口,開啟串口上位機的“保存所有日志”功能,便于后續(xù)問題分析。
三、軟件穩(wěn)定性壓測
1.基礎(chǔ)工具使用
(1)stressapptest(內(nèi)存/磁盤壓力測試)
?典型執(zhí)行命令:測試256MB內(nèi)存,運行8個“熱復(fù)制”線程,20秒后退出,命令如下:
stressapptest-s20-M256-m8-W
?常用參數(shù)說明:-M指定測試RAM大小,-s指定運行秒數(shù),-m指定內(nèi)存復(fù)制線程數(shù),-l指定日志輸出文件。
?關(guān)閉測試:執(zhí)行killall stressapptest。
(2)memtester(內(nèi)存正確性測試)
?執(zhí)行命令格式:指定測試內(nèi)存大小(單位B/K/M/G)和循環(huán)次數(shù),示例如下:
memtester[-p 物理地址基址 [-d 設(shè)備]] <內(nèi)存大小>[B/K/M/G][循環(huán)次數(shù)]
?測試項包含:Stuck Address、Random Value、Compare XOR等18項內(nèi)存校驗。
?注意事項:memtester出錯不會自動停止,需實時觀測程序打印;關(guān)閉測試執(zhí)行killall memtester。
2.多模塊專項測試(基于Rockchip test套件)
(1)DDR測試
?執(zhí)行方式一:通過套件腳本啟動
a.運行套件入口腳本:bash /rockchip-test/rockchip_test.sh;
b.輸入“1”選擇DDR測試,再根據(jù)設(shè)備變頻能力選場景(不支持變頻選“3”,支持選“5”);
c.輸入“1”選擇memtester測試,開始執(zhí)行。
?執(zhí)行方式二:直接運行腳本:執(zhí)行bash /rockchip-test/ddr/memtester_test.sh,默認測試系統(tǒng)可用內(nèi)存的一半。
?DDR變頻測試:
?自動變頻:bash /rockchip-test/ddr/ddr_freq_scaling.sh,腳本會循環(huán)切換頻率(如528000000 Hz、324000000 Hz);
?指定頻率:bash /rockchip-test/ddr/ddr_freq_scaling.sh 528000000,頻率需在支持列表內(nèi),否則會打印可用頻率;
?關(guān)閉變頻測試:killall bash。
(2)CPU測試
?啟動測試:運行bash /rockchip-test/rockchip_test.sh,輸入“2”選擇CPU測試,根據(jù)變頻能力選場景(不支持選“1”,支持選“3”)。
?CPU變頻測試:
?自動變頻:bash /rockchip-test/cpu/cpu_freq_scaling.sh,切換頻率如816000 KHz、1104000 KHz;
?指定頻率:bash /rockchip-test/cpu/cpu_freq_scaling.sh 1104000,頻率不在支持列表時會打印可用值;
?關(guān)閉測試:killall bash。
(3)Flash測試
?執(zhí)行邏輯:在$test_dir/src_test_data生成7個5MB以內(nèi)隨機源數(shù)據(jù),拷貝到$test_dir/des_test_data的5個子目錄,對比MD5值,循環(huán)200次。
(4)待機喚醒測試
?前提條件:系統(tǒng)需有正常工作的RTC;
?執(zhí)行邏輯:默認循環(huán)10000次,每次待機喚醒時間為3-6秒隨機值。
(5)reboot測試
?執(zhí)行邏輯:默認重啟10000次,每次啟動后8秒自動關(guān)機;若開啟CONFIG_PSTORE_RAM,會檢查每次關(guān)機日志是否有崩潰異常;
?提前關(guān)閉:執(zhí)行echo off > /userdata/rockchip_test/reboot_cnt。
(6)Camera測試
?方式一:rkisp_demo腳本
a.啟用配置:
BR2_PACKAGE_CAMERA_ENGINE_RKAIQ_RKISP_DEMO=y;
b.執(zhí)行腳本:
bash /rockchip-test/camera/camera_stresstest_rkisp_demo.sh,循環(huán)抓取ISP CIF接口數(shù)據(jù)各100幀。
?方式二:v4l2腳本
a.啟用配置:
BR2_PACKAGE_LIBV4L_UTILS=y;
b.執(zhí)行腳本:
bash /rockchip-test/camera/camera_stresstest_v4l2.sh,以640x480分辨率循環(huán)抓取USB ISP CIF接口數(shù)據(jù)各5幀,校驗文件大小。
(7)Video測試
?準備工作:將測試視頻文件放入/userdata/videos(優(yōu)先)或/mnt/udisk/videos;
?執(zhí)行測試:運行Video測試腳本,循環(huán)播放目標目錄下的視頻文件。
(8)Wi-Fi Bt測試
?執(zhí)行邏輯:運行對應(yīng)測試腳本,自動循環(huán)執(zhí)行Wi-Fi和Bt的開啟、關(guān)閉操作。
四、性能測試
1.磁盤讀寫測試
(1)eMMC讀寫
?前提:用fdisk -l查看可讀寫分區(qū)(如mmcblk0p8);
?寫測試:
dd if=/dev/zero of=/dev/mmcblk0p8 bs=1M count=2000 oflag=direct,nonblock;
?讀測試:
dd if=/dev/mmcblk0p8 of=/dev/null bs=1M count=2000 iflag=direct,nonblock。
(2)U盤讀寫
?寫測試:
dd if=/dev/zero of=/dev/sda1 bs=1M count=2000 oflag=direct,nonblock(/dev/sda1為U盤分區(qū));
?讀測試:
dd if=/dev/sda1 of=/dev/null bs=1M count=2000 iflag=direct,nonblock。
2.性能模式設(shè)置
?開啟高性能模式:echo performance | tee $(find /sys/ -name *governor)。
3. CPU/DDR頻率查看
?執(zhí)行命令:cat /sys/kernel/debug/clk/clk_summary |grep -E "cpu|arm|ddr"。
4. GPU跑分
?全屏跑分:sh /rockchip-test/gpu/test_fullscreen_glmark2.sh;
?后臺跑分(不顯示畫面):sh /rockchip-test/gpu/test_offscreen_glmark2.sh。
五、硬件穩(wěn)定性測試
1. IO-DOMAINS檢查
?核心要求:確保所有GPIO電源域的軟件配置電壓與硬件供電一致(如軟件設(shè)1.8V則硬件需供1.8V);
?參考文檔:對應(yīng)芯片平臺文檔(如RK3568參考Rockchip_RK356X_Introduction_IO_Power_Domains_Configuration_CN.pdf)。
2.電源測試
?測試內(nèi)容:若電源方案偏離參考設(shè)計(如用分立電源),需測試冷啟動/重啟時的上電時序、高負載下電源紋波,重點關(guān)注VDD_LOGIC、VDD_ARM等核心電源。
3.信號測試
?設(shè)計要求:DDR設(shè)計按對應(yīng)模板,顆粒選AVL列表(通過redmine獲取);
?圖紙審核:硬件圖紙完成后,提交審核(如通過redmine)。
4.高低溫測試
?測試環(huán)境:產(chǎn)品工作溫度的高溫上限和低溫下限;
?測試內(nèi)容:在高低溫下執(zhí)行CPU壓力測試、DDR壓力測試、reboot測試、冷啟動測試。
六、用戶場景壓測
?構(gòu)建邏輯:結(jié)合產(chǎn)品實際功能,用基礎(chǔ)腳本組合場景;
?示例(詞典筆場景):
whiletrue;do# 模擬掃描識別(采圖)v4l2-ctl --stream-mmap --stream-to=/tmp/scan.jpg --stream-count=1# 模擬播放翻譯結(jié)果aplay /tmp/translate.wav# 模擬待機pm-suspend# 模擬RTC喚醒(10秒后喚醒)rtcwake -m no -s 10# 隨機開關(guān)Wi-Fiif[ $((RANDOM %2)) -eq 0 ];thennmcli r wifi onelsenmcli r wifi offfidone
?核心思路:覆蓋“開機-核心功能-待機-喚醒-輔助功能(如Wi-Fi)”的完整用戶操作鏈。
-
嵌入式
+關(guān)注
關(guān)注
5198文章
20442瀏覽量
333971 -
Linux
+關(guān)注
關(guān)注
88文章
11758瀏覽量
219006
發(fā)布評論請先 登錄
Linux操作系統(tǒng)怎么移植到ARM平臺?
怎樣去搭建基于rk3288的android(和linux)平臺軟件運行環(huán)境呢
怎樣去編譯RK3288平臺上的Android系統(tǒng)源碼呢
RK3568開發(fā)板Linux系統(tǒng)如何修改異顯呢
Linux操作系統(tǒng)
Linux快速入門之安裝Linux操作系統(tǒng)及小結(jié)
linux中g(shù)pio復(fù)用設(shè)置操作步驟
RK平臺Linux系統(tǒng)壓測操作步驟
評論