飛凌TE6410開發Qt/E 4.4.3介面程式步驟

似水如風發表於2013-09-27
1、用
/joe/4.4.3/builddir/sdk/qtopiacore/target/bin/qmake
工具編譯編寫的程式,生成Makefile檔案
2、修改Makefile檔案,
CFLASS =  -fno-rtti 
CXXFLAGS = -fno-rtti
/usr/local/arm/4.4.1/bin/
3.設定交叉編譯工具export PATH=/usr/local/arm/4.4.1/bin/:$PATH

3、make生成可執行檔案
4、建立開發板環境變數檔案env.sh,內容如下:

Qt 4.4.3的環境變數:

	export PATH='/opt/Qtopia4.4.3/bin:/sbin:/usr/sbin:/bin:/usr/bin'
	export QPEDIR='/opt/Qtopia4.4.3'
	export QTDIR='/opt/Qtopia4.4.3'
	export QT_QWS_FONTDIR='/opt/Qtopia4.4.3/lib/fonts/'//字型庫目錄
	export QWS_DISPLAY='LinuxFb:mmWidth76:mmHeight44:1'//字型相關的設定
	export QWS_MOUSE_PROTO='Tslib:/dev/input/event1'
	export TSLIB_CALIBFILE='/etc/pointercal'    //校準的資料檔案,由ts_calibrate校準程式生成
	export TSLIB_CONFFILE='/usr/local/tslib/etc/ts.conf'    //配置檔名
	export TSLIB_CONSOLEDEVICE='none'           //控制檯裝置檔名
	export TSLIB_FBDEVICE='/dev/fb0'            //裝置名
	export TSLIB_PLUGINDIR='/usr/local/tslib/lib/ts'    //外掛目錄
	export TSLIB_ROOT='/usr/local/tslib'
	export TSLIB_TSDEVICE='/dev/input/event1'  //觸控式螢幕裝置檔名
	export TSLIB_TSEVENTTYPE='H3600'
	export QT_PLUGIN_PATH='/opt/Qtopia4.4.3/plugins:/opt/Qtopia4.4.3/qt_plugins/'
	export LD_LIBRARY_PATH='/opt/Qtopia4.4.3/lib'

Qt 4.7.1的環境變數設定:

#export PATH='/opt/Qtopia4.4.3/bin:/sbin:/usr/sbin:/bin:/usr/bin'
#export QPEDIR='/opt/Qtopia4.4.3'
#export QTDIR='/opt/Qtopia4.4.3'
export QT_QWS_FONTDIR='/opt/Qtopia4.4.3/lib/fonts/'
export QWS_DISPLAY='LinuxFb:mmWidth160:mmHeight120:1'
export QWS_SIZE='800x480'//7寸螢幕解析度
export QWS_MOUSE_PROTO='Tslib:/dev/input/event2'
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/usr/local/tslib/etc/ts.conf'
export TSLIB_CONSOLEDEVICE='none'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/local/tslib/lib/ts'
export TSLIB_ROOT='/usr/local/tslib'
export TSLIB_TSDEVICE='/dev/input/event2'
export TSLIB_TSEVENTTYPE='H3600'
export QT_PLUGIN_PATH='/opt/qt-4.7.1/plugins:/opt/qt-4.7.1/plugins'
export LD_LIBRARY_PATH='/opt/qt-4.7.1/lib'



5、將可執行檔案和sh檔案放入/joe/root/FileSystem-Yaffs2/opt目錄下面
6、source /opt/env.sh
7、./helloworld -qws &



注意:/etc/init.d/rcS中的最後一行的說明:1)/bin/qopia & 表示qtopia2.2.0
2)/bin/qtopia4 & 表示qtopia4.4.3
3)/bin/qt4 & 表示qt/e4.7


注意:


1、我們在實際除錯的時候,都是通過nfs掛載的形式。當我們執行ts_calibrate的時候,會在/etc目錄下生成一個pointercal檔案。有時候會因為掛載目錄的許可權不夠,導致無法生成Pointercal檔案。這個時候我們可以用chmod 777 etc加個許可權。


2、有時候由於交叉編譯工具兩沒有指定正確,會出現非法指令或者是“ line 1: syntax error: unexpected "("”錯誤。可以用file ts_calibrate是否是在當前平臺上執行的程式,用readelf -a ts_calibrate檢視當前的指令集.


3. export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0",這句話我們在後面的Qt程式國際化的得到,在移植的所有工作都完成以後,我發現LCD屏山的字型非常小。後來經過多發打聽,才知道需要修改這句話。我們把其中的數字值都改為其一半的時候,屏上的字型就比較大了。具體原因有待研究。







PS:這個程式碼是裁剪核心和多媒體驅動的時候出現的錯誤,只要arch/arm/mach_s3c64XX/mach_smdk6410.c的相關宣告去掉就行了。
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x274): undefined reference to `s3c_device_vpp'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x278): undefined reference to `s3c_device_mfc'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x27c): undefined reference to `s3c_device_tvenc'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x280): undefined reference to `s3c_device_tvscaler'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x284): undefined reference to `s3c_device_rotator'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x288): undefined reference to `s3c_device_jpeg'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x28c): undefined reference to `s3c_device_g2d'
arch/arm/mach-s3c64xx/built-in.o:(.init.data+0x290): undefined reference to `s3c_device_g3d'

相關文章