【北京迅为】《iTOP龙芯2K1000开发指南》-第三部分 迅为龙芯开发板快速体验

龙芯2K1000处理器集成2个64位GS264处理器核,主频1GHz,以及各种系统IO接口,集高性能与高配置于一身。支持4G模块、GPS模块、千兆以太网、16GB固态硬盘、双路UART、四路USB、WIFI蓝牙二合一模块、MiniPCIE等接口、双路CAN总线、RS485总线,扩展能力更强。龙芯2K1000已经广泛应用于工控、轨道交通、电力、能源等领域,经过大量项目验证,是嵌入式领域一颗新星。拥有完全自主知识产权,供货稳定,也是龙芯中科面向嵌入式开发的主推产品。

【实验平台】:迅为龙芯2K1000开发板
【视频介绍】:成体系 | 龙芯教学视频

【内容来源】《iTOP龙芯2K1000开发指南》
【全套资料及网盘获取方式】联系淘宝客服加入售后技术支持群内下载


第三部分 迅为龙芯开发板快速体验

第三部分针对嵌入式开发/学习人员进行一个基础的环境搭建讲解,通过这一部分,可以快速启动龙芯开发板并进行测试,初步建立起一个对龙芯开发板的整体认识。

3.1 奔跑吧!迅为龙芯开发板(必看)

3.1.1 开箱LS2K1000开发板

大家在拿到开发板以后首先检查下配件,配件如下所示:

1.电源适配器一个

2. 232串口线一根

3.网线一根

4. usb转串口一个

5.仿真器一个(选配)

6.亚克力板和风扇

3.1.2 开发环境说明

作者使用的开发环境如下,大家如果是初次接触Linux和龙芯开发板,建议电脑主机系统和虚拟机ubuntu系统的版本以及网络连接方式和作者保持一致。

电脑配置:

CPU:I510400

显卡:集成显卡

内存:16G

存储:2T

系统:win10企业版10.0.17134版本17134

网络连接:电脑以及开发板均使用有线连接到路由器。

建议:上述配置不是硬性要求。但是大家在选择开发电脑时,内存最好不要低于8G,存储不要低于500G,CPU的性能决定编译速度,CPU性能越强,编译源码的速度越快。显卡无要求,可以点亮屏幕即可。网络连接推荐使用路由器连接电脑以及开发板,避免造成后面ubuntu不能上网,不能互相ping通等问题。

虚拟机配置(后面会教大家安装):

VMware版本:15.5

Ubuntu系统版本:20.04

建议大家不要使用双系统,为什么我们不选择双系统呢?首先,使用双系统,也就是一台电脑安装Windows和linux系统俩个系统,我们的数据会很不安全,如果双系统的其中一个系统崩溃了,可能电脑就不能启动了,这样我们的数据就损失了,所以,我们不能把鸡蛋都放在同一个篮子里面。其次,在开发的过程中,我们需要经常在Windows和linux直接互相传文件,使用双系统也很不方便。所以这里我们采用Windows+虚拟机的开发方式。

3.1.3 安装PL2303串口驱动

usb转串口也叫U 转串口,顾名思义,它可以把没有串口的电脑通过usb接口虚拟一个串口出来,这样就让电脑具备了串口的功能,从而可以使得开发板和 PC 之间通过串口通讯了。

因为随开发板一起的usb转 串口采用的是 PL2303芯片,所以首先我们需要安装PL2303的USB转串口驱动。有的电脑当我们插上usb转串口以后,会自动安装驱动。如果您的电脑可以自动安装驱动,或者已经安装过PL2303驱动,则不需再次安装。

大家可以使用资料里面的驱动安装包来安装PL2303驱动,也可以使用驱动精灵,360驱动大师等专业的驱动安装软件来自动安装驱动。大家任选其一即可。

下面详细的讲解一下,在 PC 机上, USB转串口驱动的安装(以win10为例)。

驱动安装包位置:LS2K1000开发板资料\03_开发所需软件及驱动\1_PL2303驱动\win10系统PL2303驱动\Setup 32.64位.exe

1.双击打开Setup 32.64位.exe。

2.在弹出的界面选择modify,并点击下一步,如下图所示:

3.点击next,如图所示

4.到进度条执行完毕,我们点击finish,则安装成功

3.1.4 开发板装配流程

安装好usb转串口驱动以后,我们就可以往下进行了。这一小节我们来看一下开发板的组装:

3.1.4.1连接调试串口

首先我们使用配带的232串口数据线连接和 usb转串口连接起来,如下图所示:然后将232串口线公头一端连接到开发板的CON2座子上,如下图所示:

232串口线连接的usb转串口的usb接口一端连接到电脑的usb接口上。

3.1.4.2连接RGB屏幕

如果我们购买了RGB接口的屏幕,我们需要使用配带的FPC软排线将屏幕与开发板的RGB接口连接起来。这里以7寸RGB屏幕为例。

首先我们把FPC软排线和屏幕连接起来,注意,FPC线有铜箔的一面朝下。如下图所示:

然后将FPC软排线的另一端连接到开发板的RGB接口上,RGB接口如下图所示:

3.1.4.3连接HDMI屏幕

如果使用HDMI的显示器, 我们需要使用HDMI线连接开发板的HDMI接口到HDMI显示器的接口上,开发板hdmi接口如下图所示

注:HDMI屏幕和RGB屏幕二选一即可。

3.1.4.4连接电源适配器

我们使用配带的电源适配器,开发板为12V供电,连接电源适配器到开发板的电源接口,电源适配器接口如下图所示:

3.1.5 开发板开关机

 龙芯开发板的启动方式有两种,一种是上电直接启动,一种是上电通过按键启动。开发板默认为上电直接启动。

开机操作:

上电直接启动:

开发板采用12v电源供电,连接好电源并按下自锁开关直接开机。

上电后通过按键启动:

拔掉开发板上的跳线帽,则开发板上电并打开开关后并不会直接启动,需要按开发板上的ON/OFF按键启动,如下图所示:

关机操作:

长按4秒开发板上的on/off按键即可关机,关机完成后在关闭自锁开关。或者直接使用自锁开关进行硬关机操作。

注:因为电容需要彻底放电,所以关机完成后需要等待几秒钟才算真正关机完成,如果关闭完自锁开关以后立马打开自锁开关,开发板会直接启动。因为这时候还没有真正关机完成。开发板自动开机需要保存RTC电池是有电的,否则不能自动开机

3.1.6 安装MobaXterm终端软件

按照前面几节的操作我们已经安装好了PL2303串口驱动并装配好了开发板,但是我们也不要先基于上电哦。我们需要先在电脑上安装一个串口调试终端用来调试开发板,这里我们选择的是MobaXterm软件,因为这个软件功能非常强大,不光可以作为串口调试终端,也可以使用ssh连接ubuntu虚拟机或者开发板。一个软件就可以搞定我们的需求。

3.1.6.1 软件下载

我们可以到MobaXterm的官网来下载,下载地址:https://mobaxterm.mobatek.net/download.html,在官网里面有俩个版本,我们选择免费版本即可。

MobaXterm软件所在位置:LS2K1000开发板资料\03_开发所需软件及驱动\2_MobaXterm软件

注:资料里面提供的为汉化版本。

3.1.6.2 创建串口会话

双击打开软件,点击菜单栏 「会话」 --> 「新建会话」,即可弹出 「会话设置」 对话框,如下图所示:

 在弹出会话设置对话框里选择串口,选择电脑识别出来的u转串口的com口,如果没有识别出来请检查PL2303的驱动是否安装成功,设置串口波特率为115200,并在高级串口设置里面设置流控为无,全部设置完成以后点击确定,就可以完成会话创建了。如下图所示:

3.1.6.3 检查是否连接成功

我们把4.1章节到4.5.2的准备工作做好之后,就可以给开发板上电了,如果这时候在调试终端里面成功显示出来了打印信息,如下图所示。说明最基本的开发环境您已经搭建完成并且成功运行了龙芯开发板里面的操作系统,是不是很兴奋!如果没有打印信息也不要沮丧,重点检查一下PL2303驱动,波特率,com口这些有没有设置对,相信你一定可以成功!

3.2开发板快速测试

开发板烧写测试的文件系统为buildroot,路径:

3.2.1 led测试

Led有俩个,分别是led3和led4,开发板led引脚关系如下:

led灯

管脚

其他复用关系/使用关系

Led3

LS2K_GPIO0

       无

Led4

LS2K_GPIO1

触摸芯片GT911使用

进入开发板系统后,在控制终端通过sysfs来控制对应的GPIO进而控制对应的led灯,命令如下:

LED3:

echo 0 > /sys/class/gpio/export   //导出管脚LS2K_GPIO0

echo out > /sys/class/gpio/gpio0/direction //设置的方向的为输出

echo 1 > /sys/class/gpio/gpio0/value //点亮led

echo 0 > /sys/class/gpio/gpio0/value //熄灭led

如下图所示: 

LED4测试同理,但是这个灯默认被触摸芯片GT911使用,所以要用上面的控制方法需要在内核里面去掉gt911的驱动。所以这里我们在PMON命令行测试LED4.命令如下:

m4 0xbfe10500 0xFFDFFFF0  //把GPIO1设置为输出

m4 0xbfe10510 0x0020000E  //置1

m4 0xbfe10510 0x0020000C  //置0

如下图所示: 

3.2.2 beep测试

开发板的上蜂鸣器为无源蜂鸣器,开发板蜂鸣器引脚关系如下:

蜂鸣器

管脚

其他复用关系/使用关系

B1

PWM3

默认复用为GPIO

我们在开发板上输入以下命令来测试蜂鸣器:

devmem 0x1fe10420 32 0x00039d19 //设置GPIO复用为PWM

cd /sys/class/pwm/pwmchip3/  //进到PWM3目录

echo 0 > export  //导出pwm

cd pwm0/

echo 250000 > period  //设置PWM周期

echo 125000 > duty_cycle  //设置低电平的占空比

echo 1 > enable  //开启PWM,此时蜂鸣器响

echo 0 > enable  //关闭PWM,此时蜂鸣器不响

如下图所示:

3.2.3 按键测试(需要修改)

我们使用命令cd /ctest/key/进到开发板的/ctest/key/文件夹,在这个文件下有按键的测试程序以及源码,如下图所示:

输入命令./key1 &运行按键测试程序,并按开发板上靠近usb口的按键,如下图所示

可以发现,每次按下按键的时候value的值就会发生变化,如下图所示:

测试源码位置:LS2K1000开发板资料\11_测试文件以及源码\2_KEY

3.2.4 系统信息测试

1.查看系统内核版本

uname -a

如下图所示:

2.查看CPU信息

3.查看内存信息

cat /proc/meminfo

如下图所示:

3.2.5 网口测试

开发板上一个有eth0和eth1俩个自协商10M/100M/1000M网口,J7对应的为eth0,J8对应的为eth1,我们可以使用命令udhcpc来自动获取IP,-i指定的为网卡名称,如果不指定,默认使用eth0,命令如下:

udhcpc -i eth0

如下图所示:

使用ifconfig查看网络信息,如下图所示:

关闭和打开网口

Ifconfig eth0 down //关闭网口,eth0为网卡名称,请根据实际情况决定

Ifconfig eth0 up //打开网口,eth0为网卡名称,请根据实际情况决定

测试是否可以上网,输入命令ping www.baidu.com -c 3,如下图所示,-c 3表示ping 3次,如下图所示:

网速测试,buildroot文件系统里面集成iperf3工具,iperf3工具是一个网络性能测试工具,可以用来测试带宽,延迟等。

我们需要测试Ubuntu与开发板的通信速度,所以Ubuntu系统里面也需要安装iperf3工具,可以使用命令sudo apt-get install iperf3进行安装,如下图所示:

安装好iperf3测试工具以后,我们以Ubuntu为服务器,开发板为客户端进行测试,我们先使用命令ifconfig看下Ubuntu的ip,如下图所示:

从上图可以看出,Ubuntu的ip地址为192.168.1.57,大家根据自己的实际情况为准,接着输入命令iperf3 -s启动Ubuntu的服务端,如下图所示:

最后开发板作为客户端使用命令iperf3 -c 192.168.1.57 -i 1连接Ubuntu服务端,-i 1 表示通信周期为1s,IP地址为Ubuntu的ip地址,开发板打印如下图所示:

Ubuntu终端打印如下图所示:

特别注意:开发板的网是自协商10M/100M/1000M网口,因为作者这里的路由器是百兆的,所以最高速度只能到百兆,如果您要测试千兆,需要保证网线,路由器/交换机,电脑网卡全部支持千兆网。

网口eth1的测试同理,这里就不太重复叙述,注意在测试eth1的时候,需要把网线插在eth1上。

3.2.6 wifi测试

开发板板载的wifi型号为RTL8723BU,接口为ubs接口,在测试之前我们需要保证网卡是打开的,输入命令ifconfig tunl0 up打开网卡,tunl0为RTL8723BU的名字。打开网卡以后使用ifconfig命令查看网卡信息,如下图所示:

3.2.6.1 上网模式测试

上网模式指的就是使用wifi模块连接到无线网络并检查是否可以上网。使用命令ifconfig wlan0 up 启动wifi网卡,如下图所示:

作者这里使用手机热点做为要连接的wifi来测试,我们输入命令iwlist wlan0 scan扫描开发板附近的wifi,如下图所示:

我们要连接的wifi:

使用命令vi /etc/wpa_supplicant.conf打开配置文件配置wifi的账号和密码。如下图所示

修改前:

修改完成:

使用命令mkdir /var/run/wpa_supplicant -p创建wpa_supplicant工具需要的目录,如下图所示:

一切准备好以后,使用命令wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &连接wifi   

连接成功会出现以下打印:

接着使用命令udhcpc -i wlan0 动态获取IP地址并使用命令ifconfig查看是否成功获取,如下图所示:

从上图我们可以看出,wlan0获取IP成功,IP为192.168.168.30,IP 地址分配成功后, 可以使用ping www.baidu.com -c 3命令来测试一下网络是否正常使用, 命令如下所示

3.2.7 CAN接口测试

开发板板载了两路 CAN 接口, 我们可以使用这两路 CAN 接口验证 CAN 的数据收发。首先我们使用电缆线连接 CAN1 和 CAN2(can 连接的时候: H 接 H、 L 接 L) , 如下图所示:

开发板上的两路 CAN 默认是关闭的, 我们在调试串口终端输入“ip link set can0 up type can bitrate 125000 triple-sampling on” 命令, 设置 CAN0 的波特率是 125000, 并打开 CAN0, 运行结果如下图所示:

然后我们在调试串口终端输入“ip link set can1 up type can bitrate 125000 triple-sampling on” 命令, 设置CAN1 的波特率是 125000( CAN 总线在进行数据收发的时候, 通信双方的波特率要设置成一致) , 并打开CAN1, 运行结果如下图所示:

接下来我们使用 CAN0 作为数据接收端, 我们需要在调试串口终端输入“candump can0 &” 命令, 运行结果如下图所示: 

然后我们使用 CAN1 作为数据发送端, 我们在调试串口终端输入“cansend can1 6A0#11.22.33.44.55.66.77.88”命令, 发送数据, 其中的 6A0 是帧 ID, #后面的是数据, 共 8 个字节。 运行结果如下图所示:

上图我们可以看到 CAN1 发送数据以后, 后台运行的 CAN0 接收程序收到了 CAN0 的数据, 并显示出来, 接收到的数据和发送的数据内容一致。

数据接收端和发送端也可以互换, 可以参考上面的命令(主要是解释和发送程序的 CAN 接口设置对)。

3.2.8 USB接口测试

我们将U盘(FAT32格式)查到开发板的任意usb口上,可以在串口控制台看到开发板的成功识别到u盘的打印信息,如下图所示:

从上图可以看出,U盘识别到节点为sdb1(这里大家要根据自己的实际情况来确定),接着我们输入命令mount /dev/sdb1 /mnt/将U盘挂载到mnt目录下,如下图所示:

接着我们使用命令 ls /mnt/可以看到U盘下面的文件,说明U盘已经挂载成功,如下图所示:

3.2.9 4G模块测试

首先我们将4G模块天线,以及手机卡查到开发板上,然后开机启动开发板,如下图所示:然后输入命令pppd call wcdma &,如下图所示:

接着我们输入命令ifconfig查看是否成功获取到IP,如下图所示:

从上图可以发现,以及成功获得了IP地址,IP地址为10.61.177.207,接着我们输入命令ping www.baidu.com -c 3查看是否可以上网,如下图所示:

从上图可以看出,可以使用4G正常上网。

3.2.10 485接口测试

测试开发板上的485通信,我们需要一个485转USB模块或者另外一个支持485通信的开发板,作者这里使用的是485转USB来测试开发上的485功能。如下图所示:

注:此模块迅为官网并不售卖,如需使用该模块请在淘宝上搜索485转USB模块关键字进行购买即可!

我们将485转USB的A相和开发上485接口的A相相连接,B相和开发上485接口的B相连接,如下图所示:

接着我们使用命令 cd cd /ctest/485_232_TTL/进到/ctest/485_232_TTL/目录下,在这个路径下有485测试使用的可执行程序,注:485,232,TTL测试使用的均为同一个程序,因为龙芯的开发板已经在硬件上做了自收发功能,所有不必在由软件控制接收和发送了,也就是说只要把485当成串口操作即可,所以他们的测试程序都是一样的,如下图所示:

硬件原理图如下图所示:

从硬件原理图上我们可以看出,485使用的串口为串口4,所以对应的设备节点为/dev/ttyS4。

在运行测试程序之前,我们需要打开串口助手,串口助手路径1.LS2K1000开发板资料\03_开发所需软件及驱动\7_串口助手

打开后串口助手设置如下:

设置完成后,点击打开串口,如下图所示:

然后我们在开发板上输入命令./uart_write_read  /dev/ttyS4运行测试程序, /dev/ttyS4为485所使用的串口节点,如下图所示:

如果485通信正常,我们可以在串口助手上看到输出的打印信息helloworld,如下图所示:

 由此可以说明开发板通过485向串口助手发送数据成功。

  接着我们在串口助手的字符串输入框里面输入小写的字母z,并点击发送,当开发板收到小写字母z以后会终止程序,如下图所示:

如果开发板成功收到了字母z,则串口助手不在打印hello world,同时测试程序退出,如下图所示:

由此可以说明串口助手通过485像开发板发送数据成功。

测试源码位置:LS2K1000开发板资料\11_测试文件以及源码\1_485_232_TTL

3.2.11 232接口测试

开发板上有俩路232接口,一路232接口是用来作为调试串口来使用,对应的设备节点为/dev/ttyS0,另一路232默认作为232串口来使用,对应的设备节点为/dev/ttyS3,硬件原理图如下图所示:

测试232接口,我们需要在用一路usb转串口连接到开发板的con1上,如下图所示:

这里我们需要两套串口线和232转USB来测试,因为我们还要连接调试串口到电脑进行调试,大家可以自行在找一个串口线。

硬件连接好以后,我们使用命令 cd cd /ctest/485_232_TTL/进到/ctest/485_232_TTL/目录下,在这个路径下有232测试使用的可执行程序,注:485,232,TTL测试使用的均为同一个程序

如下图所示:

在运行测试程序之前,我们需要打开串口助手,串口助手路径1.LS2K1000开发板资料\03_开发所需软件及驱动\7_串口助手

打开后串口助手设置如下:

设置完成后,点击打开串口,如下图所示:

然后我们在开发板上输入命令./uart_write_read  /dev/ttyS3运行测试程序, /dev/ttyS3为232所使用的串口节点,如下图所示:

如果232通信正常,我们可以在串口助手上看到输出的打印信息helloworld,如下图所示:

由此可以说明开发板通过232向串口助手发送数据成功。

 接着我们在串口助手的字符串输入框里面输入小写的字母z,并点击发送,当开发板收到小写字母z以后会终止程序,如下图所示:

如果开发板成功收到了字母z,则串口助手不在打印hello world,同时测试程序退出,如下图所示:

由此可以说明串口助手通过232像开发板发送数据成功。

测试源码位置:LS2K1000开发板资料\11_测试文件以及源码\1_485_232_TTL

3.2.12 SSH测试

测试ssh之前,我们需要先给开发板添加一个普通用户,我们在开发板的根目录下创建一个home文件夹,然后使用命令adduser fashi创建一个名为fashi的用户,密码这里作者设置为topeet,如下图所示:

检查sshd服务是否启动,在开发板的命令行输入命令ps -a | grep "sshd"来查看sshd服务有没有启动,sshd里面包含了ssh服务,如下图所示:

可以看出,sshd服务已经成功启动。

我们打开MobaXterm软件,创建一个ssh回话,并输入开发板的IP和刚才我们新添加的用户fash,如下图所示:

输入密码topeet,这个密码是在创建fashi这个用户的时候设置的,登录成功如下图所示:

我们不光可以远程登录开发板,也可以使用ssh来传输文件,打开MobaXterm软件,创建一个sftp会话,并输入开发板的IP和刚才我们新添加的用户fash,如下图所示:

登陆成功如下图所示:

接着我们就可以通过sftp来实现开发板和win电脑之间的文件传输了。

3.2.13 Python测试

开发板上移植的python版本为3.9.5,我们输入命令python -V可以查看python的版本,如下图所示:

Python环境测试,在开发板上输入python3.9,然后输入10+10并敲回车进行加法运算,如下图所示:

可以看出,可以正确计算10+10的结果为20,按组合键ctrl+d可以退出python环境。

3.2.14 MQTT测试

mqtt只是一种协议,我们这里学习的是Mosquitto,Mosquitto是MQTT的实现方法。为什么我们的这里使用的是Mosquitto而不是其他的实现方法呢,因为Mosquitto功能强大,不仅可以作为消息的发布者和订阅者,也可以做为服务器。其他工具有的功能他基本都有,所以我们使用的是Mosquitto。

mqtt里面中有三者角色:

一个是消息的发布者(发布者)

一个是消息的转发者(服务器)

一个是消息的订阅者(订阅者)

接下来我们分别测试一下这三种角色,不管测试那种角色,这里我们都要利用到Ubuntu系统,我们先在Ubuntu系统安装mosquitto,使用命令sudo apt-get install mosquitto和sudo apt-get install mosquitto-clients进行安装。

安装完成后使用命令service mosquitto start开启mosquitto服务,如下图所示:

使用命令ps -ef | grep mosquitto检查是否启动成功,如下图所示:

由上图可以看出,mosquitto服务已经启动成功。

3.2.14.1 开发板作为服务器

开发板的mosquitto服务默认是启动的,我们可以输入命令ps -ef | grep mosquitto检查是否启动成功,启动成功如下图所示:

接着我们使用命令vi /etc/mosquitto/mosquitto.conf打开mosquitto的配置文件,修改listener的参数为8883,如下图所示:

接着我们修改参数allow_anonymous,我们把它修改为true,也就是允许匿名连接,如下图所示:

设置完成后输入命令mosquitto -c  /etc/mosquitto/mosquitto.conf重启mosquitto 服务,启动成功如下图所示:

从上图可以看出,端口号已经被成功设置为8883.

然后我们在虚拟机Ubuntu输入命令mosquitto_sub -h 192.168.1.18 -t "topeet" -v -p 8883连接mosquitto的服务器, 其中参数-h是指定要连接的MQTT服务器,这里的192.168.1.18为开发板的IP,大家要根据自己的IP来设置,-t订阅主题,此处为topeet,所以主题为topeet,-v打印更多的调试信息,-p 指定了要连接的端口号为8883如下图所示:

同时开发板上也会显示已经成功连接,如下图所示:

此时,开发板是作为服务器的,也就是消息的转发者,刚才我们在虚拟机Ubuntu上输入命令的终端为订阅者,所以还需要创建一个发布者,我们在虚拟机Ubuntu在打开一个新的终端作为发布者,然后输入命令mosquitto_pub -h 192.168.1.18 -t "topeet" -p 8883 -m "Hello MQTT",其中参数-h是指定要连接的MQTT服务器,这里的192.168.1.18为开发板的IP,大家要根据自己的IP来设置,-t订阅主题,此处为topeet,-m指定消息内容,这里发送的是Hello MQTT。如下图所示:

由上图可以看出,作为消息订阅者的终端以及成功订阅到消息Hello MQTT,说明开发板作为mosquitto服务器成功。

3.2.14.2 开发板作为发布者

首先检查虚拟机Ubuntu的mosquitto服务有没有启动成功,因为我们要以虚拟机Ubuntu作为服务器,输入命令ps -ef | grep mosquitto检查是否启动成功,如下图所示:

由上图可以看出,mosquitto服务已经启动成功。

接着在虚拟机Ubuntu上新建一个终端,然后输入命令mosquitto_sub -h 192.168.1.57 -t "topeet" -v订阅主题topeet,注意此时的IP地址192.168.1.57为Ubuntu的IP地址了,因为现在我们是用Ubuntu作为服务器,如下图所示:

然后在开发板输入命令mosquitto_pub -h 192.168.1.57 -t "topeet" -p 1883 -m "Hello MQTT"发布消息,因为mosquitto默认的端口号为1883,在Ubuntu做服务器的时候我们并没有修改端口号,所以这里-p指定的端口号为1883,如下图所示:

此时,作为消息订阅者的终端以及成功收到消息Hello MQTT,如下图所示:

3.2.14.3 开发板作为订阅者

首先检查虚拟机Ubuntu的mosquitto服务有没有启动成功,因为我们要以虚拟机Ubuntu作为服务器,输入命令ps -ef | grep mosquitto检查是否启动成功,如下图所示:

由上图可以看出,mosquitto服务已经启动成功。

然后在开发板输入命令mosquitto_sub -h 192.168.1.57 -t "topeet" -v订阅消息,如下图所示:

接着在虚拟机Ubuntu上新建一个终端,mosquitto_pub -h 192.168.1.57 -t "topeet" -p 1883 -m "Hello MQTT"发布消息,因为mosquitto默认的端口号为1883,在Ubuntu做服务器的时候我们并没有修改端口号,所以这里-p指定的端口号为1883,如下图所示:

此时,开发板已经收到消息,如下图所示:

从上图可以看出,开发板作为订阅者测试成功

3.2.15 Sqlite测试

在开发板的命令行输入sqlite3进到sqlite3环境如下图所示:

输入以下命令

create table t_student(name, age); //创建一个表名为t_student的表

insert into t_student (name, age) values ('topeet', 100); //插入数据

select * from t_student ; //查询表t_student

如下图所示:

可以看出,可以进行创建表和插入数据的操作,按组合键ctrl+d可以退出python环境。

3.2.16 Mysql测试

修改mysql登录密码测试,在开发板的的控制台输入命令 /usr/bin/mysqladmin -u root password topeet设置登录账号为root,密码为topeet。

命令格式:mysqladmin -u用户名 -p旧密码 password 新密码

因为我们是第一次设置密码,所以-p旧密码这个选项可以忽略。

设置完登录密码后,输入 mysql -u root -p和密码topeet进到mysql环境,如下图所示:

输入命令:

show databases; //显示数据库

create database topeet; //创建一个库topeet

use topeet;//打开库topeet

create table t_name(name char(8)); //创建一个表t_name

show tables; //显示数据库中的表

describe t_name; //显示表结构

insert into t_name values('fashi'); //插入数据

select * from t_name; //检查是否插入成功

如下图所示:

3.2.17 Tftp测试

开发板默认支持tftp功能,测试此功能之前需要在虚拟机Ubuntu上安装tftp服务,如果您的环境没有安装,可以参考手册9.4章节,安装完成后在进行tftp服务测试。

首先我们需要保证开发板可以和虚拟机Ubuntu相互ping通,作者这里的Ubuntu虚拟机的ip地址为192.168.1.57,我们在开发板上输入命令ping 192.168.1.57,按ctrl+c组合键可以终止,如下图所示:

在作者的tftpboot文件夹下有个vmlinuz文件,tftpboot为我们在安装tftp服务时所创建的,vmlinuz为我们测试的要传输到开发板上的文件。这里大家可以使用任意文件测试,比如c文件,可执行文件等等。

我们把vmlinuz文件下载到开发板,使用命令tftp -g -l vmlinuz -r vmlinuz 192.168.1.57,-g是get的缩写,表示要下载文件,-l vmlinuz表示我们下载到开发板的文件重命名为vmlinuz,-r 后面表示我们要下载的tftpboot文件夹下的文件名。192.168.1.57为Ubuntu虚拟机的IP地址,如下图所示

我们把vmlinuz文件下载到开发板,使用命令tftp -g -l vmlinuz -r vmlinuz 192.168.1.57,-g是get的缩写,表示要下载文件,-l vmlinuz表示我们下载到开发板的文件重命名为vmlinuz,-r 后面表示我们要下载的tftpboot文件夹下的文件名。192.168.1.57为Ubuntu虚拟机的IP地址,如下图所示

从上图可以看出,已经成功的把Ubuntu里面的vmlinuz文件下载到了开发板,接着我们测试把开发板上的文件传到虚拟机Ubuntu上,我们先删掉Ubuntu系统tftpboot文件夹下的vmlinuz。如下图所示:

接着我们在开发板上输入命令tftp -p -r vmlinuz -l vmlinuz 192.168.1.57,其中 -p表示上传,-r重命名我们上传的文件的名字,-l后面跟我们要上传的文件的文件名,ip地址为Ubuntu的ip地址,如下图所示:

上传成功后可以在Ubuntu系统的tftpboot文件下看到vmlinuz文件,如下图所示:

3.2.18 opencv测试

 Buildroot文件系统系统上已经移植好了opecv,我们使用命令cd /ctset/opencv/进到开发板进到开发板opencv的测试目录,如下图所示:

直接我们直接输入命令./opencv_pic,这个程序的作用是通过opencv打开当前目录下1.bmp这个文件,并且显示在屏幕上,如下图所示:

屏幕上显示:

测试源码位置:LS2K1000开发板资料\11_测试文件以及源码\3_OPENCV

3.2.19 GPS测试

首先我们将GPS的天线连接到开发板上,然后将天线的另一端放到比较开阔的地方,比如窗户外面,保证GPS天线可以正常接收到卫星型号,如下图所示:

然后我们输入命令cd /ctest/gps/进到gps测试程序所在路径下,如下图所示:

接着我们输入命令./gps_test /dev/ttyS5 &运行可执行程序,如下图所示:

从打印信息我们可以看到已经成功得到当前的经纬度信息。说明gps已经成功接收到了卫星信号。

 gps测试程序源码位置:1.LS2K1000开发板资料\11_测试文件以及源码\4_GPS

3.2.20 声卡测试

在测试声卡之前,我们需要将耳机连接到开发板上,作者这里使用的为4段耳机,如下图所示:

声卡测试我们使用的是alsamixer工具,alsamixer 是一个图形化的声卡设置工具,直接输入“alsamixer”命令即可打开声卡配置界面,如下图所示:

在这个界面下我们要如何操作呢?其中

F1 键:查看帮助信息。

F2 键:查看系统信息。

F4 键:录音设置。

最下面一行就是具体的设置项,比如Headphone等等,可以通过键盘上左右键选择设置项。按下上下键来调整大小,比如设置音量大小等。有些项目会显示“MM”,MM表示静音,按下“M”键修改为“00”状态为打开,所以“M”键用于修改打或关闭某些项目,了解了这些操作以后我们就可以来测试声卡了。

我们将Master的音量通过按键调整到最大,并将MM改成00,如下图所示:

设置好以后使用ESC按键退出,接着我们将资料里面的LS2K1000开发板资料\11_测试文件以及源码\5_声卡测试音频文件拷贝到开发板上,如下图所示:

在测试音频所在目录下使用命令aplay test.wav播放音量,如下图所示:

此时,我们可以在耳机里面听到音乐的声音。

3.2.21 RTC测试

Linux系统下分为系统时钟和硬件时钟。 分别使用 date 和 hwclock 命令查看。 系统时钟在系统断电以后会丢失, 硬件时钟在有纽扣电池的情况下, 系统断电, 时钟不会丢失。 在系统每次启动的时候, 系统时钟会和硬件时钟进行同步。

首先我们给开发板上电启动,输入查看系统时钟命令我date, 运行结果如下图所示:

查看硬件时钟, 我们在串口输入“hwclock” 命令, 运行结果如下图所示 

我们也可以使用 date 命令来设置系统时间, 例如我们在串口终端输入“date -s "2021-9-30 8:00:00"” ,设置系统时间是 2021 9 30 8:00:00, 运行结果如下图所示: 

我们可以使用“hwclock -w” 命令把当前系统的时间同步到硬件时钟里面, 运行结果如下图所示: 

同步到硬件时钟以后,我们关闭开发板,等待一段时间在启动开发板,输入命令date查看时间,可以发现时间没有丢失,如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用navicate演示在 PostgreSQL 中使用 for 循环语句

1、简单循环示例 do $$ beginfor cnt in 1..10 loopraise notice cnt: %, cnt;end loop; end; $$ navicate中执行 2、循环查询 do $$ declare_record record; beginfor _record in (SELECT version,description FROM flyway_schema_history ORDER BY installed_rank desc li…

JavaScript:js实现在线五子棋人机(人人)对弈

在线五子棋人机对弈 全部使用前端技术,使用HTML,CSS以及JS进行实现. 棋盘在后端就是一个15*15的二维数组 页面设计 页面设计的比较粗糙 主要使用js自带的canvas画布进行绘画 HTML代码如下: <div class"outer"><canvas id"canvas" height&qu…

软件设计师-基础知识科目-计算题汇总1

1. 位运算&#xff1a; 略 2. 进制转换&#xff1a; 3. 计算内存存储容量&#xff1a; 前置概念&#xff1a;** 内存地址是16进制。 16进制后面的加上的字母H&#xff0c;表示数字为16进制。内存地址编址的单位是Byte&#xff0c;1K 1024B&#xff0c;1024用16进制表示为400H …

C语言 流程图与伪代码 缩减

本文 我们来说说流程图 伪代码和代码缩进 这些可以让我们在后面书写复杂逻辑时 不会感到 繁琐或逻辑混乱 流程图(Flowchart) 是用以算法、工作流或流程的一种框图表示&#xff0c;它以不同类型的框代表不同种类的步骤&#xff0c;每两个步骤之间则以箭头连接。 流程图是程序…

【UE C++】打印输出的两种方式

目录 一、UE_LOG 二、调试屏幕信息 一、UE_LOG 定义&#xff1a; UE_LOG 是一个将格式化消息记录到日志文件中的宏。 用法&#xff1a; UE_LOG(LogTemp, Warning, TEXT("Hello World")); 第一个输入参数 LogTemp 是提供给 DEFINE_LOG_CATEGORY 宏的类别名称。你…

OpenAIGPT-4.5提前曝光?

OpenAI GPT-4.5的神秘面纱&#xff1a;科技界的震撼新篇章 在人工智能的世界里&#xff0c;每一次技术的飞跃都不仅仅是一次更新&#xff0c;而是对未来无限可能的探索。近日&#xff0c;科技巨头OpenAI似乎再次站在了这场革命的前沿&#xff0c;其潜在的新产品——GPT-4.5 Tur…

使用gdb调试遇到No symbol table is loaded. Use the “file“ command.怎么办?

问题排查 出现下面问题&#xff0c;通常是没有处于调式模式环境下&#xff0c;所以我们需要在gcc指令后加 【-g】。 因为&#xff0c;我么的gcc编辑器默认是动态链接&#xff0c;而且是realese发布版本。 想要解决也很简单 主要思路就是在gcc -g。 在makefile文件如下进行修改即…

Unity | 集成 Protobuf(proto 转 cs 插件及序列化与反序列化)

1. 添加 dll 1. 下载 protobuf 源码 根据需要下载 protobuf 指定版本的源码&#xff0c;这里以 v3.21.12&#xff08;protobuf-csharp-3.21.12.zip&#xff09;为例&#xff1a; 下载地址&#xff1a;「https://github.com/protocolbuffers/protobuf/releases」 2. 下载 Vis…

常见内网代理工具及其应用

常见内网代理工具 1. 正向代理&#xff1a;Squid原理示例 2. 反向代理&#xff1a;Nginx原理示例 3. SOCKS代理&#xff1a;Shadowsocks原理示例 零基础入门学习路线视频配套资料&国内外网安书籍、文档网络安全面试题 常见的内网代理工具包括多种类型&#xff0c;如正向代理…

自从用上电路仿真软件后,我才领悟到的4大奥秘

在电子工程领域&#xff0c;电路仿真软件已成为设计师们不可或缺的得力助手。自从我开始使用这款软件&#xff0c;它不仅极大提升了我的工作效率&#xff0c;还让我领悟到了许多前所未有的知识。今天&#xff0c;就让我来分享自从用上电路仿真软件后&#xff0c;我才知道的4件事…

【分享】WinRAR软件如何压缩文件?

WinRAR是一款功能强大的压缩文件管理工具&#xff0c;支持多种压缩文件格式&#xff0c;那如何使用WinRAR来压缩文件呢&#xff1f;不清楚的小伙伴一起来看看吧&#xff01; 压缩方法&#xff1a; 首先&#xff0c;安装好WinRAR工具&#xff0c;然后选中需要压缩的文件或文件夹…

OSPF的学习笔记

1.OSPF &#xff08;1&#xff09;链路状态路由协议的路由信息并不是像距离矢量路由协议那样(邻居告诉的)&#xff0c;通过收集自身以及邻居发出的LSA(原材料)&#xff0c;并LSA放到指定仓库里面(LSDB)&#xff0c;通过SPF算法&#xff0c;以自己为根计算到达网络每个节点的最优…

手机图片制作动态gif怎么做?不能错过的好用网站!

现在手机可是人人不离手的&#xff0c;而且手机上的很多软件功能已经逐渐取代了电脑。有时候我们想要把手机中的照片变成有动态效果的gif动图还不想下载软件的时候&#xff0c;就可以用Gif在线制作网站&#xff0c;不用下载软件&#xff0c;手机电脑都能在线操作。非常的方便小…

小孩近视用白炽灯好吗?分享多款央视推荐的护眼台灯

很多家长关心&#xff0c;小孩近视用白炽灯好吗&#xff1f;首先肯定是不太建议的&#xff0c;虽说白炽灯价格便宜&#xff0c;显色较好&#xff0c;不过光线会比较集中刺眼&#xff0c;而且由于是发热发光&#xff0c;也存在一定的安全隐患&#xff0c;更重要的是光衰现象会比…

Linux Docker下载镜像更改默认存储位置/usr/lib/docker

用于解决docker默认存储位置磁盘空间不足&#xff0c;切换存储位置 1、执行下面命令查看 现在docker的存储位置 docker info | grep "Docker Root Dir" 1.2、如果之前已经下载过镜像可以用mv命令把原来的镜像复制到新的地址 mv /var/lib/docker /data/docker 2、…

考研日常记录(upd 24.4.24)

由于实在太无聊了 &#xff0c; 所以记录以下考研备考日常 &#xff0c; 增加一点成就感 &#xff0c; 获得一点前进动力。 文章目录 2024.4.18 周四课程情况&#xff1a;时间规划&#xff1a; 2024.4.19 周五课程情况&#xff1a;时间规划&#xff1a; 2024.4.20 周六2024.4.2…

【Shell】循环结构——for和while循环实例

Shell可以重复地执行特定的指令&#xff0c;直到特定的条件被满足为止。这重复执行的一组指令就叫做循环 特点&#xff1a; 首先&#xff0c;循环条件中使用的变量必须是已初始化的&#xff0c;然后在循环中开始执行每次在循环开始时进行一次测试重复地执行一个代码块 循环实例…

沤血整理:好用的员工电脑行为审计软件

电脑行为审计是指对电脑用户在使用电脑过程中的行为进行监控、记录和分析的过程。 员工电脑行为审计可以帮助企业了解员工在工作电脑上的行为&#xff0c;从而保障企业信息安全&#xff0c;提高员工工作效率&#xff0c;并更好地管理员工&#xff0c;常用的电脑行为审计软件有…

(三)小程序学习笔记——生命周期、API

1、小程序的启动&#xff1a; 冷启动&#xff1a; 如果用户首次打开&#xff0c;或小程序销毁后被用户再次打开&#xff0c;此时小程序需要重新加载启动&#xff0c;即冷启动。 热启动&#xff1a; 如果用户已经打开过某小程序&#xff0c;然后在一定时间内再次打开该小程序&…

Java | Leetcode Java题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; class Solution {public void rotate(int[][] matrix) {int n matrix.length;// 水平翻转for (int i 0; i < n / 2; i) {for (int j 0; j < n; j) {int temp matrix[i][j];matrix[i][j] matrix[n - i - 1][j];matrix[n - i - 1]…