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

news2024/11/27 4:17:13

龙芯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.coloradmin.cn/o/1625673.html

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

相关文章

webpack热更新原理详解

文章目录 前言基础配置创建项目HMR配置 HMR交互概览HMR流程概述HMR实现细节初始化注册监听编译完成事件启动服务监听文件代码变化服务端发送消息客户端收到消息热更新文件请求热更新代码替换 问题思考 前言 刷新分为两种:一种是页面刷新,不保留页面状态…

LANGUAGE-DRIVEN SEMANTIC SEGMENTATION

环境不易满足,不建议复现

CentOS7利用宝塔面板安装zabbix6.0.x详细安装教程(手把手图文详解版)

最近学习CentOS7安装zabbix6.0.x的版本,尝试了很多教程,很多都比较麻烦且容易出错,最后发现使用宝塔面板最为简单,将具体过程记录下来,一来分享给有需要的人,二来自己也当记录笔记,以免以后遗忘…

Hive中几个非常重要的问题

1、Hive 有哪些方式保存元数据,各有哪些优缺点 (1).DerBy数据库:默认自带 优点:使用简单,不需要额外的配置。 缺点:只有一个客户端,多个客户访问会报错。 (2).使用MySql数据库存储 优点:单独的…

OSPF的LSA详解

一、什么是LSA?LSA作用? 在OSPF协议中,LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息。使用LSA来传递路由信息和拓扑信息&#xff0c…

linux系统安全

一、账号安全基本措施 1.1 系统账号清理 1.1.1 将用户设置为无法登录-- 改登录shell 登录shell是用户与计算机系统直接交互的接口,使用户能够通过命令行方式进行各种操作和管理。 所以让用户无法登录,其实就是将登录shell改为 /sbin/nologin,可以用us…

移动应用安全

移动应用安全 移动应用安全主要关注Android、iOS、Windows Phone等平台上移动应用软件安全状态。它涉及应用程序在其设计运行的平台上下文中的安全问题、它们使用的框架以及预期的用户集。所有主流的移动平台都提供大量可选的安全控制,旨在帮助软件开发人员构建安全…

面试官问如何实现二级缓存怎么进行回答以及延伸出更多知识点呢?

二级缓存的优势与缺点 优点: 1)二级缓存相比只调用一层 Redis 缓存,访问速度更快。对于一些不经常修改的数据而查询十分频繁的可以直接放在本地缓存(一级)里面。 作为面试者的扩展延伸:我在本地缓存的实…

【MySQL 数据宝典】【索引原理】- 002 示例+逐个字段学明白 Explain

一、Explain 概述 使用 EXPLAIN 关键字可以模拟优化器来执行SQL查询语句,从而知道MySQL是如何处理我们的SQL语句的。分析出查询语句或是表结构的性能瓶颈。 1.1 MySQL 查询过程 通过explain我们可以获得以下信息: 表的读取顺序数据读取操作的操作类型…

华为ensp中链路聚合两种(lacp-static)模式配置方法

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月26日11点54分 链路聚合(Link Aggregation),又称为端口聚合(Port Trunking),是一种将多条物理…

OU和域用户的创建

OU和域用户的创建 导航 文章目录 OU和域用户的创建导航一、创建ou二、创建用户三、验证 一、创建ou 在服务器管理器里面点击右上角的工具,选择Active Directory 用户和计算机右击我们的域,选择新建,选择组织单位,并填入我们的单位名字 二、创建用户 右击我们刚刚新建的组织…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 ,真的是高手都是惺惺相惜的,哈哈,自恋一…

pytest参数化数据驱动(数据库/execl/yaml)

常见的数据驱动 数据结构: 列表、字典、json串 文件: txt、csv、excel 数据库: 数据库链接 数据库提取 参数化: pytest.mark.parametrize() pytest.fixture()…

Stable Diffusion WebUI 使用 VAE 增加滤镜效果

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要介绍 VAE 模型,主要内容有:VAE 模型的概念、如果下载 VAE 模型、如何安装 VAE 模型、如…

苍穹外卖学习

并不包含全部视频内容&#xff0c;大部分都按照操作文档来手搓代码&#xff0c;资料&#xff0c;代码都上传git。 〇、实际代码 0.1 Result封装 package com.sky.result;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* param <T>*/ Data pub…

【EP2C35F672C8 EDA试验箱下载 38译码器实现】

文章目录 前言一、实验设备1.实验箱2.下载器&#xff1a; 二、编译工程1.编译工程2.添加tcl引脚配置文件2.1将tcl文件拷贝到工程目录下&#xff1a;2.2 在软件中添加tcl文件 3.tcl文件简答讲解 三、下载四、实验结果总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内…

【LeetCode:2095. 删除链表的中间节点 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

虚拟现实(VR)的应用场景

虚拟现实&#xff08;VR&#xff09;技术创建和体验三维虚拟世界的计算机仿真技术。用户通过佩戴VR头显等设备&#xff0c;可以完全沉浸在虚拟世界中&#xff0c;并与虚拟世界中的物体进行交互。VR技术具有广泛的应用前景&#xff0c;可以应用于各行各业。以下是一些VR的应用场…

C++ 并发编程 - 入门

目录 写在前面 并发编程&#xff0c;启动&#xff01; 写在前面 计算机的并发指在单个系统里同时执行多个独立的任务。 在过去计算机内只有一个处理器时并发是通过快速的切换进程上下文所实现的&#xff0c;而现在计算机已经步入了多核并发时代&#xff0c;所以多个进程的并…

利用STM32 HAL库实现USART串口通信,并通过printf重定向输出“Hello World“

一、开发环境 硬件&#xff1a;正点原子探索者 V3 STM32F407 开发板 单片机&#xff1a;STM32F407ZGT6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F4 V1.27.1 上一篇使用STM32F407的HAL库只需1行代码实现US…