嵌入式Linux自學階段性總結 1

2021-04-25 01:00:12 字數 2447 閱讀 2392

嵌入式linux自學階段性總結

[email protected]

歡迎從事嵌入式linux圖形及裝置驅動開發的朋友交流!

最近自學嵌入式linux下qt/e qtopia和裝置驅動開發,短短的幾個月,遇到了一大堆問題,查詢資料然後思考,消耗了大量的腦細胞,不過還是有收穫的,最終把路終於走通了就好。最終還沒有來得及實現s3c24xx-uda1341-iis-l3的alsa驅動,但是核心和裝置驅動的概念也慢慢清晰了,希望有大蝦幫助我,加快自己的進度。致謝!

下面把自己一些新的簡要的說說,希望對也和我一樣的新手有所幫助,別向我一樣繞了大圈子才找到路。

qt/eqtopia移植及編譯

qt/x11, qt/eqtopia coreqtopia的關係

即qt for embedded linux

版本,是不依賴x11

庫,執行在支援framebuffer

的嵌入式系統上的版本,底層直接在framebuffer

上繪製影象,同時可以根據硬體環境定製是否支援視窗ui

部件、圖形、等功能,或者他們的顯示樣式,這樣來減小qt/e

體積,提高執行效率。這些feature

可以在src/corelib/global/

目錄中,仿照qfeatures.h

中的巨集定義來配置,還可以使用qt/x11

原始碼下tools/qconfig/

下工程編譯出來的qt/x11

可執行程式qconfig

來圖形化配置qt/e

的特徵。

在主機上開發qt/e和qtopia應用,交叉編譯的方法命令也不一樣,qt/e用:

qmake

make

而qtopia應用開發:

-prefix -image -sdk三個路徑理解

在配置qtopia-4.3.2時,理解configure -image /opt/qtopia/target -prefix /opt/qtopia/target -sdk /opt/qtopia/sdk/4.3.2/qq2440三個路徑非常重要。檢視原始碼doc/下的文件,-image指定了在交叉編譯的主機上存放將來要nfs掛載或者燒到開發板上去所有檔案的目錄,-prefix指定了qtopia編譯出來的qpe在執行目錄,也就是要把-image目錄下的所有東西掛載或者考到開發板上的-prefix目錄才能正常執行,注意,這個-prefix已經硬編碼到了程式中,不可以改變。另乙個-sdk目錄,指定了主機上用於開發qtopia應用所必須的工具鏈和庫的乙個基準路徑,就是說,指定了這個目錄,執行-sdk下的qmake或者qtopiamake,就不用自己設定系統的環境變數中包含其他的庫了。如果只設定了-prefix目錄,那麼預設的-image也是,-sdk預設的是編譯build的目錄。此build目錄不能為原始碼目錄,應該在其他新建的目錄中執行原始碼包中的configure配置指令碼。

交叉編譯器和主機編譯器的問題

嵌入式開發中,要時刻注意編譯器的版本問題,否則一連串莫名其妙的問題會使人崩潰。仔細看看qtopia或者qt/e的文件,選擇推薦的編譯器版本。ubuntu8.10自帶的gcc4.3.2版本太高,對於**的錯誤處理過於嚴格。於是重新安裝qtopia4.3.2推薦的gcc3.4/gcc4.1(uses symbol visibility):

apt-get install g++-4.1

rm /usr/bin/gcc

ln -s /usr/bin/gcc-4.1 /usr/bin/gcc

rm /usr/bin/g++

ln -s /usr/bin/g++-4.1 /usr/bin/g++

注意:如果只把gcc版本換掉,還使用原有的g++,也會出現問題,可以直接安裝g++-4.1,附帶著就安裝了相同版本的gcc.然後把/usr/bin/中gcc和g++的軟連線從原來的gcc4.3.2換到新的上。交叉編譯器,我採用當下流行的arm-linux-gcc-3.41版本,沒有出大問題。

嵌入式Linux自學階段性總結 2

修改qtopia原始碼,配置和交叉編譯 a.安裝arm linux gcc 3.4.1 b.編譯tslib 1.4 觸控螢幕驅動 qtopia自帶有觸控螢幕驅動和校準程式,這裡我為了提高效能,採用tslib1.4的第三方庫。解壓tslib1.4,進入該目錄執行 cd tslib echo ac cv...

嵌入式Linux自學階段性總結 3

d.現在就可以配置.configure 引數 export path path usr local arm 3.4.1 bin mkdir opt qtopia cd opt cp r mnt qtopia tslib root tslib1.4 install cd opt qtopia tar ...

嵌入式Linux自學階段性總結 5

二 移植和編譯mscore 0.9.3 cc arm linux gcc configure prefix usr local arm 3.4.1 arm linux host arm linux target arm linux build i386 linux 注意 不能有 with softf...