將tslib 1 4移植到Mini2440開發板

2021-07-31 03:23:38 字數 2761 閱讀 4444

author: simon lee date: 2017/04/25

主機環境:red hat enterprise linux6

編譯器:arm-linux-gcc 4.4.3

開發板:friendarm2440,linux-2.6.32.12

作為訓練,最近又重新移植了一次tslib,很久之前按照網路教程移植過了一次,結果失敗了。本次開發板使用的是友善之臂的mini2440。液晶觸控螢幕是天嵌的

4.3寸480*272規格的螢幕。

說說之前失敗的現象,在移植完畢以後測試tslib庫bin目錄下的ts_calibrate,出現了illegal instruction。原因是網上所說的arm-linux-gcc版本用錯了。

在使用友善之臂公司提供了原裝核心映像zimage_p43時,一定要注意,當時編譯該核心的時候採用了arm-linux-gcc 4.4.3版本的編譯器。所以在移植tslib-1.4的時候,

也請一定要注意使用arm-linux-gcc 4.4.3版本的編譯器,當時沒留意編譯器的環境問題,結果就出錯。嵌入式開發還是很多細節問題要注意,馬虎不得。

需要複製到開發板當中去,所以為了避免pc端的庫函式所屬使用者名稱與開發板的許可權不一致,需要在pc機當中用root身份執行編譯操作。

1.在解壓目錄下執行make distclean清空舊配置檔案(養成好習慣)。

2.執行"ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache,作用是防止編譯過程中出現錯誤"undefined reference to rpl_malloc"

3.我本人寫了乙個shell指令碼,作為編譯前的自動化配置流程,主要功能就是配置交叉編譯器,一定要確保使用正確的arm-linux-編譯器來編譯程式,否則

無法完成跨平台的移植功能。再一次強調,不同的編譯器編譯的zimage映像檔案一定要查清楚,當時自己編譯核心的時候交叉編譯器的版本是什麼。shell指令碼如下,

執行指令碼./my_configure.sh(注意執行前修改許可權 chmod 777 my_configure.sh)

#!/bin/bash

./configure --host=arm-none-linux-gnueabi --cache-file=arm-linux.cache --prefix=$(pwd)/tmp

cc=/usr/local/arm/4.4.3/bin/arm-linux-gcc cxx=/usr/local/arm/4.4.3/bin/arm-linux=g++

export cc=/usr/local/arm/4.4.3/bin/arm-linux-gcc

export cxx=/usr/local/arm/4.4.3/bin/arm-linux-g++

4.執行配置完成以後,make && make install 安裝程式到當前目錄的tmp資料夾下

5.安裝完成以後,到tmp目錄下的bin資料夾下找到ts_calibrate.執行命令檢視該檔案的平台屬性,如果屬於arm平台,說明交叉編譯成功,可以用u盤或者網路掛載

[student@localhost bin]$ file ts_calibrate 

ts_calibrate: elf 32-bit lsb executable, arm, version 1 (sysv),

dynamically linked (uses shared libs), for gnu/linux 2.6.32, 

not stripped

5.本人用u盤複製tmp資料夾下的4個資料夾內容到arm開發板的/usr/local/tslib目錄下存放

輸入如下內容,儲存並退出。

export tslib_root=/usr/local/tslib                                            

export tslib_tsdevice=/dev/input/event0                

export tslib_fbdevice=/dev/fb0                         

export tslib_plugindir=$tslib_root/lib/ts              

export qws_mouse_prot0=tslib:/dev/input/event0         

export tslib_calibfile=/etc/pointercal            

export tslib_conffile=$tslib_root/etc/ts.conf     

export pointercal_file=/etc/pointercal            

export tslib_consoledevice=none                   

export qws_size=480*272                           

export qt_qws_fontdir=$qtdir/lib/fonts        

export ld_library_path=$ld_library_path:$tslib_root/lib

7.vi 編輯器修改/usr/local/tslib/etc/ts.conf內容,將

# module_raw input一行前面的符號和空格去掉,注意空格也不能留,文字頂格。

8.執行source /etc/profile

9.執行/usr/local/tslib/bin/ts_calibrate, 如果你的觸控螢幕出現了螢幕校正

功能,說明觸控螢幕庫移植成功,否則就是移植不成功,請認真檢查每一步。

tslib1 4移植與使用

一.首先在ubuntu中安裝以下工具包 sudo apt get install autoconf sudo apt get install automake sudo apt get install libtool 二.編譯 tar xzf tslib 1.4.tar.gz cd tslib ex...

tslib 1 4 移植編譯總結

在linux下面解壓,建立make.sh 指令碼 export path hom bbb gcc linaro arm linux gnueabihf 4.8 2014.03 linux bin path export cross compile arm linux gnueabihf make c...

tslib 1 4的安裝與移植

一 移植環境 cpu s3c2440 sdram hy57v561620ftp h nor flash sst 39vf1601 2m nand flash k9f1g08u0b 128m 網絡卡晶元 dm9000ep 二 部落格位址 如有錯誤,歡迎指正。三 具體方法 之前把u boot的移植做完之...