IMX6ULL Qt 项目(控制led灯和蜂鸣器)全流程

一、网络搭建(我是连接网线的)

打开虚拟机设置,采用双适配器(一个选用桥接,一个选用NAT):

然后主机就打开控制面板的网络连接(我们需要的就是以太网2下面的这个NXUSB2.0):

然后打开虚拟机的虚拟网络编辑器(桥接选择这个NX USB2.0,不要选自动,不然会连到wifi等,如果找不到这个内容,重新插拔网线,记住连接主机):

接下来下载putty(轻量简单,我们老师力荐):

这个时候要插数据线,一端连接开发板USB_TTL,另一端连接主机,打开设备管理器,查看端口:

然后打开putty,

这个Serial line to connect to 取决于你自己的设备(例如我的就是上图中的端口:COM3)

点击open,会进入倒计时界面(随便按一个键进入u-boot,不然就是正常的启动starting kernel......):

还有一个很重要的地方就是拨码开关(我是连网线的,现在是EMMC启动,即拨码1367):

如果电脑没有网口,就买个转接口:

nfs要提前配置好,这里有一个易错点:

打开/etc/exports 以后在后面添加如下所示内容(这个很重要,以我的为例):

/home/szc/nfs_rootfs *(rw,sync,no_root_squash)

tftp也要配置好,直接询问AI即可

u-boot界面ping一下虚拟机(ping通即可):

二、一些必备资源的准备

1.下载交叉编译器:

Linaro GCC 编译器下载地址如下: https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/,打开以后下载界面如图所示(下载完传到虚拟机里):

安装相关库:

sudo apt-get install lsb-core lib32stdc++6

交叉编译器验证:

arm-linux-gnueabihf-gcc -v

如果交叉编译器安装正确,会显示版本号:

2.准备好这些(我的是老师给的):

三、进行操作

1.拷贝编译好的镜像和设备树到根文件系统

cp arch/arm/boot/zImage /home/szc/nfs_rootfs/

# 7寸屏设备树(这个大小要看你自己的板子,我的是到官网查了一下,是7寸的)

cp arch/arm/boot/dts/imx6ull-14x14-emmc-7-1024x600-c.dtb /home/szc/nfs_rootfs/

2.编译部署自己的qt项目

写一个qt项目,然后自己编译部署:

cd /home/szc/Desktop/szcheng rm -rf build_szcheng mkdir build_szcheng && cd build_szcheng unset CC CXX CXXFLAGS CFLAGS QMAKE source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi qmake ../szcheng.pro make -j4 sudo cp ./szcheng /home/szc/nfs_rootfs/usr/bin/ sudo chmod 777 /home/szc/nfs_rootfs/usr/bin/szcheng

3.开发板上电,进入u-boot模式,然后启动项目:

我的代码是这个样子的:

setenv ipaddr 192.168.1.101 setenv serverip 192.168.1.100 tftp 80800000 zImage tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb setenv bootargs root=/dev/nfs nfsroot=${serverip}:/home/szc/nfs_rootfs,v3 ip=${ipaddr}:${serverip}:192.168.1.1:255.255.255.0::eth0:off console=ttymxc0,115200 bootz 80800000 - 83000000

运行效果图:

这个步骤的相关易错点:

1.网络不稳定,网线明明连着,连接却突然断开了,这时候重新插拔网线,ping完发现 is not alive,这是因为虚拟机的连接断开了,

解决办法:找到虚拟机的网络连接处(一般在右上角),重新连接,ens33和ens37都重新连,然后Ubuntu终端 命令行输入 ip a,

发现连接正确即可。

2.运行qt项目发现led灯和蜂鸣器控制不了

这个时候进入系统输入(输出如下图):

发现这个蜂鸣器是和led灯放一起的,根据自己的实际情况来写qt项目里面的代码:

编写代码前现在putty里面运行一下下面的代码(以我的为例),试成功了再修改自己的项目代码

# 关闭自动心跳闪烁,切换手动控制 echo none > /sys/class/leds/sys-led/trigger # 点亮LED echo 1 > /sys/class/leds/sys-led/brightness # 熄灭LED echo 0 > /sys/class/leds/sys-led/brightness # 开启蜂鸣器 echo 1 > /sys/class/leds/beep/brightness # 关闭蜂鸣器 echo 0 > /sys/class/leds/beep/brightness

四、成果展示

五、烧写进系统,让项目能够开机自启动

现在的项目只是连接网线来暂时实现的,想要开机自启动,我们还要把它烧写进系统,ubuntu进行如下操作:

将这个mfgtool拖到window主机里,

然后烧写文件(选择和自己的板子一样的我的就是eMMC-ddr512-eMMC.vbs):

点击start开始烧写:

烧写成功示例图:

这里还有一个易错点:

此时的拨码开关只开一个2就行了,然后这个数据线要连接USB_OTG(烧写必备)

过程大概需要几分钟,我的是5分钟左右,期间不要进行任何多余操作,否则会失败,导致系统重启不了。

烧写后成果展示(开发板自启动):