SBC-T113产品特性:
- 采用Allwinner公司Cortex-A7双核T113-i处理器,运行最高速度为1.2GHZ;
- 内置64位玄铁C906 RISC-V CPU和 DSP,提供高效的计算能力;
- 支持1080P 视频编码,多格式1080P 60fps视频解码 (H.265,H.264, MPEG-1/2/4)
- 支持LVDS/MIPI-DSI,分辨率最高1920x1080;
- 支持512-1G Bytes DDR3 SDRAM;
- 支持SPI NAND启动和存储(256MB默认;512MB可选);可选EMMC启动和存储( 4G默认;8GB可选);
- 支持4路USB2.0 HOST和1路OTG,1路I2C,6路UART(RS232), 1路PWM(应用于背光)
- 支持双路CAN BUS通信
- 支持双路以太网,一路10/100M;一路10/100/1000M;
- 标准3.5寸主板, 尺寸为:146*102MM
SBC-T113功能评估图:
在T113-i_v1.0目录下执行如下命令编辑"platform/framework/qt/qt-everywhere-src-5.12.5/buildsetup_sf.sh"文件,可对Qt模块进行增加或删减。
备注:若无需编译增加或删减Qt模块,可跳过此章节。
Host$ vi platform/framework/qt/qt-everywhere-src-5.12.5/buildsetup_sf.sh
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0$ vi platform/framework/qt/
qt-everywhere-src-5.12.5/buildsetup sf.sh
如需删除Qt模块,在文件中添加“-skip+模块名 \”,例如删除qt3d模块,即“-skip qt3d \”。反之如需添加Qt模块,将“-skip+模块名 \”删除即可。
105 -no-strip \
106 -pch
107 -dbus
108 -no-use-gold-linker I
109 -no-directfb \
110 -no-eglfs \
111 -linuxfb
112 -no-kms
113 -no-opengl
114 -no-vulkan
115 -no-system-proxies \
116 -no-slog2 \
117 -no-Pps
118 -no-imf \
119 -no-Lgmon
120 -tslib
121 -skip qt3d \
122 -skip qtactiveqt \
123 -skip qtandroidextras \
124 -skip qtcanvas3d
125 -skip qtconnectivity \
126 -skip qtdatavis3d \
127 -skip qtdoc
128 -skip qtgamepad
129 -skip qtlocation
130 -skip qtmacextras
131 -skip qtnetworkauth
132 -skip qtpurchasing
133 -skip qtremoteobjects '
参数解析:
-no:用于禁用某个模块或组件。
-skip:在构建过程中跳过某个组件的代码仓库。
请根据实际需求,删除文件中不需要的Qt模块,保存修改文件后,重新对Qt库进行编译即可。
编译Qt库(可选组件):
在T113-i_v1.0目录下执行如下命令,编译Qt库。
备注:若无需编译生成支持Qt功能的Linux系统镜像,可跳过此步骤。
Host# ./build.sh qt
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0$ ./build.sh qt
ACTION List:mkqt
Execute command: mkqt
INFO: build Qt ..
INFo: build arm-linux-gnueabi version's Qt
/home/embfly/T113/T113-t_v1.0/platform/framework/qt/qt-everywhere-src-5.1 2.5
table='/home/embfly/T113/T113-i_v1.0/out/t113_i/sbc-t113_nand/longan/butldroot/butld/butldroot-fs/full_devices_table.txt
make: Leaving directory /home/embfly/T113/T113-i_v1.0/buildroot/buildroot-201902
nake:Entering directory /home/embfly/T113/T113-i_v1.0/platform
INFO: copy the config files form device..
Makefile:35
Makefile:36:/home/embfly/T113/T113-i_v1.0/platform
make: Nothing to be done for 'INSTALLFILES'
make: Leaving directory '/home/embfly/T113/T113-i_v1.0/platform
INFO:pre gpu lib...
cp:cannot stat /home/embfly/T113/T113-i_v1.0/platform/core/graphics/gpu_um_pub/mali-bifrost/fbde
v/mali-g31/arm-linux-gnu/lib/*: No such ftle or directory
cp:cannot stat '/home/embfly/T113/T113-i_v1.0/platform/core/graphics/gpu_um_pub/mali-bifrost/fbde
v/mali-g31/arm-linux-gnu/lib/*': No such file or directory
INFO: build buildroot OK.
INFo: build Ot and buildroot Ok.
embfly@embfly-virtual-machine:~/T113/T113-i_v1.0$
执行如下命令,重新压缩根文件系统,将编译Qt生成的相关文件拷贝至文件系统。
Host# ./build.sh rootfs
QT应用程序在SDK环境中的单独编译并黑盒调试:
我司LinuxSDK源码包提供了一些基于QT的应用程序代码,如果您暂时只是想编译验证他们,可通过如下指令进行编译并放到主板上运行。
我们以先进入到QT程序代码所在的目录SDK/platform/framework/auto/qt_demo(SDK表示的是SDK所在目录,一般是T113-i_v1.0),qt_demo目录下放的是不同的QT演示程序,我们这里以Launcher程序为例:
先进入到Launcher程序代码所在目录,指令如下:
Host$ cd /home/embfly/T113/T113-i_v1.0/platform/framework/auto/qt_demo
Host$ cd Launcher/
Host$ ls
bin common image.qrc Launcher.pro Makefile makeLauncher.bak push_run.bat build fonts images Launcher.pro.user makeLauncher pushOnly.bat
其中每个QT程序代码目录下,都有单独编译程序的脚本,在Launcher代码中,这个编译脚本是makeLauncher。我们单独指令它就可以编译程序。makeLauncher脚本的内容是:
#!/bin/sh
PATH=$LICHEE_BR_OUT/host/bin/:$PATH
$QT_INSTALL_DIR/bin/qmake -o Makefile Launcher.pro
make -j6
exit $?
另外,每个QT程序代码目录下,也有把程序通过adb上传到主板的脚本和通过adb上传到主板并运行的脚本,在Launcher的代码中,这两个脚本分别是pushOnly.bat和push_run.bat,其中pushOnly.bat的内容如下:
adb shell killall Launcher 注解:先杀掉进程
adb push %~dp0bin/Launcher / 注解:把程序通过adb上传到主板的根目录下
adb shell chmod 777 /Launcher 注解:把程序更改为可运行的
pause
push_run.bat的内容如下:
adb shell killall Launcher 注解:先杀掉进程
adb push %~dp0bin/Launcher /usr/bin/ 注解:把程序通过adb上传到主板的/usr/bin目录下
adb shell chmod 777 /usr/bin/Launcher注解:把程序更改为可运行的
adb shell . /etc/qtenv.sh 注解:配置QT运行环境
adb shell ./usr/bin/Launcher 注解:运行该程序
pause
如下我们介绍如何编译程序并把程序发送到主板上运行:
1)配置QT编译环境
Host$ source ../../../../../.buildconfig
说明:这个buildconfig 位于SDK所在目录,一般是T113-i_v1.0
2)编译QT程序
Host$ ./makeLauncher
3)上传到主板,并运行程序
Host$ ./push_run.bat
注意1:先编译好QT库,才可以进行QT程序的编译。
注意2:关于adb在linux下的安装可参考附录4-Ubuntu下adb工具的安装
注意3:adb可以向主板上传文件,也可以从主板上下载文件,指令如下:
adb pull <主板路径> <开发主机路径> 从主板上中拉取信息到本地电脑上
adb push <开发主机路径> <主板路径> 从本地电脑推送信息到主板上