【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A 开发板测评
[复制链接]
1 LicheePi 4A 开发板简介
LicheePi 4A 是基于 Lichee Module 4A 核心板的国产高性能 RISC-V Linux开发板, 以 TH1520 为主控核心(4xC910@1.85G, RV64GCV,4TOPS @Int8 NPU, 50GFLOP GPU), 板载最大 16GB 64bit LPDDR4X,128GB eMMC,支持 HDMI+MIPI 双4K 显示输出,支持 4K 摄像头接入, 双千兆网口(其中一个支持POE供电)和 4 个 USB3.0 接口,多种音频输入输出(由专用 C906 核心处理)。
LicheePi 4A开发平台核心板和底板采用接插件的连接方式,板载外设资源和接口很多。
顶部视图:
底部视图:
LicheePi 4A核心板基础参数如下:
处理器 |
TH1520 |
CPU |
RISC-V 64GCV C910*4@1.85GHz
· 每核支持 64KB I cache 和 64KB D Cache
· 四核共享 1MB L2 Cache
· 支持 TEE 和 REE,TEE/REE 支持核数启动时可配置
· 支持自定义且接口兼容 RISC-V 的多核调试框架
· 独立电源域,支持 DVFS |
GPU |
· OpenCL 1.1/1.2/2.0
· OpenGL ES 3.0/3.1/3.2
· Vulkan 1.1/1.2
· Android NN HAL |
NPU |
支持 4TOPS@INT8 通用 NNA 算力,主频 1GHz
· 支持 TensorFlow、ONNX、Caffe
· 支持 CNN、RNN、DNN 等 |
VPU |
实时解码器,支持 H.265/H.264/VP9/8/7/6/AVS/AVS+/AVS2.0/VC1/MPEG4
· 支持 H.264 BP/MP/HP@level 5.1 解码,最大 4K 分辨率
· 支持 H.265/HEVC Main Profile@level 5.1 解码,最大 4K 分辨率
· 支持 VP9 Profile-2 解码,最大 4K 分辨率
· 支持 AVS2.0 解码,最大 4K 分辨率
· 支持 VP6/7/8/AVS/AVS+/VC1/MPEG4 解码,最大 1920x1080 分辨率
· 解码性能最大 4K@75fps
· 支持 H.264 BP/MP/HP@level4.2 编码,最大 4K 分辨率
· 支持 H.265/HEVC Main Profile 编码,最大 4K 分辨率
· 仅支持 I 帧和 P 帧
· 编码性能最大 4K@40fps |
RAM |
· 8GB 64bits LPDDR4X
· 16GB 64bits LPDDR4X |
ROM |
· eMMC: 可选 空贴、 8G、 32G、 128G |
OS |
Debian、Android、OpenWRT等 |
工作电压 |
12V供电 |
工作温度 |
-20℃ ~60℃ |
硬件特性如下表所示。
以太网 |
· 2 x 千兆以太网接口,可选 POE |
USB |
·· USB3.0 x 4
· USB2.0 x 1(仅用于烧录) |
音频接口 |
· 1 x 3.5mm 耳机接口
· 一个扬声器接口
· 两个板载麦克风 |
显示接口 |
· 1 x HDMI2.0
· 1 x 4-lane MIPI DSI |
摄像头接口 |
· 2 x 2-lane MIPI CSI
· 1 x 4-lane MIPI CSI |
GPIO |
· UART
· IIC
· SPI |
详细的功能参数以及接口请参看LicheePi 4A开发板的产品简介。
2 LicheePi 4A测试
下面对LicheePi 4A进行功能以及接口测试。
2.1 准备工作
在测试之前,需要准备以下材料:
1.12V2A DC 电源线
2.网线
3.Type-C数据线
4.鼠标键盘
5.HDMI线(非必须)
值得注意的是,HDMI、 MIPI-DSI等显示方式默认都打开了,可根据自己手头的显示设备选择相应的显示方式,当然,不使用显示设备也可以的。
Sipeed 官方镜像基于 Debian 系统修改适配。,默认镜像的帐号密码配置如下:
账户:debian,密码: debian;
账户: sipeed,密码:licheepi;
root 账户默认没有设置密码。
2.2 登录系统
进入设备的方式有很多种,如果不使用屏幕,可以使用串口和SSH登录,但是SSH登录需要先连接网络。
2.2.1 HDMI连接
笔者这里使用的是HDMI的方式,连接设备后界面如下:
可以插入鼠标键盘直接操作。
当然也可通过串口或者网络登录系统。
2.2.2 VNC登录
VNC(Virtual Network Computing)是一种基于图形界面的远程控制技术,它可以让用户通过互联网或局域网远程控制另一台计算机。在Linux系统中,VNC也被广泛应用于远程管理和维护。
常见的VNC工具
- RealVNC:是一款功能强大的VNC工具,支持多种操作系统,包括Windows、Linux、Mac OS X等,具有高安全性和可靠性。
- UltraVNC:是一款免费的VNC客户端和服务器软件,支持Windows操作系统,提供了远程桌面、文件传输、文本聊天等功能。
- TightVNC:是一个小巧而强大的VNC工具,支持Windows、Linux以及Unix等多种操作系统,具有较高的安全性和性能。
- TigerVNC:是一个开源的VNC工具,支持Windows、Linux以及Mac OS X等多种操作系统,具有稳定性和高性能。
- TeamViewer:是一款针对远程支持、远程控制和在线协作的应用软件,可以实现桌面共享、远程协助、文件传输等功能。
笔者使用的是RealVNC。
安装VNC Server
首先需要安装VNC Server,可使用以下命令进行安装:
#sudo apt-get install tightvncserver
安装完成后,使用以下命令启动VNC Server:
#tightvncserver或者vncserver
然后回提示设置VNC密码。
启动VNC Server后,会提示设置VNC密码,输入两次密码即可。
杀掉原桌面进程,输入命令(其中的:1是桌面号):
#vncserver -kill :1
然后配置/home/sipeed/.vnc/xstartup。
输入以下命令生成新的会话:
#vncserver :1
执行成功以后,如下图所示:
VNC连接LicheePi 4A桌面
根据自己的系统下载相应的版本。然后安装即可,笔者就不再赘述了。
接下来就是设备连接了。打开realvnc,新建连接,输入IP和账号。
然后点击“OK”即可。
等待片刻即可输入登录密码。
登录成功后,界面如下。
2.2.3 串口登录
LicheePi 4A 的系统串口是 UART0,在侧边插针中有引出。
你可以使用 USB 转串口模块连接该串口,即 U0-RX 和 U0-TX,注意交叉连接,以及 GND 连接。如果串口驱动没有问题,在设备管理器可看到串口号。
接下来就可使用终端工具登录系统,笔者这里使用的是Xshell,当然也可使用其他的工具,比如putty。
登录成功后打印信息如下:
串口设置: 波特率 115200、数据位 8、停止位 1、无校验位、无流控制
2.2.4 SSH登录
在使用之前,需要事先连接网络,笔者这里使用的是以太网,事先需要使用串口的登录,然后输入以下命令查看IP地址:
# ifconfig
也可修改网络 IP地址 ,使用以下命令:
# ifconfig eth0 192.168.2.5
接下来就可使用SSH登录系统了,还是可以使用Xshell等工具,当然也可在Ubuntu系统中使用SSH登录。
值得注意的是,如果使用root,可以通过串口登录进系统,使用passwd修改。
和使用串口登录一样。
网络检查没有ifconfig命令。首先安装net-tools
#sudo apt-get install net-tools
若安装好之后,还是找不到该命令,如下。
依次输入以下命令:
#whereis ifconfig
#alias ifconfig='/sbin/ifconfig'
之后再次启用ifconfig命令就可以正常使用了。
当然还可使用绝对路径。
当然还可使用ip addr或者ip a。
2.3 测试
2.3.1 系统信息
1.硬件检测
# dmesg #检测硬件的boot启动信息,也就是系统启动的log信息。
2.查看内核和CPU信息
# uname -a #系统概述
# cat /proc/cpuinfo # CPU信息
3.查看内存信息
# cat /proc/meminfo #内存参数
# free -m # 内存使用情况(-m for MB)
4.设备信息
# cat /proc/devices # 显示设备以及对应的设备号
2.3.2 存储设备速度测试
1.DDR读写测试
在测试之前,需要安装测试工具,笔者这里使用开源的mbw工具。mbw作为一个内存宽带测试工具,可以测试在内存拷贝memcpy、字符串拷贝dumb、内存块拷贝mcblock三种不同方式下的内存拷贝速度。
首先使用git下载源码,没有Git先安装。
然后进入源码目录中,使用make编译。
没有make和gcc工具先安装。
# apt-get install make gcc
接下来就是测试过程。help获取相关参数说明:
一般会三种测试后查看平均值,平均值越高测试内存带宽越高。
读写速度测试命令如下:
# ./mbw -n 10 256
读写速度3647.394M/s和596.984M/s。
读写速度还是可以的。
2.eMMC读写测试
eMMC读写速度测试命令如下:
写入测试:
# time dd if=/dev/zero of=/test bs=1M count=500 conv=fsync
读取测试:
# time dd if=/test of=/dev/null bs=1M
读写速率分别为2.1GB/s、83.4MB/s。
3.TF 卡测试
在开启前将 TF 卡插入开发板底板上的 TF 卡插槽,终端打印信息如下:
将TF 卡挂载到文件系统 /media/目录
为了能够挂载U盘,需要在电脑上创建一个挂载点。可以使用以下命令:
# mkdir /media/mmcblk
在这个例子中,我们将挂载点设置为“/media/sda”,但是具体位置可以根据需求进行更改。
在确定了U盘所在的设备以及创建挂载点之后,就可以进行挂载操作了。使用以下命令:
# mount /dev/mmcblk1p1 /media/mmcblk
写入测试:
# time dd if=/dev/zero of=/media/mmcblk/test bs=1M count=500 conv=fsync
读取测试:
# time dd if=/media/mmcblk/test of=/dev/null bs=1M
读写速率分别为2.1GB/s、18.3MB/s,当然啦,不同品牌的TF卡速度会有差异。
值得注意的是,先要进行写测试在进行读测试。
4.USB 2.0/USB3.0
LicheePi 4A支持USB接口,用户可以在任何一个板载USB HOST接口上连接USB鼠标、 USB键盘、 U盘等设备。
下面测试USB接口,插入U盘,打印信息如下:
在Linux操作系统下,如果想要挂载U盘,首先需要找到U盘所在的设备。可以通过以下命令来查看:
# sudo fdisk -l
该命令会列出电脑中所有的储存设备,通过观察设备的大小来确定哪一个是U盘。
为了能够挂载U盘,需要在电脑上创建一个挂载点。可以使用以下命令:
# mkdir /media/sda
在这个例子中,我们将挂载点设置为“/media/sda”,但是具体位置可以根据需求进行更改。
在确定了U盘所在的设备以及创建挂载点之后,就可以进行挂载操作了。使用以下命令:
# mount /dev/sda /media/sda
该命令中,“/dev/sda”是U盘所在的设备的路径,在不同的电脑上可能会有所不同。如果在挂载的同时想要指定文件系统的格式,可以使用“-t”参数。例如:
# mount -t ntfs /dev/sda /media/sda
写入测试:
# time dd if=/dev/zero of=/media/sda/test bs=1M count=100 conv=fsync
读取测试:
# time dd if=/media/sda/test of=/dev/null bs=1M
当然啦,不同种类的U盘也会影响读写速度。
2.3.3 网络测试
LicheePi 4A开发板配备2个网口,网速测试方法都是一样的,这里使用系统自带的Iperf工具测试TCP带宽。
Iperf 是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽和UDP特性。
首先安装iperf工具。
#apt-get install iperf
TCP测试:
服务器执行:#iperf -s -i 1 -w 1M
客户端执行:#iperf -c host -i 1 -w 1M 其中-w表示TCP window size,host需替换成服务器地址。
UDP测试
服务器执行:#iperf -u -s
客户端执行:#iperf -u -c 10.32.0.254 -b 900M -i 1 -w 1M -t 60
下面以TCP为例进行测试,这里测试的是ETH0。
先打开服务器:
# iperf -s -i 1 -w 1M
然后使用SSH登录,新建一个终端,再次打开一个终端:
# iperf -c 192.168.2.3 -i 1
速度还是可以的。
2.3.4 串行总线测试
1.串口测试
LicheePi 4A平台支持多路串口,用户可用串口分别为UART0-UART5, 在开发板中对应设备名称分别为ttyS0-ttyS5,引出了UART0-UART3,其中 UART0为调试串口。
1.串口配置
首先检查下设备。
# ls /dev/ttyS*
然后配置串口,用stty工具查询其通信参数。
# stty -F /dev/ttyS1
可以自行修改波特率,方法如下:
# stty -F /dev/ttyS1 ispeed 115200 ospeed 115200
其中ispeed为输入速率,ospeed为输出速率
2.串口发送
使用 echo 命令向终端设备文件写入字符串
# echo LicheePi 4A> /dev/ttyS1
3.串口接收
使用 cat命令接受串口数据。
# cat /dev/ttyS1
然后使用串口助手发送数据即可。
接收输出后会回显,关闭回显方法如下。
# stty -F /dev/ttyS1 -echo
然后再次接收数据就不会有回显了。
2.I2C
LicheePi 4A 上有多个 I2C 设备(I2C0/1/2/3),其中 0/1/3 用于连接 I2C IO 扩展芯片,I2C2 预留在对外插针上。
这里我们使用 i2c-tools 来进行 i2c 验证操作,镜像默认预装了 i2c-tools:
列出所有I2C总线:
检测 I2C 总线上的设备,可见 PCA9557PW 的 I2C 地址为 0x18,与原理图相符:
此外还可以使用 i2cdump 来 dump 指定 i2c 地址的所有寄存器,用 i2cget 来读出指定 i2c 地址的指定寄存器值,用 i2cset 来写入指定 i2c 地址的指定寄存器值。
|