本文记录了QT4.8平台在AM335X/A40I等现在流行嵌入式平台的移植过程,说明过程中可能会技术瑕疵,希望大家提供宝贵意见。
本文移植的平台来自于盈鹏飞嵌入式的COM-335X平台(处理器是AM335X)和COM-X40I平台(处理器是全志A40I/T3).
集成电源版本,集成电源是TPS65217
分立电源版本
以下为产品介绍:
COM-335X 产品特性
- 采用TI公司Cortex-A8 AM335X处理器,运行最高速度为1GHZ;
- 支持128M-512M DDR3 SDRAM;
- 支持128-1G字节 SLC电子盘或者EMMC 4G-32G大容量电子盘,可启动;
- 最多可支持两路千兆以太网,支持IEEE1588;
- 支持两路高速USB OTG;
- 支持最多六路串口,双路CAN BUS;
- 支持分辨率最高的1360*768显示接口,可支持SGX530 3D引擎;
- 板载DS1339的RTC时钟,国内独家设计,保证系统时钟同步;
- 支持GPMC扩展总线,可扩展FPGA或者 DSP应用;
- 稳定的操作系统的支持,可预装Ubuntu 16.04或者Preempt Linux 4.14;ANDROID 4.2可根据项目定制;
- 超小体积,邮票孔设计,160pins, 尺寸为:45*45MM
以下为产品介绍:
COM-X40I 产品特性
- 采用Allwinner公司Cortex-A7四核A40i处理器,运行最高速度为1.2GHZ;
- 支持Mali-400MP2 GPU,支持OpenGL ES 2.0 / OpenVG 1.1 standard
- 支持1080P 视频编码,支持H.264,VP8;多格式1080P 60fps视频解码 (H.265,H.264,VC-1, MPEG-1/2/4, VP8)
- 支持双屏异显;支持HDMI V1.4A/RGB888/LVDS,分辨率最高1920x1080;T3处理器不支持HDMI;
- 支持512-2G Bytes DDR3 SDRAM;
- 支持EMMC 4G-64G大容量电子盘,可启动;
- 支持SDIO3.0,USB2.0 HOST&OTG,2路I2C,6路UART,2路SPI,2路PWM
- 支持双路以太网,一路10/100M;一路10/100/1000M;
- 可定制宽温产品,替换AM335X
- 稳定的操作系统的支持,可预装Android7.0或者LINUX 3.10(可预装Preempt Linux系统);
- 超小体积,邮票孔设计160pins, 尺寸为:45*45MM
以下是本连载的第(四)篇 编译移植qt程序
5 编译移植qt程序
以EVB-335X qt界面程序为例,将光盘中:linux\test_code\qtdemo1程序源码拷贝到虚拟机linux下,定位到代码目录。具体步骤如下所示:
5.1编译qtdemo
1)修改环境变量
在虚拟机linux系统中完成编译安装qt库后,需要对系统的环境变量进行设置,才能编译自己的程序,为了方便设置环境变量,可制作成脚本。
进入qtdemo1目录,输入命令:$vi setARMenv.sh,建立setARMenv.sh,如下图所示:
添加如下内容:
注意:以上目录是你安装qt 库的路径。
建立setARMenv.sh后,输入命令: $source setARMenv.sh,设置环境变量。如图所示:
2)设置环境后,输入命令: $qmake –v,查看qmake 的路径是否正确
如图所示:qmake路径正是之前安装qt库的路径。
3)输入命令:$qmake –project,生成qtdemo1.pro文件,再输入命令:$qmake,生成Makefile文件,如下图所示:
4)由于qtdemo1程序需要链接sqlite3库,所以需进入Makefile 在LIBS=后面加上 -lsqlite3
并将sqlite3的库文件和头文件加进交叉编译器中,或在编译的时候指定路径。指定路径的方法请参考:光盘linux\linux_api\CoM335x_linux_API使用手册 中附录部分:应用程序调用库函数过程演示。我们已经将sqlite3编译好的库文件压缩成sqlite3.tar.bz2,放置在光盘:test_code\sqlite3\so\目录下,用户可将其解压后,分别拷贝在交叉编译链中的目录下,目录如下图所示:
5)输入命令:$make,编译qtdemo1程序
输入命令ls,可查看qtdemo1目录下,生成可执行文件以生成可执行文件:qtdemo1,如下图所示:
至此qtdemo1程序编译完成。
5.2移植qtdemo
输入命令:$scp qtdemo1 root@192.168.0.230:/qtdemo1,将qtdemo1发送到开发板根目录下,如下图所示:
在开发板根目录下,可看到qtdemo1可执行程序,如下图所示: