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的移植做完之...