查看: 1375|回复: 0

[资料] 嵌入式ARM端测试手册——全志T3+Logos FPGA开发板(上)

[复制链接]
  • TA的每日心情
    无聊
    2021-9-1 13:41
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2023-3-1 16:25:13 | 显示全部楼层 |阅读模式
    分享到:
    前 言本指导文档适用开发环境:
    Windows开发环境:Windows 7 64bit、Windows 10 64bit
    Linux开发环境:Ubuntu18.04.4 64bit
    虚拟机:VMware15.5.5


    进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装SecureCRT串口调试终端、VMware虚拟机等相关软件。
    本文档主要提供开发板的硬件资源测试方法。无特殊说明情况下,默认使用USB TO UART0作为调试串口,使用Linux系统启动卡(Micro SD方式)启动系统,通过路由器与PC机进行网络连接。
    本文测试板卡为创龙科技TLT3F-EVM开发板,它是一款基于全志科技T3四核ARM Cortex-A7 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核国产工业开发板,ARM Cortex-A7处理器单元主频高达1.2GHz。评估板由核心板和评估底板组成,核心板CPU、FPGA、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产工业级方案。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。


    评估板接口资源丰富,引出三路网口、三路USB、双路CAN、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出LVDS LCD、TFT LCD、MIPI LCD、CVBS OUT、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、Mali400 MP2 GPU、1080P@45fps H.264视频硬件编解码,并支持SATA大容量存储接口,方便用户快速进行产品方案评估与技术预研。

    系统启动测试

    接入电源,并使用Type-C线连接PC机和评估板的USB TO UART0调试串口。打开设备管理器,确认评估板USB TO UART0调试串口对应的COM端口号。



    图 1



    图 2



    打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无校验位。建立串口连接,如下图所示。

    图 3
    将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将启动方式选择拨码开关拨为0(并非拨码开关上文字),此档位将优先从Linux系统启动卡中启动系统。将评估板上电启动,系统将会自动登录root用户,串口终端会打印如下类似启动信息。
    图 4


    图 5

    备注:由于我司提供的Linux系统保留了部分官方驱动配置,且实际未使用到相关驱动的部分功能,因此在内核启动过程中,驱动会打印"OF: no ranges;cannot translate"、"failed to get normal led pin assign"等类似警告信息。此类警告信息不会影响系统的正常运行,请忽略即可。

    图 6
    核心板LED在系统启动过程中的变化说明如下:
    评估板上电后,电源指示灯LED0点亮;随后U-Boot第一阶段启动,LED1点亮;紧接着U-Boot第二阶段启动,LED2点亮;直至内核启动运行时,LED2熄灭,LED1进行心跳闪烁;eMMC进行读写时,LED2闪烁。
    图 7
    文件传送测试PC机和评估板之间传送文件的常见方式如下:
    • 通过Linux系统启动卡、U盘等存储介质方式拷贝。
    • 通过NFS、TFTP、OpenSSH等网络方式拷贝。
    通过Linux系统启动卡将配套的系统启动卡通过读卡器插至PC机挂载至虚拟机Ubuntu系统,如下图,查询系统启动卡设备节点,其中"/dev/sdb7"为Linux系统启动卡文件系统分区,具体以实际名称为准。

    图 8
    执行如下命令,将"/dev/sdb7"设备节点挂载至"/mnt/"目录下。
    Host# sudo mount /dev/sdb7 /mnt
    Host# ls /mnt/


    图 9
    执行如下命令在Ubuntu中新建文件test0,将test0文件拷贝至评估板文件系统root目录。
    Host# touch test0
    Host# sudo cp test0 /mnt/root/
    图 10
    文件拷贝完成后,请执行如下命令卸载设备,并拔出读卡器,从中取出Linux系统启动卡。
    Host# sudo umount /dev/sdb7
    图 11
    将Linux系统启动卡插至评估板Micro SD卡槽,评估板上电启动即可查看root目录下的文件。
    Target# ls
    图 12
    通过OpenSSHOpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。
    在Ubuntu中执行如下命令,查询是否已安装OpenSSH。
    Host# ssh -v
    图 13
    可看到系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。
    将评估板ETH0 RGMII网口通过网线连接至路由器。在评估板上执行如下命令可自动获取到IP,如下图所示。"-i"用于指定网卡,eth0为网卡名字,请根据实际情况修改。
    Target# udhcpc -i eth0
    图 14
    执行如下命令可查询IP地址。本次查询到的IP地址是192.168.0.87。
    Target# ifconfig
    图 15
    使用OpenSSH从PC机传送文件至评估板
    执行如下命令在Ubuntu中新建文件test1,并使用OpenSSH命令将test1文件拷贝至评估板文件系统根目录。
    Host# touch test1 //新建文件
    Host# scp test1 root@192.168.0.87:/
    图 16

    如出现提示"Are you sure you want to continue connecting (yes/no)?",请输入:yes。
    在评估板上执行如下命令可看到从PC机拷贝过来的文件,如下图所示。
    Target# ls /
    图 17

    • 使用OpenSSH从评估板传送文件至PC机
    执行如下命令在评估板文件系统根目录新建一个测试文件test2。
    Target# cd /
    Target# touch test2 //新建文件
    图 18

    在Ubuntu上执行如下OpenSSH命令将评估板测试文件test2拷贝至PC机"/home/tronlong/"目录下。如传输的是文件夹,请在scp后面添加参数"-r"。
    Host# sudo scp root@192.168.0.87:/test2 /home/tronlong/
    Host# ls
    图 19

    • 使用OpenSSH登录到评估板文件系统
    在Ubuntu执行如下命令可通过OpenSSH登录评估板文件系统。
    Host# sudo ssh root@192.168.0.87
    图 20

    如需退出登录,请执行exit或者logout命令。
    LED测试评估底板LED1、LED2与GPIO对应关系如下表所示,系统启动后默认点亮。
    表 1
    LED1
    LED2
    PB4
    PB10
    进入评估板文件系统,执行如下命令逐盏熄灭、点亮LED。
    Target# echo 0 > /sys/class/leds/user-led0/brightness //控制LED1灭
    Target# echo 1 > /sys/class/leds/user-led0/brightness //控制LED1亮
    Target# echo 0 > /sys/class/leds/user-led1/brightness //控制LED2灭
    Target# echo 1 > /sys/class/leds/user-led1/brightness //控制LED2亮
    图 21

    按键测试评估底板包含3个用户按键:USER0(KEY3)、USER1(KEY4)、USER2(KEY5)。进入评估板文件系统,执行如下命令查看用户按键对应的事件号。其中USER0(KEY3)和USER1(KEY4)对应的按键事件号为event1,USER2(KEY5)对应的按键事件号为event5。
    Target# cat /proc/bus/input/devices
    图 22

    执行如下命令,分别按下USER0(KEY3)和USER1(KEY4)进行按键测试,可看到如下打印信息,其中"0094"表示USER0(KEY3),"0095"表示USER1(KEY4),按"Ctrl + C"可终止测试命令。
    Target# od -x /dev/input/event1
    图 23
    执行如下命令,按下USER2(KEY5)进行按键测试,可看到如下打印信息,"00ca"表示USER2(KEY5),按"Ctrl + C"可终止测试命令。
    Target# od -x /dev/input/event5
    图 24
    时钟设置测试Linux系统中分系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。
    如需使用外部RTC时钟,请先安装RTC电池。如下为时钟相关的常用命令。
    查看系统时钟
    Target# date
    图 25
    查看RTC时钟
    Target# hwclock -u
    图 26
    设置系统时间
    Target# date -s "2023-01-01 8:30:00" //设置时间:2023年1月1日8点30分00秒
    Target# date

    同步系统时钟至RTC时钟
    Target# hwclock --systohc -u
    Target# hwclock -u
    同步系统和RTC的时钟
    执行指令后,系统会同步RTC时钟作为系统时钟。
    Target# hwclock --hctosys -u
    图 29
    DDR读写测试DDR读写速度受实际情况影响,测试速率以具体情况为准,如下测试数据仅供参考。
    DDR读速度测试
    进入评估板系统,执行如下命令对DDR进行读速度测试。
    Target# bw_mem 100M rd
    图 30
    测试从DDR中读取100MByte数据,可看到本次测试的读速度为1205.46MB/s。
    DDR写速度测试
    进入评估板系统,执行如下命令对DDR进行写速度测试。
    Target# bw_mem 100M wr
    图 31
    测试写入100MByte数据至DDR中,可看到本次测试的写速度为560.64MB/s。
    DDR拷贝速度测试
    进入评估板系统,执行如下命令对DDR进行拷贝速度测试。
    Target# bw_mem 100M cp
    图 32
    测试拷贝100MByte数据至DDR中,可看到本次测试的拷贝速度为281.57MB/s。
    Micro SD接口读写测试本小节使用SanDisk品牌、128GByte容量的Micro SD卡来测试评估板Micro SD接口性能。请参考《Linux系统启动卡制作及系统固化》文档将其制作成Linux系统启动卡再进行测试。不同的Micro SD卡以及不同的测试方法,对Micro SD接口测试结果将造成一定差异。
    请先取出Linux系统启动卡,根据底板丝印将启动方式选择拨码开关拨为0,将评估板上电,系统将从eMMC启动,再将Linux系统启动卡插入评估板Micro SD卡槽。进入评估板文件系统执行如下命令查看Micro SD卡信息。
    Target# fdisk -l
    图 33
    Micro SD接口写速度测试
    进入评估板系统,执行如下命令测试Micro SD接口写速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# mkdir -p /run/media/mmcblk1p7
    Target# mount /dev/mmcblk1p7 /run/media/mmcblk1p7
    Target# time dd if=/dev/zero of=/run/media/mmcblk1p7/test bs=1024K count=500
    time命令有计时作用,dd用于复制,从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。
    "if=/dev/zero"不产生IO,即不断输出数据,可用来测试纯写速度。
    图 34
    此处一共写500MByte测试数据至Micro SD卡的test文件,可看到本次测试的Micro SD接口写速度约为:500MB/28.169s = 17.733MB/s。
    Micro SD接口读速度测试
    执行如下命令测试Micro SD接口读速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/run/media/mmcblk1p7/test of=/dev/null bs=1024K
    "of=/dev/null"不产生IO,即不断接收数据,可用来测试纯读速度。
    图 35
    此处从test文件一共读出500MByte的数据,可看到本次测试的Micro SD接口读速度约为:500MB/27.727s = 18.032MB/s。
    eMMC读写测试将Linux系统启动卡插入评估板Micro SD卡槽,评估板上电启动完成后,执行如下命令查看信息。
    Target# fdisk -l
    图 36
    eMMC写速度测试
    执行如下命令对eMMC设备进行写速度测试。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# mkdir -p /run/media/mmcblk0p7
    Target# mount /dev/mmcblk0p7 /run/media/mmcblk0p7
    Target# time dd if=/dev/zero of=/run/media/mmcblk0p7/test bs=1024K count=500
    图 37
    此处一共写500MByte测试数据至eMMC设备,可看到本次测试的eMMC设备写速度约为500MB/12.301s = 40.647MB/s。
    (2)eMMC读速度测试
    执行如下命令对eMMC设备进行读速度测试。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/run/media/mmcblk0p7/test of=/dev/null bs=1024K
    图 38
    此处从eMMC设备中一共读出500MByte数据,可看到本次测试的eMMC设备读速度约为500MB/12.617 = 39.629MB/s
    SPI FLASH读写测试本小节对SPI FLASH的MTD0分区进行读写速度测试。SPI FLASH由ARM端和FPGA端共同控制,因此在测试之前,需停止FPGA端控制,并配置SPI总线工作模式,使SPI与SPI FLASH通信。
    执行如下命令,停止FPGA端控制,然后安装SPI FLASH驱动。
    Target# echo 68 > /sys/class/gpio/export
    Target# echo out > /sys/class/gpio/gpio68/direction
    Target# echo 0 > /sys/class/gpio/gpio68/value //停止FPGA的控制
    Target# echo 69 > /sys/class/gpio/export
    Target# echo out > /sys/class/gpio/gpio69/direction
    Target# echo 1 > /sys/class/gpio/gpio69/value //使能SPI与SPI FLASH通信
    Target# depmod -a
    Target# modprobe m25p80
    图 39
    执行如下命令,查看FLASH分区如下图所示。
    Target# cat /proc/mtd
    图 40
    执行如下命令,拷贝文件至该分区,测试分区功能是否正常。
    Target# time dd if=/CameraUI of=/dev/mtd0
    图 41
    SPI FLASH写速度测试
    进入评估板系统,执行如下命令对SPI FLASH进行写速度测试。
    Target# time dd if=/dev/zero of=/dev/mtd0 bs=1024K count=8
    图 42
    测试写入8MByte数据至SPI FLASH的MTD0分区下,可看到本次测试的SPI FLASH写速度约为:8MByte/19.248s = 0.415MB/s。
    SPI FLASH读速度测试
    重启评估板,进入评估板系统,执行如下命令对SPI FLASH进行读速度测试。
    Target# time dd if=/dev/mtd0 of=/dev/null bs=1024K
    图 43
    测试从SPI FLASH的MTD0分区读取8MByte数据,可看到本次测试的SPI FLASH读速度约为:8MByte/1.382s = 5.788MB/s。
    SATA接口测试本章节使用三星品牌、120GByte容量的SATA接口SSD固态硬盘(以下简称“SATA硬盘”)并划分一个FAT32格式20GByte容量的分区测试SATA接口。请将SATA硬盘通过数据线连接至评估底板SATA接口。
    进入评估板文件系统,执行如下命令可查询到SATA硬盘设备节点为sda1,容量为20GByte。挂载多个存储设备时,挂载名可能会变更,请以实际查询为准。
    Target# fdisk -l
    Target# df -h
    图 44
    图 45
    写速度测试
    执行如下命令,测试SATA接口写速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/dev/zero of=/mnt/usb/sda1/test bs=1024K count=1000
    图 46
    此处一共写1000MByte测试数据至SATA硬盘,可看到本次测试的SATA接口写速度约为1000MB/30.119s = 33.201MB/s。
    读速度测试
    执行如下命令,测试SATA接口读速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/mnt/usb/sda1/test of=/dev/null bs=1024K
    图 47
    此处从SATA硬盘中一共读出1000MByte的数据,可看到本次测试的SATA接口读速度为1000MB/5.326s = 187.758MB/s。
    USB接口读写测试USB HOST模式测试本章节进行USB HOST模式读写测试,使用SanDisk品牌、FAT32格式、16GByte容量的U盘,支持USB3.0/2.0。不同品牌、格式或容量的U盘,测试结果会有所差别。
    请通过Type-C转接头将U盘与评估板USB0 OTG接口连接,或直接将U盘与评估板USB1 HOST(双层)任意一个HOST接口连接。如下测试以USB1 HOST接口为例,其余接口方法一致,将U盘插至评估板USB1 HOST接口后,出现如下打印信息,可以从中看到U盘大小、挂载名等,如下图所示。出现如下信息说明正确识别到设备。
    图 48
    执行如下命令可查询挂载路径。挂载名和挂载路径请以实际查询为准,如下图所示。
    Target# df -h
    图 49
    备注:USB0 OTG默认是DEVICE模式,测试USB HOST模式时,需将USB0 OTG修改为USB HOST模式。请执行如下命令,修改adb.sh文件,在文件最后一行添加内容"cat /sys/bus/platform/devices/usbc0.2/usb_host"。
    Target# vim /adb.sh
    图 50
    图 51
    写速度测试
    执行如下命令,测试USB接口写速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/dev/zero of=/mnt/usb/sda1/test bs=1024K count=200
    图 52
    此处一共写200MByte测试数据至U盘,可看到本次测试的USB接口写速度约为:200MB/15.218s = 13.142MB/s。
    读速度测试
    执行如下命令,测试USB接口读速度。
    Target# echo 3 > /proc/sys/vm/drop_caches
    Target# time dd if=/mnt/usb/sda1/test of=/dev/null bs=1024K
    图 53
    此处从USB接口读取200MByte数据,可看到本次测试的USB接口读速度约为200MB/12.617s = 15.851MB/s。
    USB DEVICE模式测试本小节测试仅支持USB0 OTG接口,USB0 OTG默认是DEVICE模式,请通过Type-C线将PC机与评估板的USB0 OTG(CON17)接口进行连接。
    执行如下指令,将系统boot-resource分区(mmcblk1p2)虚拟化为U盘,PC机将识别该U盘。
    Target# echo /dev/mmcblk1p2 > /sys/class/android_usb/f_mass_storage/lun/file
    Target# cat /sys/bus/platform/devices/usbc0.2/otg_role //查看当前USB模式
    图 54

    图 55
    将U盘中的图片bootlogo.bmp拷贝至PC机中,在PC机查看图片是否正常显示,接着再把图片从电脑拷贝至U盘。
    图 56
    PC机可正常识别boot-resource分区虚拟化的U盘,并能正常查看boot-resource分区文件与正常读写,说明USB DEVICE功能正常。
    串口测试TTL UART6、TTL UART7串口使用TTL转Micro USB模块,将评估板的TTL UART6(CON7)或TTL UART7(CON8)串口连接至PC机的USB接口。本小节以TTL UART6(CON7)串口为例(设备节点为:ttyS6)进行演示。如需测试TTL UART7(CON8)串口,请将设备节点修改为ttyS7。
    打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,TTL UART6串口的端口号为COM4,如下图所示。
    图 57
    打开串口调试终端,COM4、COM9波特率设为115200,8N1,无校验位,并建立串口连接,如下图所示。
    图 58
    发送测试
    进入评估板文件系统,执行如下命令,设置TTL UART6串口。
    Target# stty -F /dev/ttyS6 ispeed 115200 ospeed 115200 cs8 //设置串口波特率
    Target# echo tronlong > /dev/ttyS6
    图 59

    图 60
    接收测试
    执行如下命令,由调试串口向TTL UART6串口发送数据,TTL UART6串口对应的串口调试终端将显示接收到的数据,按"Ctrl + C"可终止测试命令。
    Target# cat /dev/ttyS6 //等待接收UART6串口数据
    图 61

    图 62
    RS232 UART3串口使用RS232交叉串口母母线、USB转RS232公头串口线,将评估板的RS232 UART3串口连接至PC机的USB接口。
    打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,RS232 UART3串口的端口号为COM12,如下图所示。
    图 63
    打开串口调试终端,COM9、COM12波特率设为115200,8N1,无校验位,并建立串口连接,如下图所示。
    图 64
    发送测试
    进入评估板文件系统,执行如下命令,由调试串口向RS232 UART3串口发送数据,RS232 UART3串口对应的串口调试终端将显示接收到的数据。
    Target# stty -F /dev/ttyS3 ispeed 115200 ospeed 115200 cs8 //设置串口波特率
    Target# echo tronlong > /dev/ttyS3
    图 65

    图 66
    接收测试
    执行如下命令,并在RS232 UART3串口输入数据,调试串口对应的串口调试终端将显示接收到的数据,按"Ctrl + C"可终止测试命令。
    Target# cat /dev/ttyS3 //等待接收RS232 UART3串口数据
    图 67

    图 68
    RS485 UART4、RS485 UART5串口使用RS232转RS485模块、USB转RS232公头串口线,将评估板的RS485 UART4或RS485 UART5串口连接至PC机的USB接口。
    RS232转RS485模块与评估板RS485串口连接方法如下:
    • RS232转RS485模块485+端子,连接评估板RS485串口A端子。
    • RS232转RS485模块485-端子,连接评估板RS485串口B端子。
    • RS232转RS485模块GND端子,连接评估板RS485串口GND1端子。
    本章节以RS485 UART4串口(设备节点为:ttyS4)为例进行演示。如需测试RS485 UART5串口,请将设备节点修改为ttyS5。
    打开设备管理器,本次测试中调试串口USB TO UART0端口号为COM9,RS485 UART4串口的端口号为COM12,如下图所示。
    图 69
    打开串口调试终端,COM9、COM12波特率设为115200,8N1,无校验位,并建立串口连接,如下图所示。
    图 70
    发送测试
    进入评估板文件系统,执行如下命令进行调试串口与RS485 UART4串口互发数据。RS485 UART4串口测试步骤、现象与RS232串口类似。
    Target# stty -F /dev/ttyS4 ispeed 115200 ospeed 115200 cs8 //设置波特率
    Target# echo tronlong > /dev/ttyS4 //向RS485 UART4串口发送数据
    图 71
    图 72
    接收测试
    执行如下命令,并在RS458 UART4串口输入数据,调试串口对应的串口调试终端将显示接收到的数据,按"Ctrl + C"可终止测试命令。
    Target# cat /dev/ttyS4 //等待接收RS485 UART4串口数据
    图 73

    图 74


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 02:10 , Processed in 0.126993 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.