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功能评估图:
Qt5.12图形库配置说明(可选组件):
在T113-i_v1.0目录下执行如下命令编辑"platform/framework/qt/qt-everywhere-src-5.12.5/buildsetup_sf.sh"文件,可对Qt模块进行增加或删减。
备注:若无需编译增加或删减Qt模块,可跳过此章节。
Host$ viplatform/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/buildsetupsf.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
ACTIONList:mkqt
Executecommand: 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.12.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:Enteringdirectory /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:pregpu lib...
cp:cannotstat /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:cannotstat '/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 -oMakefile 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可以向主板上传文件,也可以从主板上下载文件,指令如下:
adbpull<主板路径> <开发主机路径> 从主板上中拉取信息到本地电脑上
adb push <开发主机路径> <主板路径> 从本地电脑推送信息到主板上