不久前米尔在面包板网站进行了myd-c8mmx开发板的试用活动,引起广大爱好者的热烈反应,并且产出了不少杰出的作品,下面来看这位工程师是怎么用qt控制台应用程序控制led亮灭的吧:
转眼间距上次发的帖子两周过去了,在嵌入式linux开发的道路上艰难地行走着。
今天,我给大家带来一个什么应用呢?
经过两周的琢磨,现在基于【myc-c8mmx物联网开发板】的嵌入式linux开发有了一个基本的了解,现在给伙伴们分享一下笔者的学习心得。
继上篇帖子了解了【myc-c8mmx物联网开发板】的硬件之后,笔者又建立了软件开发环境,然后在开发环境下进行了简单的应用程序开发,基本流程如下:
拿到【myc-c8mmx物联网开发板】之初,就发现开发板出厂内置内核版本为4.14.98的嵌入式linux操作系统,果断地选择利用内置操作系统作为应用程序的运行环境。
然后,就自然而然地来到了【建立开发环境(基于qt)】的环节。
基于qt的嵌入式linux开发环境建立的具体步骤如下:
1. 先在自己的pc机上安装linux操作系统
笔者使用是之前在某国产操作系统(基于linux内核的)的qt应用程序开发时安装的ubuntu 16.04 64bit的lts版本,当然我是采用vm15 pro虚拟机上安装的,在这里强调一下,个人开发嵌入式linux程序安装虚拟机即可,笔者采用虚拟机的共享文件夹的方式,可以将windows下的某个文件夹共享给ubuntu,解压文件、运行程序等操作均可正常执行,十分地方便,有时给虚拟机分配的硬盘空间不够用的时候,采用此方法就可以将占用空间的内容直接放在原windows某个目录下,然后开vm共享即可,简单方便。
话不多说,分享一张笔者的基于【myc-c8mmx物联网开发板】的开发环境图片:
2. 在ubuntu操作系统中安装工具软件
在终端中依次输入以下两条指令即可:
apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev u-boot-tools apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc其中,apt-get install为ubuntu中安装软件的命令符,其后的每个字段为一个待安装的软件,这些软件有35个之多,回忆两周前我安装这些工具包就花了大概2天(零零散散)的时间(晚上输入命令让pc自己安装呗o(* ̄︶ ̄*)o)。
3. 在ubuntu操作系统中安装交叉编译工具链
交叉编译工具链是在一种平台上(一般为x86 pc平台)编译出能运行在体系结构不同的另一种平台上(例如arm平台)的程序,虽然两个平台用的都是linux系统,但是编译得到的程序在x86 pc平台上是不能运行的,必须放到arm平台上才能运行。
这里笔者使用米尔官方随板提供的yocto交叉编译器:gcc version 7.3.0(gcc),其是以sdk工具包方式来提供的,需要先安装sdk包后,该交叉编译工具链才可使用,记录好安装路径,后续qt中编译器的配置还要用到。
4. 安装qtcreator
qt软件想必做过嵌入式linux开发的伙伴都有所了解,笔者是在给某产操作系统开发窗口软件时接触到的,其特点是:“一套代码,到处编译”,当然这多少有点夸张了,对于底层的数据获取,例如:cpu利用率、内存占用率等,仍需要针对具体平台(windows、linux、ios)分别编写代码,对于嵌入式linux来说,其中涉及底层硬件调用的函数自然也会因配套使用的硬件的不同,带来底层函数调用的差异,因此,对于此次基于【myc-c8mmx物联网开发板】的程序开发来说,首先熟悉硬件驱动是很有必要的,所谓万丈高楼平地起嘛!o(* ̄︶ ̄*)o
qt的版本有许多,这里根据官方推荐,选择qt5.9.4版本,伙伴们可以直接从qtj9九游会官网登录官网上下载,地址:http://download.qt.io/archive/qt/5.9/5.9.4/,此文件夹下有多个文件,由于现在目前市面上流行的大部分都是基于x86或x64 cpu的计算机,因此,选择【qt-opensource-linux-x64-5.9.4.run】可执行文件直接运行安装即可,但如果伙伴们碰巧使用的就是那少数的国产cpu的计算机,那么则需要下载qt源码,在拟进行qt应用程序开发的计算机上编译后再运行安装,哦!跑题了,言归正传,话说接下来要干什么呢?当然是要对刚刚安装好的qt进行配置了。
5. 配置qtcreator
配置qt的目的,在于使用qtcreator编写好代码后,仍需要将代码编译后再能生成在目标平台上可执行的程序,而配置qt则是对qt的编译环境进行配置,包括:
【配置一个qtversion】其实就是给qt配置一个build system,这里将其指向【3.在ubuntu操作系统中安装交叉编译工具链】中交叉编译工具链所在安装目录中的【qt5/qmake】。
【配置一qtdebug】其实就是新建一个debugger,并将其指向【3.在ubuntu操作系统中安装交叉编译工具链】中交叉编译工具链所在安装目录中的【aarch64-poky-linux-gdb】。
【新增一个device设备】其实就是新建一个device,并配置【myc-c8mmx物联网开发板】所在的ip地址、ssh端口、用户名(root)、密码(无),其实这些参数就是在qt与【myc-c8mmx物联网开发板】通过tcp/ip网络建立一个ssh,即远程登录。
【创建一个kit】就是把上述4步的配置组合配置在一起。
上述步骤,笔者并未给出详细的配置内容,如果想了解这方面的内容,可以参考帖子开始部分提供下载的【基于qt的嵌入式linux开发环境建立的手册】,里面有米尔官方给出的详细配置步骤。
至此,就针对【myc-c8mmx物联网开发板】在ubuntu上建立起了基于qt的嵌入式linux开发环境了。
接下来,我们就可以编写一个简单的qt应用程序,检验一下qt安装及其配置是否成功吧!o(* ̄︶ ̄*)o
建立项目的步骤笔者就略过了,直接分享一个笔者依据官方提供的硬件led驱动代码,编写的一个通过qt控制台应用程序控制【myc-c8mmx物联网开发板】上两个led灯亮灭的程序吧!
话不多说,贴上代码先:
当然,这里我没有使用leds_play函数,该函数是让led闪烁的函数,有兴趣的伙伴们可以自己试试哦!o(* ̄︶ ̄*)o
运行【led_control】后,【myc-c8mmx物联网开发板】开发板上的两个led灯均熄灭,如下图所示:
本文来自九游会网页-j9九游会官网登录科技,原文地址:
http://www.myir-tech.com/resource/537.asp,转载请注明出处。