安路DR1M90评估板:从基础外设到通信模块测试指南
前言本文旨在提供评估板接口功能的测试指导,涵盖PS端外设接口功能验证及测试步骤(PL端外设请参考PL端工程进行测试),旨在帮助开发者和测试人员快速完成Linux系统下的产品方案验证与性能评估。开发环境Windows开发环境:Windows10 64bitLinux开发环境:VMware16.2.5、Ubuntu22.04.4 64bitLinuxSDK开发包:LinuxSDK-[版本号](基于SDK_2025.1)评估板系统版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02备注:本文基于8GByte eMMC、1GByte DDR3配置核心板进行测试,不同配置型号核心板实测结果可能存在偏差,请以实际测试结果为准。
术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewTiAPaxCAAAtJ1K2L5M497.png
表 1
注意事项(1)无特殊说明情况下,默认使用USB TO UART1接口作为调试串口,使用Linux系统启动卡启动系统,通过路由器与PC机进行网络连接。请根据评估底板丝印将启动方式选择拨码开关拨为011(1~3),此档位为Micro SD启动模式。
(2)评估板出厂时可能未固化最新系统镜像至eMMC存储。为确保您体验到我司提供的最新系统功能,建议您参考《Linux系统固化手册》文档,按照指引将最新系统镜像固化至eMMC。
使用概要本小节主要描述评估板设备树使用说明,以及汇总说明评估板接口性能测试结果。
评估板接口测试汇总评估板接口功能测试结果汇总说明如下表所示。
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewUeAI-SQAABs78y1vb8221.png
表 2
Linux设备节点说明评估板设备名与设备驱动源码路径、设备文件、设备节点对应如下表所示。
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewU-AJsOgAABIDQx0eZ0994.png
表 3
Linux存储分区说明Linux系统启动卡和eMMC分区说明如下表所示,其中系统启动卡对应的设备节点为mmcblk0,eMMC对应的设备节点为mmcblk1。
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewVmAPQShAAAmd3WpSXI953.png
表 4
系统启动测试评估板接入电源,并使用Type-C线将评估板的USB TO UART1调试串口连接至PC机。评估板硬件连接如下图所示。
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewWKAVoBwAEGpOGlczXc537.png
图 1
打开设备管理器,确认评估板USB TO UART1调试串口对应的COM端口号。
https://file1.elecfans.com/web3/M00/31/3D/wKgZO2jQw1-AOEZDAABOSbDqQD4768.png
图 2
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewW6AULmzAABUvnxULM4923.png
图 3
打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无校验位。建立串口连接,如下图所示。
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewYCAIMQgAABQza9wbpQ897.png
图 4
将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将启动方式选择拨码开关拨为011(1~3),此档位为Micro SD启动模式。将评估板上电启动,串口调试终端将会打印如下类似启动信息。备注:"drv is sd"表示从Linux系统启动卡启动,"drv is emmc1"表示从eMMC启动。
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewYiACg5fAABX0a51kzM195.png
图 5
系统启动后会自动登陆root用户。
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewZKAAMTdAAAkghoMScM575.png
图 6
核心板LED在系统启动过程中的变化说明如下:评估板上电后,电源指示灯LED1点亮;U-Boot启动阶段点亮LED2;Linux内核稳定运行时,LED2进行心跳闪烁。
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewa2ANuwaADMAhhDY_aM340.png
图 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/brightnessTarget# echo 0 > /sys/class/leds/user-led0/brightness
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewcqAEre5AAAJK1W7E60887.png
图 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
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewdGAdFg9AAAaNFmm2jI329.png
图 9
执行如下命令,按下USER1(KEY2)进行按键测试,可看到如下打印信息,按"Ctrl + C"可终止测试命令。Target# od -x /dev/input/event0
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewdiAQoEiAAAYogROrDM654.png
图 10外部RTC测试请将ML2032(3V可充)或CR2032(3V不可充)电池安装至RTC纽扣电池座,进行外部RTC测试。备注:使用CR2032不可充电电池时,请勿将跳线帽插入J1接口。Linux系统中分系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。
(1)查看外部RTC设备节点。
执行如下命令,可查看到外部RTC设备节点为"/dev/rtc0"。Target# ls /dev/rtc*
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2keweCAKeGRAAAHuJiZoiA280.png
图 11
Target# dmesg | grep rtc
https://file1.elecfans.com/web3/M00/3D/83/wKgZO2kewemATf96AAAQIVBg-vo389.png
图 12
(2)查看系统时钟。
Target# date
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewfCAPiUvAAAG0Kkicis103.png
图 13
(3)设置系统时间并同步系统时钟至RTC时钟。
Target# date -s "2025-6-17 15:50:00" //设置时间:2025年6月17日15点50分00秒Target# hwclock -w -f /dev/rtc0Target# hwclock -f /dev/rtc0
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewfiAJjKsAAAPis6GwWU614.png
图 14
(4)将评估板断电,放置一断时间后,重新上电,执行如下命令查询系统时间,验证外部RTC功能。
Target# hwclock -f /dev/rtc0
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewf6AQAMQAAAJVswxVI0462.png
图 15
DDR读写测试DDR读写速度受DDR物料型号、测试方法、测试数据大小影响,测试速率以具体情况为准,如下测试数据仅供参考。执行如下命令,查询DDR的可用容量。Target# free -m
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewgWAUpdXAAAOf-B88Tw314.png
图 16
(1)DDR读速度测试进入评估板系统,执行如下命令对DDR进行读速度测试。Target# bw_mem -P $(nproc) -N 10 128M frd
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewgyAQpXMAAAKvZL24Z4506.png
图 17
本次测试从DDR读取128MByte数据,可看到本次测试的读速度为2311.26MB/s。(2)DDR写速度测试执行如下命令对DDR进行写速度测试。Target# bw_mem -P $(nproc) -N 10 128M fwr
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewhOAf127AAAKaYokGRA825.png
图 18
本次测试写入128MByte数据至DDR,可看到本次测试的写速度为1629.69MB/s。(3)DDR拷贝速度测试执行如下命令对DDR进行拷贝速度测试。Target# bw_mem -P $(nproc) -N 10 128M fcp
https://file1.elecfans.com/web3/M00/3D/83/wKgZPGkewhqAMGFfAAAKacgAMek638.png
图 19
本次测试拷贝128MByte数据至DDR,可看到本次测试的拷贝速度为1661.76MB/s。(4)Stream带宽测试
执行如下命令对DDR进行Stream带宽测试。Target# stream -M 128M -P $(nproc) -N 10
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewiGAQmGzAAAfDhPQ98A413.png
图 20
参数解析:
[*]copy:先访问一个内存单元读出其中的值,再将值写入至另一个内存单元;
[*]scale:先从内存单元读出其中的值,作一个乘法运算,再将结果写入至另一个内存单元;
[*]add:先从内存单元读出两个值,做加法运算,再将结果写入至另一个内存单元;
[*]triad:表示将copy、scale、add三种操作组合进行测试。
(1)DDR压力测试
执行如下命令对DDR进行压力测试。Target# memtester 128M 1
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewimAHwGyAABV7hDunfk366.png
图 21
SPI FLASH测试执行如下命令,查看SPI FLASH的容量和型号,由下图可知SPI FLASH的型号为GD25Q64,容量为8192KByte。Target# dmesg | grep spi-nor
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewjSAD4SuAAALpPE3pz4518.png
图 22
(1)SPI FLASH擦除测试
执行如下命令,擦除SPI FLASH分区。Target# flash_erase /dev/mtd0 0 0
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewjqAH3nxAAANcMxoaIY310.png
图 23
执行如下命令,全部数据为ffff即已正确擦除。Target# mtd_debug read /dev/mtd0 0 0x00800000 mtd.dataTarget# hexdump -x mtd.data
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewkGAaQzZAAATHuNyj5k369.png
图 24
(2)SPI FLASH写速度测试
执行如下命令,查看mtd分区。Target# cat /proc/mtd
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewkiAFYjqAAALFwS133o454.png
图 25
执行如下命令,进行SPI FLASH写速度测试。Target# echo 3 > /proc/sys/vm/drop_cachesTarget# time dd if=/dev/urandom of=/dev/mtd0 bs=64k count=128
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewk6AIMSFAAAWOXE1Zac779.png
图 26
参数解析:
[*]bs=64k:同时设置读入/输出的块大小为64k个字节。
[*]count=128:拷贝128个块。
此处一共写入128 x 64 x 1024 = 8MByte测试数据至SPI FLASH,可看到本次测试SPI FLASH写速度为852.2KB/s。(3)SPI FLASH读速度测试
执行如下命令,进行SPI FLASH读速度测试。Target# echo 3 > /proc/sys/vm/drop_cachesTarget# time dd if=/dev/mtd0 of=/dev/null bs=64k count=128
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewleAFqlXAAAdEW91zao609.png
图 27
此处一共从SPI FLASH读取128 x 64 x 1024 = 8MByte测试数据,可看到本次测试SPI FLASH读速度为38.8MB/s。(4)数据校验测试
执行如下命令,进行SPI FLASH数据校验测试。Target# time dd if=/dev/urandom of=test.bin bs=64k count=128Target# flashcp -v test.bin /dev/mtd0
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewl6AeD_UAAAiwiu4Vrc093.png
图 28
运行上述命令在Verifying data阶段无报错,则数据校验正常。eMMC读写测试请将Linux系统启动卡插入评估板Micro SD卡槽,请根据评估底板丝印将启动方式选择拨码开关拨为011(1~3),此档位为Micro SD启动模式。评估板上电,系统将从Linux系统启动卡启动。执行如下命令查看eMMC分区信息。Target# fdisk -l | grep "/dev/mmcblk1"Target# df -h
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewmiAYluMAAAeOanzZis445.png
图 29
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewmiAV_-XAAAnQLr5vIU294.png
图 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
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewn6AQBECAACH5n7jQaE278.png
图 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
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewoWAep1iAACDYDRG_NY954.png
图 32
此处从eMMC设备中一共读出1024MByte数据,可看到本次测试的eMMC设备读速度约为24.1MB/s。Micro SD接口读写测试本次操作使用SanDisk品牌、128GByte容量的Micro SD卡来测试评估板Micro SD接口性能。不同的Micro SD卡以及不同的测试方法,对Micro SD接口测试结果将造成一定差异。请先参考《Linux系统固化手册》文档,按照指引将最新系统镜像固化至eMMC,取出Linux系统启动卡,根据评估底板丝印将启动方式选择拨码开关拨为111(1~3),此档位为eMMC启动模式。评估板上电,系统将从eMMC启动。系统启动后再将Linux系统启动卡插至评估板Micro SD卡槽,进入评估板文件系统执行如下命令,查看Micro SD卡信息。Target# fdisk -l | grep "/dev/mmcblk0"Target# df -h
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewo2AdA-yAAApbyCXNRc405.png
图 33
(1)Micro SD接口写速度测试
进入评估板系统,执行如下命令测试Micro SD接口写速度。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
https://file1.elecfans.com/web3/M00/3D/84/wKgZO2kewpSAfgDYAACKoa6QrEI803.png
图 34
此处一共写1024MByte测试数据至Micro SD卡,可看到本次测试的Micro SD接口写速度约为19.8MB/s。(2)Micro SD接口读速度测试
执行如下命令测试Micro SD接口读速度。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
https://file1.elecfans.com/web3/M00/3D/84/wKgZPGkewpyAR8M_AACCPm-cgV0782.png
图 35
此处一共读出1024MByte的数据,可看到本次测试的Micro SD接口读速度约为23.8MB/s。
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
页:
[1]