導航:首頁 > 編程大全 > 交叉開發工具

交叉開發工具

發布時間:2023-08-19 18:16:35

⑴ 嵌入式ARM linux操作系統中如何構建交叉開發環境

1 GECMlO開發板硬體構成
ARM處理器是一種支持16/32位雙指令集的高性能、低成本、低功耗的R ISC微處理器,目前已經佔領了75%以I:的32位RISC嵌入式產品f仃場。本文所選用的ARM920T微處理器屬於中端產品,應用也十分廣泛。$3C2410是32位低功耗RISC宏單元,其工作頻率為203 MHz,同時支持Thumbl6位精。簡指令集,從而能以較小的存儲空間需求,獲得32位的系統性能。64M位元組的SDRAM,由兩片K4S561632組成,工作在32位模式下;64M位元組NAND Flash,採用的是K9F1208,可以兼容16M,32M或128M位元組;10M乙太網介面,採用的是CS8900Q3,帶傳輸和連接指示燈;2路UART串列口,波特率可高達115200bps,並具有RS232電乎轉換電路Embedded·ICE(20腳標准JTAG)介面和並口式jTAG介面,支持ADS,SDT軟體的卜.載和調試以及FLASH的燒寫。
2 嵌入式Linux開發環境的搭建及開發工具的使用
2.1宿主機——目標機模式
進行項目開發前,先要做的是搭建一套基於Linux操作系統的應用開發環境,一般由目標板(GEC2410開發板)和宿主機(LiUUX虛擬機)所構成。如圖1所示。嵌入式系統通常是一個資源受限的系統,因此直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時候甚拿是不可能的.目前一般採用的解決辦法是首先在通用計算機上編寫程序,然後通過交叉編譯生成目標平台七可以運行的二進制代碼格式,最後再下載到目標平台上的特定位置.卜運行.用來編譯這種程序的編譯器就叫交叉編譯器。為了不跟本地編譯器混淆,交叉編澤器的名字一般都有前綴。例如:arm.1inux—gcc。交叉開發環境是指編譯、鏈接和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。


2.2 Linux伺服器交叉編譯環境的建立
Linux伺服器是嵌入式Linux內核編譯、應用程序開發、編譯等的公共平台,在一個嵌入式系統的開發過程中,有許多工作需要通過它來完成。交叉編譯工具用於編譯在目標系統上運行的嵌入式Linux內核及應用程序,包括編譯器、連接器、調試器以及代碼轉換J二具等實用程序,一般以瓜縮軟體包的方式提供給我們,稱為開發工具鏈(Toolchain).目前基於ARM架構的交叉編澤工具鏈為:allll-liuux.gcc-2.95.3。
1)GNU交叉工具鏈的下載
從ARM官方網站F載刪.arm.tinux.org.ak,可以從該站點下載2.95.3工具鏈:
ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2
2)cross-2.95.3.tar.bz2包的安裝步驟
a.#mkdir/mr/local/arm;
b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann;
C.#tar jxvf crog$一2.95.3.tar.bz2;
d.添加環境變數:在文{牛/ete/bashrc文件最後添加:
export PATH=/usr/local/arm/2.95.3/bin:$PATH:
e.工具鏈安裝完成。
2.3配置NFS服務的步驟

NFS服務就是將宿主機的一個目錄通過網路可以被掛載到其他計算機上。並且作為其他計算機的一個目錄,其目的就是讓不同的機器、不同的操作系統之間可以彼此共享文件。
NFS的使用分伺服器端和客戶端,其中伺服器端提供要共享的文件,客戶端通過掛載「mount」這一動作實現對共享文件的訪問操作。下面主要介紹GEC24 10開發板的Linux系統與虛擬機的LintLx通過NFS實現文件共享的方法與步驟:
1)在虛擬機linux配置nfs服務,編輯nfs配置文件/etdexports,設置共享目錄如:vi/etc/exports,添加:/root/nfs—share·(rw,sync,no—root—squash)。rW表示允許下位機讀寫該目錄,no_root_squash允許下位機以主機root用戶身份掛載根文件系統。
2)在虛擬機linux啟動NFS服務:(修改配置文件後就需要蕈新啟動施服務)#/etc/init.d/nfs reSTart或者用命令:#service nfs restarto.
3)防火牆的關閉。選擇系統設置一》安全級別,將安全級別改為「無防火牆」。
4)用交叉網線連接PC機(虛擬機)與開發板,目的讓兩個linux處在同一個網路內。
開發板的ip地址是:192.168.2.223,因此配置虛擬機ip為192.168.2開頭的ip地址,如可用下列命令配置:#ifcONfigethO 192.168.2.23。
5)在開發板linux系統中掛載虛擬機linux的NFS共享目錄,執行下列命令:#mkdir/tmp/nfs#mount—t nfs一0 nolock192.168.2.23:/root/nfs—share/trap/nfs。
2.4交叉調試器的製作
2.4.1交叉調試器的結構
程序的調試足檢杏程序正確性、可靠性、穩定性的重要手段,也是應用程序開發必不可少的組成部分。嵌入式軟體開發過程中的交叉調試與本地軟體開發過程中的調試方式有所差別。本地軟體開發調試器與被調試的程序往往運行在同一台計算機}:。而嵌入式軟體開發過程中,調試時採用的是在宿主機和目標機之間進行的交叉調試。調試器運行在宿主機,但被調試的進程卻是運行在目標板。調試器和被調試進程通過串口或者網路進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,並能夠改變被調試進程的運行狀態。
2.4.2製作交叉調試器的方法
1)解壓源碼包:tar zxf gdb一6.0.tar.gz
2)配置:cd gdb一6.0
mkdir build..arm..1inux
cd build..arm..1inux
../configure--target=arm·linux一一prefix=/usr/local/arm/2.95.3/
3)編譯:make
4)安裝:make install
在/usr/locaL/arm/2.95.3/bin/目錄下生成alTfl-linuxgdb工具
5)編譯生成針對f1.Eln處理器的gdbserver
a.進入sdb源代碼包中的gdb$erver目錄
cd sdb-6.0
cd gdb/gdbserver
b.配置生成gdbserver
chmod U+X configure
CC=arnl—linux—gcc./configure一一host=arm-linux
c.Make,生成gdbserver、gdbreplay
6)通過凼,將gdbserver/gdbreplay到目標板中
7)啟動目標板上的gdbserversabserver 192.168.1.88:2345 cross-teat其中192.168.1.88是目標板的IP地址。2345是任意指定的埠,也可以是其他埠。
8)啟動宿主機端arm.1inux-gdb調試器在宿主機的工作目錄中有對應的程序和源文件
#arm·hnux-柚CI『OS8一teat
(gdb)target remote 192.168.1.88:2345
連接遠程gdbserver
(sab)b main
設置斷點
(Sdb)C運行

⑵ linux開發嵌入式系統要裝什麼工具

嵌入式系統通常為一個資源受限的系統。直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時甚至是不可能的。目前,敗告一般採用的辦法是,先在通用計算機上編寫程序,然後,通過交叉編譯,生成目標平台上可運行的二進制代碼格式,最後下載到目標平台上的特定位置上運行,下面就由福州卓躍教育做具體步驟介紹。

第一步,建立嵌入式Linux應用開發環境。目前,常用的交叉開發環境主要有開放和商業兩種類型。開放的交叉開發環境的典型代表是GNU工具鏈,目前已經能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業的交叉開發環境主要有MetrowerksCodeWarrior、ARMSoftwareDevelopmentToolkit、SDSCrosscompiler、WindRiverTornado、MicrosoftEmbeddedVisualC等。交叉開發環境是指叢嘩編譯、鏈接和調試嵌入式應用軟體的環境。它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式。

第二步,交叉編譯和鏈接。在完成嵌入式軟體的編碼之後,就是進行編譯和鏈接,以生成可執行代碼。由於開發過程大多是在Intel公司x86系列CPU的通用計算機上進行的,而目標環境的處理器晶元卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,察鄭明這就要求在建立好的交叉開發環境中進行交叉編譯和鏈接。

第三步,交叉調試。

①硬體調試。如果不採用在線模擬器,可以讓CPU直接在其內部實現調試功能,並通過在開發板上引出的調試埠,發送調試命令和接收調試信息,完成調試過程。目前,Motorola公司提供的開發板上使用的是DBM調試埠,而ARM公司提供的開發板上使用的則是JTAG調試埠。使用合適的軟體工具與這些調試埠進行連接,可以獲得與ICE類似的調試效果。

②軟體調試。在嵌入式Linux應用開發系統中,Linux系統內核調試,可以先在Linux內核中設置一個調試樁(debugstub),用作調試過程中和宿主機之間的通信伺服器。然後,可以在宿主機中通過調試器的串口與調試樁進行通信,並通過調試器控制目標機上Linux內核的運行。

⑶ arm-linux 交叉開發工具鏈

gcc-2.95.3太老了, 新的gcc編譯器不支持它的源碼。
你可以:
1,建立gcc-3.4以前的本地工具鏈編譯版gcc-2.95.3
2,用新的版本的gcc製作交權叉編譯工具。
3,或者你可以修改2.95.3的源碼讓它可以通過編譯。

_
看你現在用的gcc是什麼版本, 建議最低不要低於3.4. 另外, gcc到底用什麼版本和你的binutils , glibc的版本有關, 要不會有問題。

閱讀全文

與交叉開發工具相關的資料

熱點內容
求生之路2最高版本補丁 瀏覽:607
聯想電腦win10系統優化 瀏覽:115
msp430工具 瀏覽:885
c編程思想是哪些 瀏覽:208
網路沒有許可權的訪問許可權 瀏覽:697
圖表上為0的數據不顯示如何設置 瀏覽:968
文件名字重復內容不重復 瀏覽:238
無線路由忘記管理員密碼 瀏覽:628
linux文件系統實現 瀏覽:236
三菱數控編程ne是什麼意思 瀏覽:881
abaqus實例教程cae文件 瀏覽:147
聊天記錄如何保存到資料庫 瀏覽:460
魔獸世界mall是什麼網站 瀏覽:839
華為麥芒怎麼找不到我的文件 瀏覽:811
抖音如何置頂文件 瀏覽:733
win10系統進不去游戲下載不了 瀏覽:367
三星uac6200uf網路 瀏覽:777
ie11降級ie9工具 瀏覽:106
將手機文件導入電腦 瀏覽:872
java如何獲取uuid 瀏覽:552

友情鏈接