硬件:米尔i.MX6UL开发板MYD-Y6ULX
简介:MYD-Y6ULX开发板(i.MX6UL开发板)由MYC-Y6ULX核心板和底板组成,基于NXP i.MX6UL处理器或i.MX6ULL处理器可选,MYD-Y6ULX开发板(i.MX6ULL开发板)提供丰富外设硬件,板载了Mini PCIE接口(用于4G模块)及SIM卡槽、WIFI芯片及天线接口、双百兆网口、LCD液晶接口、音频接口、带隔离的CAN,RS485,RS232等。
部署开发环境:开发前需要PC安装好Linux操作系统,推荐使用Ubuntu 16.04 64bit发行版,连接网线并配置好网络,后续操作需要连接互联网安装或下载相关软件包。
本章主要介绍介绍MYD-Y6ULX开发板底板外围硬件设备应用例程的使用以及QT的应用开发。
使用前,需要先安装Yocto提供的SDK工具链,再编译所有例程代码,并拷贝至开发板目录下。
WiFi 测试
MYD-Y6ULX开发板提供一个WiFi模块(J11),支持Client模式。
硬件连接
将附带SMA接口的天线安装在开发板的J12位置。
Client模式
Client模式是用于将WiFi模块作为客户端设备,主动连接于路由器或其它提供无线热点的设备。 系统中已经加入WiFi模块的驱动,启动后会自动加载相应驱动。驱动加载成功后会出现对应的wlan0网络设备,使用ifconfig命令来确认。
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr a0:2c:36:60:ee:e0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3388 errors:0 dropped:10 overruns:0 frame:0
TX packets:37 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:395459 (386.1 KiB) TX bytes:6074 (5.9 KiB)
下面使用wpa_passphrase生成对应WiFi热点SSID的密码,然后由wpa_supplicant命令实现WiFi模块与WiFi热点的连接。
# wpa_passphrase "MYiRTech" >> wifi.conf
12345678
# cat wifi.conf
network={
ssid="MYiRTech"
#psk="12345678"
psk=b96d9a5de2d9480ad5f987857e20216b47a0c4bf43397825ba909438bc52aaff
}
# wpa_supplicant -D wext -B -i wlan0 -c wifi.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
R8188EU: Firmware Version 11, SubVersion 1, Signature 0x88e1
MAC Address = a0:2c:36:60:ee:e0
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
ioctl[SIOCSIWAP]: Operation not permitted
R8188EU: INFO indicate disassoc
连接成功后,使用udhcpc获取IP地址后,就可以使用了。
# udhcpc -b -i wlan0 -R
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr a0:2c:36:60:ee:e0
inet addr:192.168.1.211 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5577 errors:0 dropped:15 overruns:0 frame:0
TX packets:46 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:651690 (636.4 KiB) TX bytes:7472 (7.2 KiB)
4G模块 测试
MYD-Y6ULX开发板提供一个支持4G模块的PCI-E插槽,此插槽使用USB数据线与4G模块通讯。当前仅支持移远EC20型号。 注意:移远EC20模块为选购配件,请向米尔科技购买。
硬件连接
安装移远EC20模块到PCI-E插槽(U12)。 将两头I-PEX接口的天线安装在移远EC20模块和开发板的J25位置。 安装SMA天线到开发板的J24位置。 系统中已经加入4G模块的驱动,启动后会自动加载相应驱动,驱动加载成功后会出现对应的/dev/ttyUSB*设备,查看:
#ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4
系统中已加入ppp软件包,可以直接使用。启用ppp0后会自动拨号,连接成功后即获得IP地址,D25灯常亮。还需要检查/etc/resolve.conf文件中的 DNS是否设置正常。
# ifup ppp0
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.163.130.65 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:62 (62.0 B) TX bytes:86 (86.0 B)
# cat /etc/resolv.conf
nameserver 202.96.128.86
nameserver 202.96.134.133
然后使用ping命令测试连接4G网络是否正常。
# ping myir-tech.com
PING s-26427.gotocdn.com (118.123.18.103) 56(84) bytes of data.
64 bytes from 118.123.18.103: icmp_seq=1 ttl=117 time=80.5 ms
64 bytes from 118.123.18.103: icmp_seq=2 ttl=117 time=179 ms
64 bytes from 118.123.18.103: icmp_seq=3 ttl=117 time=378 ms
64 bytes from 118.123.18.103: icmp_seq=4 ttl=117 time=118 ms
64 bytes from 118.123.18.103: icmp_seq=5 ttl=117 time=122 ms
64 bytes from 118.123.18.103: icmp_seq=6 ttl=117 time=177 ms
如果上面验证步骤有异常,可以查看日志来确定问题原因。
# cat /var/log/quectel-dial.log
QT应用开发
Qt是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。MYD-Y6ULX使用Qt 5.6.2版本进行应 用开发。 在Qt应用开发中,推荐使用QtCreator集成开发环境,可以在Linux PC下开发Qt应用,自动化地交叉编译为开发板的ARM架构。 本章使用Yocto构建的SDK工具作为交叉编译系统,配合QtCreator快速开发图形类应用程序。开始本章前,请先完成第三章的Yocto构建过程。或者 使用光盘中提供的预编译好的SDK工具包。本章开始前,请安装好应用SDK开发工具。
安装QtCreator
QtCreator安装包是一个二进制程序,直接执行就可以完成安装。
cd $DEV_ROOT
chmod a+x 03-Tools/qt-creator-opensource-linux-x86_64-4.1.0.run
sudo 03-Tools/Qt/qt-creator-opensource-linux-x86_64-4.1.0.run
执行安装程序后,一直点击下一步即可完成。默认安装目录在"/opt/qtcreator-4.1.0"。 安装完成后,为了让QtCreator使用Yocto的SDK工具,需要对QtCreator加入环境变量。修改"/opt/qtcreator-4.1.0/bin/qtcreator.sh"文件,在"#! /bin/sh"前加入Yocto的环境配置即可,参考如下:
source /opt/myir-imx6ulx-fb/4.1.15-2.0.1/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
#! /bin/sh
# Use this script if you add paths to LD_LIBRARY_PATH
# that contain libraries that conflict with the # libraries that Qt Creator depends on.
使用QtCreator时,请从终端执行"qtcreator.sh"来启动QtCreator,参考如下:
/opt/qtcreator-4.1.0/bin/qtcreator.sh &
配置QtCreator
第一步,运行 QtCreator 后,依次点击"Tool"->"Options",出现选项对话框,在左侧点击"Build & Run",右边选择"Compilers"标签。 点击右 侧"Add"按钮,弹出下拉列表后,选择"GCC",在下面填写"Name"为"MYDY6ULx-GCC","Compiler path"点击旁边的"Browse.."按钮选 择到armpoky-linux-gnueabi-g++的路径,例子中的路径是"/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linuxgnueabi/arm-poky-linux-gnueabi-g++"。填写完成后,点击"Apply"。
第二步,选择"Qt Version"标签,在右侧点击"Add...",会弹出qmake路径选择对话框,这里以"/opt/myir-imx6ulx-fb/4.1.152.0.1/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake"为例子。选择”qmake”文件后,点击"Open"按钮。"Version name"改为"Qt % {Qt:Version} (MYDY6ulx-qt5)"。然后点击"Apply"按钮。
第三步,选择左侧"Device",点击右边的"Add..."按钮,在弹出的对话框中选择Generic Linux Device,再填写内容"Name"为"MYDY6ULx Board","Host name"为开发板的IP地址(可以暂时填写任意一个地址),"Username"为"root",然后点击"Apply"。
第四步,点击左侧"Build & Run"回到"Kits"标签下,"Name"为"MYDY6ULx-dev-kit","Device"选择"MYDY6ULx Board"选项了。"Sysroot"选择目标 设备的系统目录,这里以"/opt/myir-imx6ulx-fb/4.1.15-2.0.1/sysroots/cortexa7hf-neon-poky-linux-gnueabi"为例。"Compiler"选择之前配置的名 称"MYDY6ULx-GCC","Qt version"选择之前配置的名称"Qt 5.6.2 (MYDY6ulx-qt5)","Qt mkspec"填写为"linux-oe-g++"。其它默认即可,最后点 击"Apply"和"OK"按钮。
测试Qt应用
为了方便测试之前的配置是否正确,这里提供了一个Qt例程,打开项目后,配置为相应的编译工具套件,就可以编译此例程。 第一步,在菜单栏选择"File"->"Open File or Project",在打开的对话框中,浏览到"helloword"例程的目录下,选择"helloworld.pro"文件,点 击"Open"按钮。
第二步,项目打开后,选择"MYDY6ULx-dev-kit"选项,这样"helloworld"项目就会使用"MYDY6ULx-dev-kit"的相关配置构建应用。
第三步,点击菜单栏"Build"->"Build Project hellowrld"按钮,即可完成项目的编译,同时下侧会有编译过程输出。
QtCreator 构建 helloworld 项目后,编译好的二进制文件存放在"~/build-helloworld-MYDY6ULx_dev_kit-Debug/"目录下,可以使用 file 命令查看,是 否编译为 ARM 架构。
file ~/build-helloworld-MYDY6ULx_dev_kit-Debug/helloworld
/home/kevinchen/build-helloworld-MYDY6ULx_dev_kit-Debug/helloworld:
ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux),
dynamically linked, interpreter /lib/ld-linux-armhf.so.3,
for GNU/Linux 2.6.32,
BuildID[sha1]=9c5f22deb1d8272c2a81528c171d215896112784, not stripped
然后将 helloworld 文件拷贝到开发板下运行即可。
# ./helloworld -platform linuxfb
将会在 LCD 屏幕上看到Qt 窗口中多个QLabel的文本内容。
此章结束,下一章将介绍i.MX6UL开发板的系统更新。