QT4向s3c2410平台移植

2021-05-22 11:10:45 字數 4490 閱讀 6285

在這裡就不著重講解 qt的發展和裡面細節的內容,針對嵌入式linux系統來說,使用一種gui是很常見的,那麼首先就涉及移植的問題,只有再移植好的情況下再開發自己的產品。當然這個步驟不是死的,但移植確實是要做的,還要做好,過程有的時候也不是很容易的。今天我就在s3c2410的平台上移植了qt4,然後把移植出現的問題記錄了下來,僅僅做個參考。

1.開發平台:ubuntu 81.0,交叉編譯器版本3.4.5(arm-linux-gcc),qt-embedded-linux-opensource-src-4.4.3.tar.gz。

2.目標平台:s3c2410,320*240觸控螢幕 ,linux-2.6.26.5,u-boot-1.3.4

3.移植步驟如下

(1)首先配置linux核心,支援lcd驅動,然後點亮你的屏,並且支援framebuffer,具體的核心配置如下:

device drivers  --->    graphics support  --->  <*> support for frame buffer devices  ---> 

<*>   s3c2410 lcd framebuffer support

當然裡面還涉及一些細節,這裡就不一一說了,如果大家這塊有問題,可以提出來!

(2)如果你想支援usb滑鼠和usb鍵盤,只需配置核心既可:

device drivers  ---> [*] hid devices  --->    <*>   usb human inte***ce device (full hid) support

(3)編譯核心進行測試。

(4)

ftp://ftp.trolltech.no/qt/source/qt-embedded-linux-opensource-src-4.4.3.tar.gz

,放在你普通使用者的乙個目錄,比如/home/yoyoili/qt4_port.解壓.

(5)進入解壓好的目錄。

(6)然後就是很關鍵的配置,qt4的移植是通過配置來是否支援某種特性,比如openssl等等。那麼根據你自己的需求呢進行相應的配置就可以了,這裡參考**的一篇文章進行了配置,具體如下:

./configure /

-prefix  /home/yoyoili/qt4_port/qt/build /  //指定安裝的目錄,與開發板上執行的目錄一致

-release -shared /

-fast /

-pch /

-no-qt3support /

-qt-sql-sqlite /

-no-libtiff -no-libmng /

-qt-libjpeg /

-qt-zlib /

-qt-libpng /

-qt-freetype /

-no-openssl /

-nomake examples -nomake demos -nomake tools/

-optimized-qmake /

-no-phonon /

-no-nis /

-no-opengl /

-no-cups /

-no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm/

-no-xinerama -no-xshape /

-no-separate-debug-info /

-xplatform qws/linux-arm-g++ /

-embedded arm /

-depths 16 /

-no-qvfb /

-qt-gfx-linuxfb /

-no-gfx-qvfb  -no-kbd-qvfb  -no-mouse-qvfb/

-qt-kbd-usb /

-confirm-license /

-no-armfpa

這裡我沒有去實現觸控螢幕的校準,由於時間的問題,以後陸續補充完整,如果支援觸控螢幕在加乙個:-qt-mouse-tslib。

這個過程如果涉及很多問題,一般都是你的系統缺少了某些庫的問題,我的ubuntu 8.10相應的庫都安裝的比較齊全,沒有錯誤,如果你是fedroa,只需要完全安裝,就不會有什麼問題,這個是驗證過的!

(7)然後就是make && make install,編譯和安裝了,如果好的話,就會在你的安裝目錄,也就是 /home/yoyoili/qt4_port/qt/build 有相應的如下目錄:bin  include  lib  mkspecs  plugins  translations,大家可以看看裡面的內容。這裡我們關心的是乙個lib,就是庫檔案,以後交叉編譯好的程式在板子上跑起來以後都需要這些庫。把所需要的庫拷貝到開發板的相應的目錄即可,這裡比如:cp /home/yoyoili/qt4_port/qt/build/lib/libqt* /home/yoyoili/source/rootfs/home/qt/build/lib,當然有的庫你可以不需要拷貝的。

(8)然後拷貝顯示中文的文泉驛字型,這裡比如:cp /home/yoyoili/qt4_port/qt/build/lib/fonts/wenquanyi_160_75.qpf /home/yoyoili/source/rootfs/home/qt/build/fonts (前面的路徑就是編譯並安裝以後的目錄,這個字型就是這個目錄的lib/fonts下面 ,當然後面就是我們開發板根檔案系統的目錄)

(9)測試,我們用原始碼自帶的程式來進行測試,比如在原始碼的example裡有很多,你只需qmake && make就可以了,然後把可執行檔案拷貝開發板上用的根檔案系統。

(10)設定相應的環境變數,這個環境變數是給開發板使用的,不是給你的pc機!具體如下:

export qtdir=/home/qt/build

export ld_library_path=$qtdir/lib:$ld_library_path  //(否則找不到庫)

export path=$qtdir/bin:$path

export qt_qws_fontdir=/home/qt/build/fonts   // (否則字型無法顯示)

當然如果你用觸控螢幕還有相關的設定,你也需要在這裡新增!

(11)執行我們的程式:

./test -qws -fn /home/qt/build/fonts/wenquanyi_160_75.qpf

然後你的屏上就有了顯示。

(12)然後你可以在開發板上插上你的usb滑鼠就可以來操作這個小qt程式了。

(13)如果你想玩鍵盤,這樣有意思:

設定你的console=tty0既可以操作你的開發板了,你就可以玩命令了,那麼這個console的引數的指定有兩種方法,乙個可以通過u-boot傳遞,這裡比如:setenv bootargs root=/dev/nfs nfsroot=192.168.1.110:/home/yoyoili/source/rootfs ip=192.168.1.120 init=/linuxrc console=tty0,另乙個就是通過核心,你只需配置核心既可以:具體如下:

boot options  --->     (root=/dev/nfs nfsroot=192.168.1.2:/home/yoyoili/source/rootfs ip=192.168.1.3 init=/linuxrc console=tty0)!

(14)這裡說一下可能出現的問題:

1.在編譯你的qt程式的時候會有乙個collect錯誤,應該是連線的qt4的庫不是arm交叉編譯工具編譯的,兩者連線有衝突。在file.pro中去掉對qt4庫的連線即可,增加一行config -= qt,即可去掉。

2.如果出現這個問題:/lib/libqtcore.so: undefined reference to `clock_gettim

解決的辦法就是在makefile裡的lfags後新增乙個 -lrt就可以。

3.有的人用的交叉編譯器是用的arm-softfloat-linux-gnu-gcc,所以在make編譯的時候老是提示arm-linux-gcc找不到,解決這個問題的辦法很多,乙個方法就是重新製作你的交叉編譯器,修改arm-softfloat.dat(好像是這個)將裡面的target修改為arm-linux就可以了,另乙個方法就是修改qt4原始碼的mkspecs/qws/linux-arm-g++目錄下修改qmake.config將arm-linux-gcc修改為arm-softfloat-linux-gcc,然後再make就行了。

4.當然你可以用很多任務具來編譯你的程式,比如qtcreator,kdevelop!

S3C2410讀寫Nand Flash分析

2009 01 15 16 51 321人閱讀 收藏舉報 s3c2410讀寫nand flash分析 一 結構分析 s3c2410處理器整合了8位nandflash控制器。目前市場上常見的8位nandflash有三星公司的k9f1208 k9f1g08 k9f2g08等。k9f1208 k9f1g0...

s3c2410的nand flash的驅動分析

以前都是把別人寫好的 直接拿過來用,而沒有去關心裡面到底怎麼實現的,昨晚對照著samsung 2410和k 9f1208的晶元資料把這些 讀了一遍,終於明白了對nand flash的操作一步步是怎麼實現的了。以下的這些 可以在vivi或者kernel裡面找到 對乙個nand flash的操作,總體上...

S3C2410快速啟動的實現

嵌入式系統對功能 可靠性 成本 體積 功耗等均有嚴格要求,以arm體系結構為基礎的各種risc微處理器具有靈活的特性和強大的效能,在嵌入式系統中得到了廣泛的應用。s3c2410是三星公司基於arm920t設計的一款處理器,在開發基於s3c2410的系統的過程中,如何讓系統快速穩定地啟動是乙個重要問題...