国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

迅為IMX6ULL開發板Linux下電容觸摸屏實驗-Tslib移植和使用

發布時間:2020-12-7 10:09    發布者:就是塔塔
關鍵詞: 迅為 , IMX6ULL
54.5 Tslib  移植和使用
ft5426 觸摸驅動添加成功后,發現觸摸可能不太準確,這時可以使用一個第三方開源庫 tslib 來調試觸摸屏。下面來看一下 tslib 源碼如何移植。
54.5.1  獲取 tslib  源碼
tslib 源碼可以從官方地址獲取:https://github.com/libts/tslib,打開網址可以看到最新的版本是 1.21,可以從官網獲取,也可以從網盤資料中獲取,資料路徑:i.MX6UL 終結者光盤資料/06_Linux 驅動例程/第三方庫源碼/tslib-1.21.tar.bz2。獲取到 tslib 源碼后,拷貝到 Ubuntu 系統下并解壓,得到 tslib-1.21 文件夾。
54.5.2  編譯 tslib
獲取到 tslib 源碼后,可以編譯 tslib 源碼,具體有下面幾個步驟。
1、修改 tslib 源碼所屬用戶
修改解壓得到的 tslib-1.21 目錄所屬用戶為當前用戶,如果不修改可能會在稍后的編譯中會遇到各種問題。我當前 ubuntu 的登錄用戶名為“topeet”,那么修改命令如下:
sudo chown topeet:topeet tslib-1.21 -R修改后如圖 54.5.2.1 所示:

2、Ubuntu 工具安裝
編譯 tslib 的時候需要先在 ubuntu 中安裝一些文件,防止編譯 tslib 過程中出錯,命令如下所示:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
3、編譯 tslib
首先創建一個 tslib 文件夾,用于存放編譯結果。比如文件路徑為:/home/topeet/tslib
然后使用下列命令配置并編譯 tslib:
cd tslib-1.21/ //進入 tslib 源碼目錄
./configure --host=arm-none-linux-gnueabi --prefix=/home/topeet/tslib
make //編譯
make install //安裝
注意,在使用./configure 配置 tslib 的時候“--host”參數指定編譯器,指定的編譯器要和編譯文件系統使用同一個編譯器,否則在開發板下不能正常使用。“--prefix”參數指定編譯完成以后的 tslib 文件安裝到哪里,這里肯定是安裝到我們剛剛創建的“tslib”目錄下。
編譯完成后 tslib 目錄如圖 54.5.2.2 所示:

然后將 tslib 目錄下的所有文件拷貝到開發板的根文件系統下。如果直接拷貝的話會出現符號鏈接文件不能拷貝的現象,可以先使用 tar 命令進行打包,然后解壓到根文件系統下。命令如下:
tar -czvf lib.tar.gz * //打包生成 lib.tar.gz 壓縮包
tar -xvf lib.tar.gz / //解壓到開發板根文件目錄下
54.5.3  測試 tslib
當把編譯好的 tslib 拷貝到開發板后,進行命令測試。
1、配置 tslib
打開/etc/ts.conf 文件,找到下面這一行:
module_raw input
如果上面這句前面有“#”的話就刪除掉“#”。
打開/etc/profile 文件,在里面加入如下內容:
1 export TSLIB_TSDEVICE=/dev/input/event1
2 export TSLIB_CALIBFILE=/etc/pointercal
3 export TSLIB_CONFFILE=/etc/ts.conf
4 export TSLIB_PLUGINDIR=/lib/ts
5 export TSLIB_CONSOLEDEVICE=none
6 export TSLIB_FBDEVICE=/dev/fb0
第 1 行,TSLIB_TSDEVICE 表示觸摸設備文件,這里設置為/dev/input/event1,這個要根據具體情況設置,如果你的觸摸設備文件為 event2 那么就應該設置為/dev/input/event2,以此類推。
第 2 行,TSLIB_CALIBFILE 表示校準文件,如果進行屏幕校準的話校準結果就保存在這個文件中,這里設置校準文件為/etc/pointercal,此文件可以不存在,校準的時候會自動生成。
第 3 行,TSLIB_CONFFILE 表示觸摸配置文件,文件為/etc/ts.conf,此文件在移植 tslib 的時候會生成。
第 4 行,TSLIB_PLUGINDIR 表示 tslib 插件目錄位置,目錄為/lib/ts。
第 5 行,TSLIB_CONSOLEDEVICE 表示控制臺設置,這里不設置,因此為 none。
第 6 行,TSLIB_FBDEVICE 表示 FB 設備,也就是屏幕,根據實際情況配置,我的屏幕文件為/dev/fb0,因此這里設置為/dev/fb0。
全部配置好以后重啟開發板,然后就可以進行測試了。
2、 測試 tslib
開發板重新啟動后,可以先進行校準,使用下面的命令:
ts_calibrate
校準完成后,會生成/etc/pointercal 文件,如果想重新校準,可以直接刪除/etc/pointercal 文件,重新執行校準命令。
然后可以使用 ts_test_mt 這個命令來測試觸摸屏工作是否正常,以及多點觸摸是否有效,執行如下所示命令:
ts_test_mt
命令執行后會打開一個測試界面,如圖 54.5.3.1 所示:

上圖中有三個按鈕“Drag”、“Draw”和“Quit”,這三個按鈕的功能如下:
Drag:拖拽按鈕,默認就是此功能,大家可以看到屏幕中間有一個十字光標,我們可以通過觸摸屏幕來拖拽此光標。一個觸摸點一個十字光標,對于 5 點電容觸摸屏,如果 5 個手指都放到屏幕上,那么就有 5個光標,一個手指一個。
Draw:繪制按鈕,按下此按鈕我們就可以在屏幕上進行簡單的繪制,可以通過此功能檢測多點觸摸工作是否正常。
Quit:退出按鈕,退出 ts_test_mt 測試軟件。
54.6  使用 Linux  內核自帶的 ft5426  驅動
在 Linux 內核中集成了許多電容觸摸芯片的驅動,其中就包括我們使用的 ft5426 的驅動。所以我們來使用一下 Linux 內核自帶的 ft5426 驅動文件。在使用之前需要先將前面我們添加的 ft5426.c 驅動文件去除掉,只 需 要 修 改 drivers/input/touchscreen/Makefile 這個文件即可,將下面這一行刪除掉:
obj-y += ft54266.o
內核自帶的 ft5426 的驅動文件為 drivers/input/touchscreen/edt-ft5x06.c。
1、使能內核 ft5426  驅動配置
要使用 Linux 內核自帶的驅動,需要添加 Linux 內核配置。首先打開圖形化配置界面,命令如下:
make ARCH=arm menuconfig
配置路徑如下:
Device Drivers --->
Input device support --->
Touchscreens --->
<*> EDT FocalTech FT5x06 I2C Touchscreen support
配置如圖 所示:

配置完成后重新編譯 Linux 內核,生成 zImage 鏡像。
2、  修改設備樹文件
我們要根據 edt-ft5x06.c 文件中的 compatible 屬性修改設備樹下 ft5426 設備節點的 compatible 屬性值edt-ft5x06.c 所支持的 compatible 屬性列表如下所示:
static const struct of_device_id edt_ft5x06_of_match[] = {
{ .compatible = "edt,edt-ft5206", },
{ .compatible = "edt,edt-ft5306", },
{ .compatible = "edt,edt-ft5406", },
{ /* sentinel */ }
};
可以看出,edt-ft5x06.c 文件默認支持的 compatible 屬性只要三個“edt,edt-ft5206”、“edt,edt-ft5306”和“edt,edt-ft5406”。我們可以修改設備樹中的 ft5426 節點,在 compatible 屬性值添加一條“edt,edt-ft5406”,或者在 edt-ft5x06.c 文件中的 edt_ft5x06_of_match 表,在里面添加一條:
{ .compatible = "edt,edt-ft5426", }
總之一句話,讓 ft5426 這個設備和 edt-ft5x06.c 這個驅動匹配起來。這里我們修改設備樹下的 ft5426設備節點,修改后如下所示;
1 ft5426: ft5426@38 {
2 compatible = "edt,edt-ft5426","edt,edt-ft5406";
3 reg = <0x38>;
4 pinctrl-names = "default";
5 pinctrl-0 = <&pinctrl_tsc>;
6 interrupt-parent = <&gpio1>;
7 interrupts = <9 0>;
8 reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
9 interrupt-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
10 };
在 compatible 屬性中添加"edt,edt-ft5406"兼容值。
設備樹修改完成后,重新編譯。然后使用新的 zImage 和 dtb 設備樹文件啟動開發板。驅動正常的情況,有如下啟動信息:

然后可以使用下面的命令查看 input 設備的具體情況:
cat /proc/bus/input/devices
結果如圖:

然后可以使用 hexdump 或者 ts_test_mt 命令進行測試。



本文地址:http://m.qingdxww.cn/thread-749954-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品一区二区第四页 | 欧美成人在线视频 | 免费国产成人午夜私人影视 | 国产色中色 | 久久久久国产成人精品亚洲午夜 | 91麻豆国产自产 | 99爱在线视频这里只有精品 | 日本三级网站在线线观看 | 国产一区二区精品尤物 | 日韩精品免费一线在线观看 | 一级做a爰片性色毛片视频图片 | 欧美国产成人一区二区三区 | 国产蝌蚪| 深爱五月综合网 | 免费在线看黄色的网站 | 综合网久久| 欧美精品亚洲精品日韩专区va | 亚洲线精品一区二区三区 | 日本精品一区二区三区四区 | 五月天精品视频在线观看 | 亚洲成人在线免费观看 | 这里只有精品66 | 18一20岁一级毛片 | 国产二级片 | 国产精品成人免费 | 国产一区二区三区久久 | 香蕉精品视频在线观看 | 亚洲手机在线手机观看高清hd | 明星三级国产免费播放 | 国产不卡免费 | 久热这里只有精品在线 | 日日综合 | 欧美a免费 | 日韩免费一区二区三区在线 | 日本网站在线播放 | 九九久久精品视频 | 国产精品九九免费视频 | 99热这里只有精品4 99热这里只有精品3 | 国产一区二区三区免费观看 | 91精彩视频在线观看 | 成人精品视频在线观看完整版 |