前 言
本文旨在提供評估板接口功能的測試指導,涵蓋PS端外設接口功能驗證及測試步驟(PL端外設請參考PL端工程進行測試),旨在幫助開發者和測試人員快速完成Linux系統下的產品方案驗證與性能評估。
開發環境
Windows開發環境:Windows10 64bit
Linux開發環境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK開發包:LinuxSDK-[版本號](基于SDK_2025.1)
評估板系統版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02
備注:本文基于8GByte eMMC、1GByteDDR3配置核心板進行測試,不同配置型號核心板實測結果可能存在偏差,請以實際測試結果為準。
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。
表 1
注意事項
(1)無特殊說明情況下,默認使用USB TO UART1接口作為調試串口,使用Linux系統啟動卡啟動系統,通過路由器與PC機進行網絡連接。請根據評估底板絲印將啟動方式選擇撥碼開關撥為011(1~3),此檔位為Micro SD啟動模式。
(2)評估板出廠時可能未固化最新系統鏡像至eMMC存儲。為確保您體驗到我司提供的最新系統功能,建議您參考《Linux系統固化手冊》文檔,按照指引將最新系統鏡像固化至eMMC。
使用概要
本小節主要描述評估板設備樹使用說明,以及匯總說明評估板接口性能測試結果。
評估板接口測試匯總
評估板接口功能測試結果匯總說明如下表所示。
表 2
Linux設備節點說明
評估板設備名與設備驅動源碼路徑、設備文件、設備節點對應如下表所示。
表 3
Linux存儲分區說明
Linux系統啟動卡和eMMC分區說明如下表所示,其中系統啟動卡對應的設備節點為mmcblk0,eMMC對應的設備節點為mmcblk1。
表 4
系統啟動測試
評估板接入電源,并使用Type-C線將評估板的USB TO UART1調試串口連接至PC機。評估板硬件連接如下圖所示。
圖 1
打開設備管理器,確認評估板USB TO UART1調試串口對應的COM端口號。
圖 2
圖 3
打開串口調試終端SecureCRT,選擇對應的COM端口號,設置波特率為115200,8N1,無校驗位。建立串口連接,如下圖所示。
圖 4
將Linux系統啟動卡插入評估板Micro SD卡槽,根據評估底板絲印將啟動方式選擇撥碼開關撥為011(1~3),此檔位為Micro SD啟動模式。將評估板上電啟動,串口調試終端將會打印如下類似啟動信息。
備注:"drv is sd"表示從Linux系統啟動卡啟動,"drv is emmc1"表示從eMMC啟動。
圖 5
系統啟動后會自動登陸root用戶。
圖 6
核心板LED在系統啟動過程中的變化說明如下:
評估板上電后,電源指示燈LED1點亮;U-Boot啟動階段點亮LED2;Linux內核穩定運行時,LED2進行心跳閃爍。
圖 7
系統上電后,Linux系統啟動流程為:BootRom -> FSBL-> U-Boot ->Linux。BootRom會根據啟動模式從啟動介質中解析BOOT.bin,并將FSBL加載至OCM,然后開始運行FSBL。FSBL會加載BOOT.bin中剩下的文件,如果有比特流文件,則配置比特流文件。接下來將U-Boot搬運到DDR中并啟動U-Boot,U-Boot會根據啟動參數,加載Linux鏡像、文件系統、設備樹等文件到DDR中,并通過bootm命令啟動Linux內核。最終Linux啟動,并進入終端。
詳情請查閱官方WIKI參考文檔:https://alwiki.anlogic.com/wiki/external/org/AzZaqNHH/#/page/SdAMW8ED/9y1N4KNs。
評估板快速測試
LED測試
評估底板PS端用戶可編程指示燈LED2對應的節點為user-led0。
進入評估板文件系統,執行如下命令控制LED亮滅。
Target# echo 1 > /sys/class/leds/user-led0/brightness
Target# echo 0 > /sys/class/leds/user-led0/brightness
圖 8
按鍵測試
評估底板包含1個POR復位按鍵KEY3,1個SRST復位按鍵KEY1,1個PS端用戶輸入按鍵KEY2。
(1)POR復位按鍵測試
評估板上電,按下POR復位按鍵KEY3,核心板板載LED2停止閃爍;松開按鍵后,系統將會重新啟動。
(2)SRST復位按鍵測試
評估板上電,按下SRST復位按鍵KEY1,核心板板載LED2停止閃爍;松開按鍵后,系統將會重新啟動。
(3)PS端用戶輸入按鍵測試
執行如下命令,查看用戶輸入按鍵對應的事件號,可知KEY2對應的按鍵事件號為event0。
Target# cat /proc/bus/input/devices
圖 9
執行如下命令,按下USER1(KEY2)進行按鍵測試,可看到如下打印信息,按"Ctrl + C"可終止測試命令。
Target# od -x /dev/input/event0
圖 10
外部RTC測試
請將ML2032(3V可充)或CR2032(3V不可充)電池安裝至RTC紐扣電池座,進行外部RTC測試。
備注:使用CR2032不可充電電池時,請勿將跳線帽插入J1接口。
Linux系統中分系統時鐘(軟件時鐘)和RTC時鐘(硬件時鐘),系統時鐘掉電即會消失,RTC時鐘在安裝電池的情況下會長期運行。
(1)查看外部RTC設備節點。
執行如下命令,可查看到外部RTC設備節點為"/dev/rtc0"。
Target# ls /dev/rtc*
圖 11
Target# dmesg | grep rtc
圖 12
(2)查看系統時鐘。
Target# date
圖 13
(3)設置系統時間并同步系統時鐘至RTC時鐘。
Target# date -s "2025-6-1715:50:00" //設置時間:2025年6月17日15點50分00秒
Target# hwclock -w -f /dev/rtc0
Target# hwclock -f /dev/rtc0
圖 14
(4)將評估板斷電,放置一斷時間后,重新上電,執行如下命令查詢系統時間,驗證外部RTC功能。
Target# hwclock -f /dev/rtc0
圖 15
DDR讀寫測試
DDR讀寫速度受DDR物料型號、測試方法、測試數據大小影響,測試速率以具體情況為準,如下測試數據僅供參考。
執行如下命令,查詢DDR的可用容量。
Target# free -m
圖 16
(1)DDR讀速度測試
進入評估板系統,執行如下命令對DDR進行讀速度測試。
Target# bw_mem -P $(nproc) -N 10 128M frd
圖 17
本次測試從DDR讀取128MByte數據,可看到本次測試的讀速度為2311.26MB/s。
(2)DDR寫速度測試
執行如下命令對DDR進行寫速度測試。
Target# bw_mem -P $(nproc) -N 10 128M fwr
圖 18
本次測試寫入128MByte數據至DDR,可看到本次測試的寫速度為1629.69MB/s。
(3)DDR拷貝速度測試
執行如下命令對DDR進行拷貝速度測試。
Target# bw_mem -P $(nproc) -N 10 128M fcp
圖 19
本次測試拷貝128MByte數據至DDR,可看到本次測試的拷貝速度為1661.76MB/s。
(4)Stream帶寬測試
執行如下命令對DDR進行Stream帶寬測試。
Target# stream -M 128M -P $(nproc) -N 10
圖 20
參數解析:
copy:先訪問一個內存單元讀出其中的值,再將值寫入至另一個內存單元;
scale:先從內存單元讀出其中的值,作一個乘法運算,再將結果寫入至另一個內存單元;
add:先從內存單元讀出兩個值,做加法運算,再將結果寫入至另一個內存單元;
triad:表示將copy、scale、add三種操作組合進行測試。
(1)DDR壓力測試
執行如下命令對DDR進行壓力測試。
Target# memtester 128M 1
圖 21
SPI FLASH測試
執行如下命令,查看SPI FLASH的容量和型號,由下圖可知SPI FLASH的型號為GD25Q64,容量為8192KByte。
Target# dmesg | grep spi-nor
圖 22
(1)SPI FLASH擦除測試
執行如下命令,擦除SPI FLASH分區。
Target# flash_erase /dev/mtd0 0 0
圖 23
執行如下命令,全部數據為ffff即已正確擦除。
Target# mtd_debug read /dev/mtd0 0 0x00800000 mtd.data
Target# hexdump -x mtd.data
圖 24
(2)SPI FLASH寫速度測試
執行如下命令,查看mtd分區。
Target# cat /proc/mtd
圖 25
執行如下命令,進行SPI FLASH寫速度測試。
Target# echo 3 > /proc/sys/vm/drop_caches
Target# time dd if=/dev/urandom of=/dev/mtd0 bs=64k count=128
圖 26
參數解析:
bs=64k:同時設置讀入/輸出的塊大小為64k個字節。
count=128:拷貝128個塊。
此處一共寫入128x 64 x 1024=8MByte測試數據至SPIFLASH,可看到本次測試SPI FLASH寫速度為852.2KB/s。
(3)SPI FLASH讀速度測試
執行如下命令,進行SPI FLASH讀速度測試。
Target# echo 3 > /proc/sys/vm/drop_caches
Target# time dd if=/dev/mtd0 of=/dev/null bs=64k count=128
圖 27
此處一共從SPI FLASH讀取128x 64 x 1024=8MByte測試數據,可看到本次測試SPI FLASH讀速度為38.8MB/s。
(4)數據校驗測試
執行如下命令,進行SPI FLASH數據校驗測試。
Target# time dd if=/dev/urandom of=test.bin bs=64k count=128
Target# flashcp -v test.bin /dev/mtd0
圖 28
運行上述命令在Verifying data階段無報錯,則數據校驗正常。
eMMC讀寫測試
請將Linux系統啟動卡插入評估板Micro SD卡槽,請根據評估底板絲印將啟動方式選擇撥碼開關撥為011(1~3),此檔位為Micro SD啟動模式。評估板上電,系統將從Linux系統啟動卡啟動。執行如下命令查看eMMC分區信息。
Target# fdisk -l | grep "/dev/mmcblk1"
Target# df -h
圖 29
圖 30
(1)eMMC寫速度測試
執行如下命令對eMMC設備進行寫速度測試。
Target# fio -filename=/dev/mmcblk1 -ioengine=libaio -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 -userspace_reap -ramp_time=1 -allow_mounted_write=1
圖 31
此處一共寫1024MByte測試數據至eMMC設備,可看到本次測試的eMMC設備寫速度約為21.2MB/s。
(2)eMMC讀速度測試
執行如下命令對eMMC設備進行讀速度測試。
Target# fio -filename=/dev/mmcblk1 -ioengine=libaio -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 -userspace_reap -ramp_time=1
圖 32
此處從eMMC設備中一共讀出1024MByte數據,可看到本次測試的eMMC設備讀速度約為24.1MB/s。
Micro SD接口讀寫測試
本次操作使用SanDisk品牌、128GByte容量的Micro SD卡來測試評估板Micro SD接口性能。不同的MicroSD卡以及不同的測試方法,對Micro SD接口測試結果將造成一定差異。
請先參考《Linux系統固化手冊》文檔,按照指引將最新系統鏡像固化至eMMC,取出Linux系統啟動卡,根據評估底板絲印將啟動方式選擇撥碼開關撥為111(1~3),此檔位為eMMC啟動模式。評估板上電,系統將從eMMC啟動。系統啟動后再將Linux系統啟動卡插至評估板Micro SD卡槽,進入評估板文件系統執行如下命令,查看Micro SD卡信息。
Target# fdisk -l | grep "/dev/mmcblk0"
Target# df -h
圖 33
(1)Micro SD接口寫速度測試
進入評估板系統,執行如下命令測試MicroSD接口寫速度。
Target# fio -filename=/dev/mmcblk0 -ioengine=libaio -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 -userspace_reap -ramp_time=1 -allow_mounted_write=1
圖 34
此處一共寫1024MByte測試數據至MicroSD卡,可看到本次測試的MicroSD接口寫速度約為19.8MB/s。
(2)Micro SD接口讀速度測試
執行如下命令測試MicroSD接口讀速度。
Target# fio -filename=/dev/mmcblk0 -ioengine=libaio -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 -userspace_reap -ramp_time=1
圖 35
此處一共讀出1024MByte的數據,可看到本次測試的MicroSD接口讀速度約為23.8MB/s。
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
評估板
+關注
關注
1文章
931瀏覽量
31177 -
通信模塊
+關注
關注
2文章
173瀏覽量
33771
發布評論請先 登錄
DR1 評估板 PL 端 FPGA 開發完全指南:基礎案例與 ADC 采集模塊詳解(一)
DR1M90 評估板 TD-FD 工程與 Linux 多場景應用開發指南
DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉實時控制方案
基于 DR1M90 的 Linux-RT 內核開發:從編譯配置到 GPIO / 按鍵應用實現(1)
基于安路DR1M90 FPSoC的Linux系統全流程開發指南(4)
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(3)
基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(1)
一步步完成安路飛龍 DR1M90 Linux 系統固化:啟動卡制作 + eMMC 固化
安路DR1M90評估板:從基礎外設到通信模塊測試指南
評論