前 言
本文旨在提供評估板接口功能的測試指導,涵蓋外設接口功能驗證及測試步驟,旨在幫助開發者和測試人員快速完成Linux系統下的產品方案驗證與性能評估。
開發環境
Windows開發環境:Windows10 64bit
Linux開發環境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK開發包:LinuxSDK-[版本號](基于RK3506_LINUX6.1_SDK_Release_V1.1.0_20241128)
評估板系統版本:U-Boot-2017.09、Linux-6.1.99、Buildroot-2024.02
交叉編譯工具鏈:
備注:本文基于256MByteNAND FLASH、256MByteDDR3配置核心板進行測試,不同配置型號核心板實測結果可能存在偏差,請以實際測試結果為準。
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。
注意事項
為保障處理器使用壽命,滿足更多工業應用場景要求,我司已將RK3506J/RK3506B處理器Cortex-A7核心最高主頻默認配置為1.2GHz。
NAND FLASH配置評估板支持通過板載NAND FLASH和系統啟動卡啟動系統。eMMC配置評估板僅支持通過板載eMMC啟動系統。
無特殊說明情況下,本文默認基于NAND FLASH配置評估板進行測試,通過板載NAND FLASH啟動系統。默認使用USB TO UART0接口作為調試串口,并將評估板通過路由器與PC機進行網絡連接。
評估板出廠時未固化最新系統鏡像至NANDFLASH/eMMC存儲。為確保您體驗到我司提供的最新系統功能,建議您參考《Linux系統固化手冊》文檔,按照指引將最新系統鏡像固化至NANDFLASH/eMMC。
使用概要
本小節主要描述評估板設備樹使用說明,以及匯總說明評估板接口性能測試結果。
評估板設備樹使用說明
由于部分外設功能之間存在引腳復用關系,因此需通過不同的設備樹文件進行區分。我司已提供各項支持不同功能的內核鏡像(已包含對應的設備樹文件),位于產品資料“4-軟件資料LinuxKernelimagelinux-6.1.99-[版本號]-[Git序列號]”目錄下,具體說明如下。
以下內核鏡像適用于NAND FLASH配置評估板,同時支持系統啟動卡。
以下內核鏡像僅適用于eMMC配置評估板。
評估板接口測試匯總
評估板接口功能測試結果匯總說明如下表所示。
系統啟動測試
評估板接入電源,將HDMI顯示器與評估板HDMIOUT接口連接,并使用Type-C線將評估板的USB TO UART0調試串口連接至PC機。評估板硬件連接如下圖所示。
圖1
備注:如需通過SD方式啟動評估板(僅限NAND FLASH配置評估板),可參考《Linux系統固化手冊》文檔將Micro SD卡制作成系統啟動卡,再將其插至Micro SD卡槽使用。
圖2
打開設備管理器,確認評估板USB TO UART0調試串口對應的COM端口號。
圖 3
圖 4
打開串口調試終端SecureCRT,選擇對應的COM端口號,設置波特率為115200,8N1,無校驗位。建立串口連接,如下圖所示。
圖 5
系統上電后,由CPU內部BootRom的引導代碼依次從NAND FLASH、eMMC/SD卡、USB接口檢測SPL啟動程序,從第一個包含SPL啟動程序的設備開始啟動。SPL啟動后,將優先從SD系統卡(非常規SD卡)引導U-Boot鏡像,否則,將從原啟動設備引導U-Boot鏡像。
詳情請查閱“Rockchip官方參考文檔/Common/MMC/”目錄下的官方參考文檔《Rockchip_Developer_Guide_SD_Boot_CN》。
系統啟動后將自動登錄root用戶,調試串口會打印如下類似啟動信息。"Bootdev(atags):mtd1"表示從NAND FLASH啟動。
備注:"Bootdev(atags):mmc0"表示從eMMC或系統啟動卡啟動。
圖 6
核心板LED在系統啟動過程中的變化說明如下:
評估板上電后,電源指示燈LED1點亮;U-Boot啟動階段點亮LED2;隨后Linux內核啟動運行時,LED2閃爍;Linux內核穩定運行時,LED2進行心跳閃爍。
圖7
同時,HDMI顯示屏將顯示如下界面。
圖8
評估板快速測試
LED測試
評估底板用戶可編程指示燈LED1對應的GPIO為GPIO4_B3。
進入評估板文件系統,執行如下命令控制LED亮滅。
Target# echo 1 > /sys/class/leds/user-led0/brightness
Target# echo 0 > /sys/class/leds/user-led0/brightness
圖 9
按鍵測試
評估底板包含1個系統復位按鍵RESET(KEY1),1個Maskrom按鍵Maskrom(KEY2),2個用戶輸入按鍵:USER1(KEY3)、USER2(KEY4)。
系統復位按鍵測試
評估板上電,按下系統復位按鍵RESET(KEY1),核心板板載LED2停止閃爍;松開按鍵后,系統將會重新啟動。
Maskrom按鍵測試
執行如下命令,查看Maskrom按鍵對應的事件號。其中Maskrom(KEY2)對應的按鍵事件號為event0。
Target# cat /proc/bus/input/devices
圖 10
執行如下命令,按下Maskrom(KEY2)進行按鍵測試,可看到如下打印信息,按"Ctrl + C"可終止測試命令。
Target# od -x /dev/input/event0
圖 11
用戶輸入按鍵測試
執行如下命令,查看用戶輸入按鍵對應的事件號。其中USER1(KEY3)對應的按鍵事件號為event1,USER2(KEY4)對應的按鍵事件號為event2。
Target# cat /proc/bus/input/devices
圖 12
執行如下命令,按下USER1(KEY3)進行按鍵測試,可看到如下打印信息,按"Ctrl + C"可終止測試命令。
Target# od -x /dev/input/event1
圖 13
執行如下命令,按下USER2(KEY4)進行按鍵測試,可看到如下打印信息,按"Ctrl + C"可終止測試命令。
備注:由于用戶按鍵USER2(KEY4)引腳與SARADC復用,因此需將SARADC相關寄存器配置為GPIO功能。
Target# io -4 0xff4d8840 0x00f000f0 //配置為GPIO功能
Target# od -x /dev/input/event2
圖 14
外部RTC測試
請將ML2032(3V可充)或CR2032(3V不可充)電池安裝至RTC紐扣電池座,進行外部RTC測試。
備注:使用CR2032不可充電電池時,請勿將跳線帽插入J3接口。
Linux系統中分系統時鐘(軟件時鐘)和RTC時鐘(硬件時鐘),系統時鐘掉電即會消失,RTC時鐘在安裝電池的情況下會長期運行。
查看外部RTC設備節點
執行如下命令,可查看到外部RTC設備節點為"/dev/rtc0"。
Target# ls /dev/rtc*
圖 15
Target# dmesg | grep rtc
圖 16
查看系統時鐘
Target# date
圖 17
設置系統時間并同步系統時鐘至RTC時鐘
Target# date -s "2025-4-11 8:30:00" //設置時間:2025年4月11日8點30分00秒
Target# hwclock -w -f /dev/rtc0
Target# hwclock -f /dev/rtc0
圖 18
將評估板斷電,放置一斷時間后,重新上電,執行如下命令查詢系統時間,驗證外部RTC功能。
Target# hwclock -f /dev/rtc0
圖 19
外部看門狗測試
本小節測試評估板板載外部硬件看門狗功能。
請先使用跳線帽將評估板的Watchdog(J1)選擇ON檔位,使能外部看門狗。此時將評估板上電,若不執行喂狗操作,系統將在大約35s內重啟。
請執行如下命令開始喂狗,喂狗期間系統不會重啟。
Target# echo 272 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio272/direction
Target# while true; do echo 1 > /sys/class/gpio/gpio272/value;sleep 1;echo 0 > /sys/class/gpio/gpio272/value;sleep 1; done
圖 20
按"Ctrl + C"停止喂狗,系統將在大約35s內重啟。
DDR讀寫測試
DDR讀寫速度受DDR物料型號、測試方法、測試數據大小影響,測試速率以具體情況為準,如下測試數據僅供參考。
執行如下命令,查詢DDR的可用容量。
Target# free -m
圖 21
DDR讀速度測試
進入評估板系統,執行如下命令對DDR進行讀速度測試。
Target# bw_mem -P 3 -N 10 32M frd
圖 22
本次測試從DDR讀取32MByte數據,可看到本次測試的讀速度為2121.13MB/s。
DDR寫速度測試
執行如下命令對DDR進行寫速度測試。
Target# bw_mem -P 3 -N 10 32M fwr
圖 23
本次測試寫入32MByte數據至DDR,可看到本次測試的寫速度為2180.08MB/s。
DDR拷貝速度測試
執行如下命令對DDR進行拷貝速度測試。
Target# bw_mem -P 3 -N 10 32M fcp
圖 24
本次測試拷貝32MByte數據至DDR,可看到本次測試的拷貝速度為1004.27MB/s。
Stream帶寬測試
執行如下命令對DDR進行Stream帶寬測試。
Target# stream -M 32M -P 3 -N 10
圖 25
參數解析:
copy:先訪問一個內存單元讀出其中的值,再將值寫入至另一個內存單元;
scale:先從內存單元讀出其中的值,作一個乘法運算,再將結果寫入至另一個內存單元;
add:先從內存單元讀出兩個值,做加法運算,再將結果寫入至另一個內存單元;
triad:表示將copy、scale、add三種操作組合進行測試。
NAND FLASH讀寫測試
本章節僅支持NAND FLASH配置評估板,若使用eMMC配置評估板可跳過此步驟。
請先參考《Linux系統固化手冊》文檔將系統鏡像update-nand.img固化至NANDFLASH,再進行NANDFLASH讀寫測試。請通過NAND FLASH啟動系統,執行如下命令,查看NANDFLASH分區信息。本次選取userdata作為測試分區,測試過程會擦除分區內容,請務必做好數據備份。
備注:建議優先選用userdata分區進行測試,若使用其他分區測試可能會導致文件系統數據損壞。
Target# cat /proc/mtd
圖 26
NAND FLASH寫速度測試
執行如下命令,擦除NAND FLASH分區。
Target# flash_erase /dev/mtd7 0 0
圖 27
執行如下命令,進行NAND FLASH寫速度測試。
Target# echo 3 > /proc/sys/vm/drop_caches
Target# time dd if=/dev/zero of=/dev/mtd7 bs=128k count=176
圖 28
參數解析:
bs=128k:同時設置讀入/輸出的塊大小為128k個字節。
count=176:拷貝176個塊。
此處一共寫入128x 1024x 176/1000/1000MByte=23.0MByte測試數據至NAND FLASH,可看到本次測試NAND FLASH寫速度約為:23.07MByte /3.946s ≈ 5.8MB/s。
NAND FLASH讀速度測試
若已對NAND FLASH進行寫速率測試,需先執行如下命令擦除NAND FLASH分區,否則無法正常測試。
Target# flash_erase /dev/mtd7 0 0
圖 29
執行如下命令,進行NAND FLASH讀速度測試。
Target# echo 3 > /proc/sys/vm/drop_caches
Target# time dd if=/dev/mtd7 of=/dev/null bs=128k count=176
圖 30
此處一共從NAND FLASH讀取128x 1024x 176/1000/1000MByte= 23.0MByte測試數據,可看到本次測試NAND FLASH讀速度約為:23.07MByte /1.650s ≈ 13.9MB/s。
eMMC讀寫測試
本章節僅支持eMMC配置評估板,若使用NAND FLASH配置評估板可跳過此步驟。
請先參考《Linux系統固化手冊》文檔將產品資料“4-軟件資料LinuxMakesdboot”目錄下的update-emmc.img系統鏡像固化至eMMC,再進行eMMC讀寫測試。
評估板上電,系統將從eMMC啟動。執行如下命令查看eMMC分區信息。
Target# fdisk -l
圖 31
eMMC寫速度測試
執行如下命令對eMMC設備進行寫速度測試。
Target# fio -filename=/dev/mmcblk0 -ioengine=psync -iodepth=1 -iodepth_batch=1 -iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=write -bs=1024K -size=1024M -numjobs=1 -thread -group_reporting -name=write_job -ramp_time=1 -allow_mounted_write=1
圖 32
此處一共寫1024MByte測試數據至eMMC設備,可看到本次測試的eMMC設備寫速度約為49.5MB/s。
eMMC讀速度測試
執行如下命令對eMMC設備進行讀速度測試。
Target# fio -filename=/dev/mmcblk0 -ioengine=psync -iodepth=1 -iodepth_batch=1 -iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=read -bs=1024K -size=1024M -numjobs=1 -thread -group_reporting -name=read_job -ramp_time=1
圖 33
此處從eMMC設備中一共讀出1024MByte數據,可看到本次測試的eMMC設備讀速度約為65.2MB/s。
Micro SD接口讀寫測試
本章節僅支持NAND FLASH配置評估板,若使用eMMC配置評估板可跳過此步驟。
本次操作使用SanDisk品牌、128GByte容量的Micro SD卡來測試評估板Micro SD接口性能。不同的MicroSD卡以及不同的測試方法,對Micro SD接口測試結果將造成一定差異。
請先取出系統啟動卡,評估板上電,系統將從NANDFLASH啟動。再將系統啟動卡插至評估板Micro SD卡槽,進入評估板文件系統執行如下命令,查看Micro SD卡信息。
Target# fdisk /dev/mmcblk0 -l
圖 34
Micro SD接口寫速度測試
進入評估板系統,執行如下命令測試MicroSD接口寫速度。
Target# fio -filename=/dev/mmcblk0 -ioengine=psync -iodepth=1 -iodepth_batch=1 -iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=write -bs=1024K -size=1024M -numjobs=1 -thread -group_reporting -name=write_job -ramp_time=1 -allow_mounted_write=1
圖 35
此處一共寫1024MByte測試數據至MicroSD卡,可看到本次測試的MicroSD接口寫速度約為39.7MB/s。
Micro SD接口讀速度測試
執行如下命令測試MicroSD接口讀速度。
Target# fio -filename=/dev/mmcblk0 -ioengine=psync -iodepth=1 -iodepth_batch=1 -iodepth_low=1 -iodepth_batch_complete=1 -direct=1 -rw=read -bs=1024K -size=1024M -numjobs=1 -thread -group_reporting -name=read_job -ramp_time=1
圖 36
此處一共讀出1024MByte的數據,可看到本次測試的MicroSD接口讀速度約為66.0MB/s。
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
開發板
+關注
關注
25文章
5687瀏覽量
104941 -
瑞芯微
+關注
關注
25文章
606瀏覽量
52490 -
評估板
+關注
關注
1文章
757瀏覽量
30204 -
網口
+關注
關注
0文章
121瀏覽量
7735
發布評論請先 登錄
評論