本文记录了QT4.8图形界面在全志A40I/T3 SDK平台上的移植过程,说明过程中可能会技术瑕疵,希望大家提供宝贵意见。
本文移植的平台来自于盈鹏飞嵌入式的CoM-X40I/T3A平台(处理器分别时是全志的A40I/T3)。
以下是盈鹏飞嵌入式CoM-X40I核心模块的简要介绍:
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
以下是以CoM-X40I为核心板主板-SBC-X40I的功能图:
以下为基于A40I/T3 SDK平台的QT4.8移植和应用开发连载(二)内容:
2 编译tslib1.4及配置
2.1编译tslib1.4
Tslib1.4的代码放在<SDK>/buildroot-201611/dl目录下,文件名为tslib-1.4.tar.gz,先把该文件解压出来,同时把编译tslib1.4的脚本(build_tslib1.4.sh)拷贝到tslib1.4代码所在目录:
Host#cd <SDK>/buildroot-201611/dl
注意:<SDK>指的是SDK存放的根目录,根据具体情况而定
Host# tar –zxvf tslib-1.4.tar.gz
Host# cp build_tslib1.4.sh tslib-1.4
Host# cd tslib-1.4
Host# ./build_tslib1.4.sh
执行完以上指令后,就会在<SDK>/tslib1.4目录下生成对应的tslib库,同时也会将生成的库拷贝到目标板的根文件系统目录下:
szembfly@szembfly-VirtualBox:~/workspace/LinuxSDK/out/sun8iw11p1/linux/common/buildroot/target/usr/local/tslib1.4$ ls
bin etc include lib
备注:<SDK>/out/sun8iw11p1/linux/common/buildroot/target下的内容最后会生成目标板的根文件系统,并最后打包成固件。
2.2修改tslib的配置文件
输入命令修改tslib的配置文件:
Host# vi <SDK>/out/sun8iw11p1/linux/common/buildroot/target/usr/local/tslib1.4/etc/ts.conf
注意:<SDK>指的是SDK存放的根目录,根据具体情况而定
编辑'ts.conf'文件,去掉'module_raw input'前面的 # 号,否则可能导致出现‘no raw modules loaded’的错误。还要注意'module_raw input'前面不能有空格,否则运行测试程序时可能会出现'Segmentation fault'的提示。
至此,目标板根文件系统/usr/local/tslib1.4目录下的文件就是编译好的arm上需要的tslib库文件。
2.2修改tslib的配置文件的另外一种方法
为了方便定制目标板的根文件系统,例如:修改linux的一些配置文件或者增加一些文件,A40I的SDK采用的办法是修改<SDK>/buildroot-201611/target/user_rootfs_extra目录下对应内容即可。
该目录下所有文件在执行./build.sh脚本(在<SDK>根目录下执行的编译脚本)后都会覆盖到<SDK>/out/sun8iw11p1/linux/common/buildroot/target目录,最后打包成根文件系统。
注意:<SDK>指的是SDK存放的根目录,根据具体情况而定。