创龙TL5708-EVM QT软件开发
作者:大信 8125036
通过对创龙TL5708初步使用体验后,开始着手更进一步的进行软件开发,以便充分发挥板子的强大功能。首先建立开发板的主机开发工作环境,能够在主机上操作和连接开发板,再就是在开发板建立交叉编译工具以及配置相应的SDK,最后通过开发板带的例程来验证和测试开发环境是否建立正确。结合我们的开发测试目标,这次分别建立QT的主机开发环境和交叉编译和RTLinux的交叉编译环境。
一、配置主机工作环境
开发板软件资料里带有一个ubuntu-14.04.3-desktop-amd64.iso的安装文件,带有安装到虚机的步骤,不过因为已经有Ubuntu 系统环境,不过版本是18.4,后面的所有操作都基于这个版本Ubuntu系统进行,也算是一个测试。
为了方便操作开发板,原来在windows下使用SecurtCRT连接开发板的方式改为在Ubuntu下连接开发板串口。这样就在Ubuntu下完成所有的操作了。
首先准备好Ubuntu主机运行环境,因为串口设备不能共享,所以把USBmicro插入主板时,虚拟机会弹出发现USB设备,并询问连接到物理机还是虚机,选择把主机的串口映射到虚机里,然后在虚机里打开这个串口,这样从而能够接收开发板输出的调试信息和对它输入控制台操作命令。
在Ubuntu里,输入以下命令,如果可以发现 /dev/ttyUSB0设备那么说明已经开发板已经被Ubuntu识别并驱动起来。
Ls –la /dev/ttyUSB*
图1.开发板接入Ubuntu系统
在Ubuntu图形系统里找到串口终端软件 minicom ,启动minicom,并进行设置,按 Control-A Z 后进入串口接入设置
图2.运行Ubuntu串口软件minicom
图3. Minicom 设置串口参数
图4. 开发板串口成功过连入Ubuntu环境
二、安装TL5708交叉编译工具
将开发板所带的软件中,交叉开发软件Tools/Processor-SDK下的 ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05-Linux-x86-Install.bincopy到Ubuntu工作目录中,在Ubuntu桌面下启动运行它,即安装TL5708交叉开发环境和相关的SDK软件。直接sudo 执行即可安装,安装过程如下图:
图5. 安装ti-processor-sdk-linux-rt编译工具和软件包1
图6. 安装ti-processor-sdk-linux-rt编译工具和软件包2
图7. 安装交叉编译工具与软件包成功
三、安装QT开发软件
此次的一个主要目标是,在基于TL5708-EVM开发板开发桌面图形程序,因此首选为QT开发软件,虽然在Ti-PSDK 里带有qt的目标板开发包和软件,但在开发自己的测试图形软件时,还需要在主机环境下建议QT开发环境,方便调试开发。
TL5708的QT软件开发,主要思路是,因为Ubuntu主机QT有很多的工具,如QTDesigner等工具,可以利用这些工具先在Ubuntu主机上开发调试QT桌面程序,开发调试好后,再使用交叉编译工具编译目标板上的QT 软件。
Ubuntu主机上安装QT很简单,主要步骤如下,因为开发板支持的是QT5,因此选择主机安装QT开发环境时,也选择QT5的安装包:
2.因为Ubuntu中已经安装过gcc/g++,因此只需要安装主机必要的编译工具 build-essential ,
sudo apt-get install build-essential
3.在开发中图形图像时会使用GPU加速,TL5708开发板支持OpenGLES2.0 ,因此我们再安装 OpenGL库,注意安装时选择支持OpenGL ES选项,ES是OpenGL 的在嵌入式上的一个分支.
sudo apt-get install mesa-common-dev
4.执行软件安装
先给下载的QT开发包赋予执行权,然后直接运行安装
sudo chmod +x qt-opensource-linux-x64-5.11.3.run
./qt-opensource-linux-x64-5.11.3.run
图8. Ubntu主机上安装QT开发工具
安装过程一路Next即可,当出现下面的设置时,将左边的所有组件和工具都选上,避免后面使用时出现异常。选择主要有各个软件模块和安装QTCreate工具,这个工具能帮助设计复杂的图形界面。
图9. 选择需要安装QT的组件
安装完成后在Ubuntu的应用管理器里可以看到安装的QT开发工具:
图10.安装了4个QT开发工具
四、开发QT测试程序
安装好QT开发工具后,就可以进行QT测试程序的开发,可以直接使用开发板带的QT源码,也可以自己创建一个图解界面的QT测试程序,这里先测试创建的窗口程序。使用QTCreater,创建一个桌面程序,选择weidge组件,一个简单的空白窗体和按钮,再加上一个Text Laber 组件,QTCreate集成了资源软件,布局设计,非常方便,使用如下图:
图11.创建QT测试工程 Example
图12.使用UI设计器设计Example的UI
五、编译运行QT测试程序
设计好程序后,就可以编译运行QT测试程序了,这里分成两步,首先在Ubuntu主机里编译运行QT程序,主机编译可以直接在QT图形工具里选择编译按钮即可以直接编译,非常简单方便:如下图:
图13.在Ubuntu中成功编译QT 测试Example工程
然后直接点击运行,即可以在主机里直接运行起来,如下图:
图14.在Ubuntu主机中成功运Example工程
在主机开发,编译、运行完测试程序之后,就到了最主要目标实现过程,即在Ubuntu环境中交叉编译测试工程,形成板上ARM的可执行程序,下面就是如何完成板上QT编译过程的步骤。
六、Ubuntu上交叉编译TL5708-EVM的ARM程序
进入终端环境找到第二章安装的交叉编译工具的最终安装目录,我是安装到了
/home/lutherluo/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05 这里,为了使用方便, 做一个连接,/home/lutherluo/ti-psdk ,这个目录且称为Ti-PSDK工具根目录,后面很多操作都需要用到这个下面的工具和命令。
再进入Ti-PSDK工具根目录 下 linux-devkit 目录,可以看到一个environment-setup文件,执行如下命令,则可以切换主机的编译环境:
source environment-setup
执行完后,可以看到终端的命令提示也改变了,指示现在的shell为目标板开发环境了,如下图:
图15.运行环境脚本切换主机编译工具
在目标板开发环境下,可以检查一下编译器,输入
arm-linux-guneabihf-gcc –v
可以看到交叉编译工具的版本以及目标板的开发头文件,库文件版本以及所在的目录,看是否指向正确的TI-PSDK的相关目录,输出如下图:
图16.检查ARM Linux编译工具版本
检查完交叉编译工具无误后,既可以进行对Example的目标板,即ARMLinux 的编译,先进入Example的目录:
图17.准备交叉编译QT-Example工程
分别执行以下命令,既可顺利的完成对目标板的编译:
qmake
make
图18.交叉编译QT-Example工程成功
编译完成后,可以对编译生成的文件检查,输入:
file QT-Example1
可以看到生成的文件信息,显示信息图下, QT-Example1: ELF 32-bit LSBexecutable, ARM, EABI5 version 1 (GNU/Linux),
表示它是一个ARM 上的32位执行程序
图19.检查交叉编译QT-Example的目标程序
七、在目标板上运行QT测试程序
交叉编译完成后,既可以把编译出的程序copy到目标板上来运行测试它了。
为方便与目标板传输文件,这里通过网络方式进行传输文件,方法是把开发板通过网线接入局域网并通过路由器和开发主机连起来。
开发板插入网线后,查看网卡获得的IP地址。如下图
图20.开发板通过网线连接局域网
图21.主机的局域网地址
这里主机与目标开发板并不在同一个局域网,而是主机通过wifi路由器连入的办公网,主机地址是下一级网络192.168.50.165, 主机连接的WIFI路由器网关在局域网的地址是192.168.3.49,开发板则直接接入局域网内,地址是192.168.3.199那么主机能够访问到上级一级的服务,即由主机主动通过 sftp发送文件给开发板即可。
命令如下:
图22.复制目标文件到目标开发板上
执行文件复制到目标板上之后,即可以在目标板上启动可执行文件,在目标板上,执行QT程序时,需要先启动QT的基本运行图形环境,然后再启动QT程序,命令如下:
/etc/init.d/weston start
./QT-Example1
图23.通过串口启动QY程序执
启动成功后,既可以在通过HDMI接在板子上的显示上看到QT程序运行的效果,运行效果如下图:
图24.板上运行QT测试程序效果
八、编译运行其它QT程序
在开发板带的软件包里有QT例程的目录,里面有三个QT的程序,同样把他们复制到开发主机环境中,用上面的方法对他们进行交叉编译,并在TL5708开发板上都成功的运行起来。
编译过程不再赘述。其中Textures是一个基于QT的3D的例程,在QT中使用OpenGLES,直接在QT界面上进行三维的模型渲染和显示,后面附上视频可以见运行动态效果。
tl_image_display是一个图片的显示程序,可以以不同透明度和角度显示图片。
tl_led_control 是一个能够控制板上LED的QT程序,点按钮即可分别控制两个LED的亮灭,这个例程把LED控制和QT开发二合一了。
另外一个qfi为复杂的自定义UI组件模拟飞行仪表的QT软件,也顺利在TL5708环境中编译并成功运行
四个例程在板子上运行的效果图,分别如下:
图25 Textures QT测试程序效果
图26. tl_image_display QT测试程序效果
图27. tl_led_control QT测试程序效果
图28 qfi飞行仪表QT 测试程序效果
九、QT开发测试总结
通过对TL5708-EVM开发板开发测试QT软件开发的探索,从开发主机环境的配置,交叉开发工具安装,QT开发工具安装的过程实现,掌握了TL5708-EVM 的QT与C、C++的开发环境的建立。通过创建QT测试工程,编译调试,目标板编译,上传目标板,到在目标板上成功运行的过程则掌握了该开发版QT软件开发编译运行的方法。也为以后在该开发板上能够开发应用软件打通了道路。
整个开发测试过程非常顺利,从主机工作环境,开发工具,到交叉编译的建立,非常简单。开发也非常容易,开发板带的QT5软件组件功能丰富,测试了复杂的QT界面程序支持也很好,并且该开发板的QT与OpenGL和OPenCL ,GStream等软件开发包结合也很好,这就大大增强了开发板的应用场景。
对于有QT开发经验的团队来说,将其QT的应用软件移植到TL5708上来说,会非常简单,并且借助TI-PSDK的功能,扩展DSP信号处理功能,也非常的容易。