日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

中 深度剖析E680G開發(fā)三.移植OPIE操作系統(tǒng)-交叉編譯Qte

一、前言

雖然是E680系列的開發(fā)環(huán)境,其實(shí)就是嵌入式方面的知識(shí) 。在上文詳細(xì)了解了
E680g系統(tǒng)結(jié)構(gòu),圖形化發(fā)展歷程,到這篇文章就要實(shí)實(shí)在在去做了 。
最早移植成功的是一位外國人,我也是通過閱讀他的文章了解到OPIE的移植過
程,不過他寫的文章比較簡(jiǎn)練,接受起來比較困難 。下面是英文原文:
http://marcus.bluetroll.se/e680/
二、重要提示
為了方便更好的理解本文,提供下面鏈結(jié) 。
E680應(yīng)用開發(fā)全系列的文章地址:http://blog.csdn.net/liwei_cmg
文章相關(guān)的重要資源的下載地址:http://play.younet.com/view.php?tid=18578
三、移植OPIE操作系統(tǒng)的思路

我們前面提到OPIE基于標(biāo)準(zhǔn)的Qte/Qtopia,Motorola的E680系列也是基于Qte的,
但這兩者會(huì)有所不同,具體什么不同我們也很難得知 。Motorola目前僅開放了E680
系列的Linux內(nèi)核代碼,而Qte和上層的ezx圖形框架卻沒有公開發(fā)布 。這一點(diǎn)著實(shí)讓
人非常之不爽 。所以我們?cè)谝浦睴PIE時(shí),需要編譯一下標(biāo)準(zhǔn)Qte的Lib庫,然后使用
這個(gè)Lib庫,再交叉編譯OPIE 。
移植OPIE操作系統(tǒng)本身可能意義并不大,但借此可以深入操作系統(tǒng)內(nèi)部去完成
Linux KernelQteOPIE 的整體認(rèn)識(shí),要知道這些是全部開放源碼的 。
在《深度剖析E680G開發(fā)一.所謂的交叉編譯環(huán)境》中所介紹的開發(fā)圖形化程序
的方法,是使用的A760系列的SDK,其實(shí)就是把A760的頭文件復(fù)制過來,再加上E680
本身的Lib文件拼湊而成 。(本文的資源文件中提供了這個(gè)SDK的英文文檔) 。這固然
也是目前為止比較好的另一種開發(fā)方法 。
四、構(gòu)造交叉編譯環(huán)境
在前面已提供了很簡(jiǎn)便的交叉編譯環(huán)境構(gòu)造方法,為了更好的進(jìn)一步理解交叉
編譯環(huán)境的構(gòu)造方法,我們結(jié)合標(biāo)準(zhǔn)的crosstool再次構(gòu)建編譯環(huán)境 。
1.下載crosstool(搭建交叉編譯環(huán)境的工具) 。如下網(wǎng)址是兩個(gè)不同版本,其實(shí)
用哪個(gè)都是差不多的,細(xì)節(jié)內(nèi)容可以訪問http://kegel.com/crosstool/ 。這篇使用
的是crosstool-0.28-rc37.tar.gz 。root
http://kegel.com/crosstool/crosstool-0.42.tar.gz
http://kegel.com/crosstool/crosstool-0.28-rc37.tar.gz

2.在Linux下或者虛擬機(jī)Linux下解壓縮,為了方便目錄管理,我們使用/home
/gcc/toolchain目錄,解壓縮crosstool-0.28-rc37.tar.gz 。
tar zxvf crosstool-0.28-rc37.tar.gz 。

3.在crosstool-0.28-rc37文件夾下主要有以下幾類文件:

arm.dat
arm-iwmmxt.dat
i686.dat
...

arm.config
i686.config
...

打開一看,顯然是指定運(yùn)行環(huán)境的指令集和一些配置參數(shù) 。對(duì)E680系列只需要
使用ARM相關(guān)的,其他的無視 。


gcc-3.4.0-glibc-2.1.3.dat
gcc-3.4.0-glibc-2.2.5.dat
...

這一類自然是編譯GCC的版本參數(shù),查看內(nèi)容可知,其限定了binutils,gcc,
glibc和linux kernel的版本 。這些內(nèi)容含義在《E680G開發(fā)一》已做了說明 。

注意:我在使用ezx-cross工具進(jìn)行交叉編譯時(shí),出現(xiàn)了一些錯(cuò)誤,是關(guān)于glic
的,不過并未影響使用 。我在RedHat中g(shù)cc的版本是3.3.2,ezx交叉編譯限定
的是gcc-3.3.6,我懷疑與這個(gè)版本有關(guān),具體原因還不能證實(shí) 。后來用
crosstool-0.28-rc37編譯,使用了gcc-3.3.2,編譯通過且沒有發(fā)現(xiàn)任何問題 。

demo-arm.sh
demo-arm-iwmmxt.sh
demo-i686.sh
...

這些則是編譯交叉編譯環(huán)境的腳本了 。

4.下載本文章相關(guān)的資源文件toolchain.rar,解壓縮將對(duì)應(yīng)內(nèi)容復(fù)制到
crosstool-0.28-rc37文件夾下 。里面只有三個(gè)文件:

gcc-3.3.2-glibc-2.3.2.dat
arm.dat
arm.sh

gcc-3.3.2-glibc-2.3.2.dat文件把限定的Linux內(nèi)核版本從原來的linux-2.6.8
修改為linux-2.4.20,推測(cè)之所以進(jìn)行這個(gè)修改是因?yàn)樵瓉淼陌姹窘M合存在兼

推薦閱讀