本小節主要介紹Tslib-1.4庫的編譯與移植,下節主要Qt5.8的移植,以及Qt5.8與Tslib-1.4的對接,實現在Qt上的觸摸功能;
一、開發環境以及工具
PC系統:Linux version 4.10.0-38-generic (buildd@lgw01-amd64-059) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017
交叉編譯器:arm-xilinx-linux-gnueabi-gcc
硬件平臺:賽靈思(XILINX)ZYNQ-7000開發板
二、前言
首先介紹下交叉編譯器的使用方法,gcc(編譯c語言——.c程序)、g++編譯器(編譯c++——.cpp程序)在PC Linux系統上一般是裝好的,用他們編譯好的程序只能在X86平臺(32位系統,如Windows、Linux)、或者X64平臺(64位PC系統)上運行,PC的CPU一般是Intel架構或者AMD架構;而Linux的嵌入式平臺,CPU一般是ARM架構;如果需要在嵌入式平臺上運行程序,那麼就需要用該ARM平臺所對應的交叉編譯器(arm-linux-gcc或者arm-linux-g++)編譯程序源碼,然後拷貝到ARM開發板上運行。如果該應用程序還需要依賴某些庫文件(比如動態庫.So),那麼就需要把該庫的絕對路徑添加到環境變量KaTeX parse error: Expected 'EOF', got '#' at position 56: …n style="color:#̲000000;">LD_LIB…PATH路徑下增加該交叉編譯器bin路徑
PATH=PATH=$PATH:/mnt/workspace/qt/cross_compilers/bin/
讓剛所修改的環境變量立即生效
source /etc/profile
讓後我們在終端terminal中輸入arm後,再按Tab鍵(自動補齊功能),我們就可以看到以arm開頭的一些交叉編譯器工具的文件,意思是環境變量設置成功,交叉編譯器已經成功安裝,並能使用。
或者輸入命令查看交叉編譯器的版本
arm-xilinx-linux-gnueabi-gcc -v
三、Tslib庫的安裝與編譯
在編譯Tslib-1.4庫文件前,需要添加
解壓tslib-1.4庫源碼
unzip tslib-master.zip
進入解壓的tslib-master目錄:首先清除源碼並運行autogen.sh腳本
./autogen-clean.sh
./autogen.sh
但提示./autogen.sh: 3: ./autogen.sh: autoreconf: not found的錯誤,可看出缺少autoreconf,度娘說是移植tslib前需要安裝的插件,也就是一個準備工具。
1、下載了一個autoconf-2.69.tar.xz包進行安裝
需要解壓兩次,第一次把.tar.xz解壓成.tar包,再把所生成.tar解壓成目錄
xz -d autoconf-2.69.tar.xz tar -xvf autoconf-2.69.tar
進入解壓所得到的autoconf-2.69目錄運行配置,–prefix參數爲安裝路徑
./configure --prefix=/usr/local/
但又提示configure: error: no acceptable m4 could be found in KaTeX parse error: Expected 'EOF', got '&' at position 7927: …umentation.<br>&̲nbsp; &nbs…TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=LD_LIBRARY_PATH:$TSLIB_ROOT/li
其中
TSLIB_TSDEVICE //觸摸驅動座標上報的接口名,可以在dev/input/目錄下查看,本測試開發板爲event0 TSLIB_CALIBFILE //校準的數據文件,由ts_calibrate校準程序生成。 TSLIB_CONFFILE //配置文件名。 TSLIB_PLUGINDIR //插件目錄 TSLIB_CONSOLEDEVICE //控制檯設備文件名
TSLIB_FBDEVICE //fb0爲ARM中的一塊內存,我們可以理解爲PC的顯存,要顯示應用層的圖形界面都不能繞過它
下面運行Tslib的ts_calibrate應用程序,首先檢測顯示屏的大小爲1024x600分辨率,然後一次點擊四個角落和中心點5個光標,判斷所點擊的位置和座標打印是否相符和,運行完後之程序會自動退出;
運行程序之前,顯示的是串口終端的信息
運行Tslib的ts_calibrate應用程序後,左上角會有一個十字光標,當我們點擊下十字光標,串口終端就會打印Topleft X=45 Y=71,其他的四個點同樣會打印出所被點擊點的座標,演示結果如下:
運行ts_test程序,點擊draw按鈕時,就可以隨意繪圖,點擊qiut就會退出該應用程序;
那麼tslib的移植以及校準就算完了,下一節介紹Qt5.8與觸摸的對接即Qt5.8與觸摸Tslib-1.4庫在嵌入式ARM-ZYNQ平臺的移植(二)。