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