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

深度剖析E680G開發(fā)一.所謂的交叉編譯環(huán)境

一、前言
前面文章涵蓋的內(nèi)容對普通人來說應(yīng)該都比較容易理解和運用,然而這僅僅只能說明你會剛會用罷了,從本文開始,我們需要更深入一步,去探討E680G的操作系統(tǒng)的開發(fā)環(huán)境,自然內(nèi)容也變專業(yè)了 。
很遺憾目前網(wǎng)上有關(guān)的資料都不盡如人意,也許是水平太高了吧,反而寫出來的文章讓人看了一頭霧水 。為了能讓更多人能跨過這個門檻,我會用較多的篇幅來介紹相關(guān)專業(yè)知識 。另外最好有真實的Linux環(huán)境,文中操作皆使用虛擬機RedHatLinux9 。
希望看完這篇文章得出的結(jié)論是:搭建E680交叉編譯開發(fā)環(huán)境并不難!
相關(guān)部分附件下載http://play.younet.com/view.php?tid=18578
二、交叉編譯理論準備
【深度剖析E680G開發(fā)一.所謂的交叉編譯環(huán)境】我們經(jīng)常會說平臺,平臺出現(xiàn)的根源要從處理器(CPU)說起,不同的CPU采用不同的指令集 。所謂指令集,則是CPU中用來計算和控制計算機系統(tǒng)的一套指令的集合,而每一種新型的CPU在設(shè)計時就規(guī)定了一系列與其他硬件電路相配合的指令系統(tǒng) 。
E680手機系列采用的是Inter XScale處理器,基于ARM v5TE體系結(jié)構(gòu),擴展了ARM指令集的核心,本質(zhì)還是ARM處理器 。這和我們平時經(jīng)常接觸PC機的CPU是不同的,PC機大多采用Inter X86的指令集 。
ARM處理器最大的特點就是:功耗低,應(yīng)用方案靈活,可以方便為多媒體信號添加指令集等 。目前來說幾乎所有的手持操作系統(tǒng)包括智能手機都采用了ARM架構(gòu)進行設(shè)計 。
我們?nèi)绻贓680系列所采用的操作系統(tǒng)----MontaVista Linux下開發(fā),就需要一個編譯器能把C程序代碼轉(zhuǎn)換為兼容ARM指令集的機器語言 。這種編譯就稱為交叉編譯 。

要深刻理解這個概念,我們再對比一下C,Java這兩種語言 。
Java號稱Compile once,run everywhere 。即編譯一次到處運行 。事實也確實如此,Java編譯生成的是字節(jié)代碼,然后由各個平臺的Java虛擬機解釋執(zhí)行 。實際上在E680G上,J2ME的JAR包是由/usr/SYSjava/kvm解釋執(zhí)行的 。
Java是通過提供各類平臺的虛擬機程序來實現(xiàn)平臺無關(guān)性 。這樣也很大的犧牲了執(zhí)行效率 。
C語言則不一樣,主要特點就是接近低層,可根據(jù)不同處理器生成高效的機器代碼 。適合做復雜的運算和實時的控制 。所以針對C語言,會有很多不同平臺的編譯器負責將代碼直接編譯成高效的機器指令 。
說到這里,我們顯然明白了:普通Linux PC機上的GCC編譯器編譯的可執(zhí)行程序復制到E680上是不能夠被執(zhí)行的 。要在E680平臺上進行開發(fā),需要構(gòu)造一個能兼容ARM的GCC了,這就是所謂的交叉編譯環(huán)境 。

三、構(gòu)造E680交叉編譯環(huán)境
這里我們使用很簡單的一個構(gòu)造方法 。在http://lsb.blogdns.net/ezx-crosstool
下載ezx-crosstool-0.5.tar.bz2文件,這個工具是由個人整理的,去掉了與ARM無關(guān)的很多腳本,并且限定了需要編譯的文件版本,使用起來比較簡單 。
本機新建了一個用戶gcc,準備用于編譯,root用戶會提示禁止操作的 。
這里使用的是在/home/gcc目錄下用gcc用戶解壓:
bunzip2 ezx-crosstool-0.5.tar.bz2
tar xvf ezx-crosstool-0.5.tar
系統(tǒng)會自動生成/home/gcc/ezx-crosstool-0.5這個目錄 。

在ftp://ftp.gnu.org/pub/gnu下載如下四個文件,且必須是如下版本:

binutils-2.15.tar.bz2一組開發(fā)工具,包括連接器、匯編器
和其他用于目標文件和檔案的工具
gcc-3.3.6.tar.bz2GCC編譯器的源代碼
glibc-2.3.2.tar.bz2提供系統(tǒng)調(diào)用和基本函數(shù)庫
glibc-linuxthreads-2.3.2.tar.bz2用于支持POSIX線程的函數(shù)庫

在http://www.kernel.org/pub/linux/kernel/v2.4/下載如下一個文件:

linux-2.4.26.tar.bz2Linux核心源代碼

推薦閱讀