版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章交叉開發(fā)環(huán)境4.1交叉編譯4.2交叉開發(fā)環(huán)境4.3交叉開發(fā)工具組成4.4宿主機與目標機之間的通信方式4.5交叉開發(fā)環(huán)境建立4.6基于UP-NETARM2410-S開發(fā)平臺交叉開發(fā)環(huán)境建立4.7交叉編譯和交叉調(diào)試實例本章小結(jié)
4.1交叉編譯
交叉編譯這個概念的出現(xiàn)和流行是和嵌入式系統(tǒng)的廣泛發(fā)展同步的。常用的計算機軟件都需要通過編譯的方式,把使用高級計算機語言編寫的代碼(比如C代碼)編譯成計算機可以識別和執(zhí)行的二進制代碼。
4.2交叉開發(fā)環(huán)境
在開發(fā)單片機系統(tǒng)時,需要使用一臺主機外加操作系統(tǒng),如Windows2000,再裝上單片機廠商提供的開發(fā)軟件,即開發(fā)環(huán)境,在開發(fā)環(huán)境里面編譯程序,用鼠標單擊“build”快捷鍵,即生成的可執(zhí)行程序配合仿真器還可以進行單步調(diào)試、觀察寄存器等。圖4-1交叉開發(fā)環(huán)境模式
4.3交叉開發(fā)工具組成
交叉開發(fā)工具一般包括交叉編譯器、交叉鏈接器、交叉調(diào)試器和系統(tǒng)仿真器。其中,交叉編譯器用于在宿主機上生成能在目標機上運行的代碼,而交叉調(diào)試器和系統(tǒng)仿真器則用于在宿主機與目標機間完成嵌入式軟件的調(diào)試。
1.交叉編譯器和交叉鏈接器
在完成嵌入式軟件的編碼之后,需要進行編譯和鏈接,以生成可執(zhí)行代碼。由于開發(fā)過程大多是在使用Intel公司x86系列CPU的通用計算機上進行的,而目標環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開發(fā)環(huán)境中進行交叉編譯和鏈接。
2.交叉調(diào)試器和系統(tǒng)仿真器
嵌入式軟件經(jīng)過編譯和鏈接后即進入調(diào)試階段,嵌入式軟件開發(fā)過程中的交叉調(diào)試與通用軟件開發(fā)過程中的調(diào)試方式有所差別。圖4-2遠程調(diào)試結(jié)構(gòu)圖
4.4宿主機與目標機之間的通信方式
4.4.1互聯(lián)通信方式
1.串口
通過串口可以作為控制臺,向目標機發(fā)送命令,顯示信息;也可以通過串口傳送文件;還可以通過串口調(diào)試內(nèi)核及程序。串口的設(shè)備驅(qū)動實現(xiàn)也比較簡單。
2.以太網(wǎng)口
以太網(wǎng)以其高度靈活,相對簡單,易于實現(xiàn)的特點,成為當(dāng)今最重要的一種局域網(wǎng)建網(wǎng)技術(shù),以太網(wǎng)IEEE802.3通常使用專門的網(wǎng)絡(luò)接口卡或通過系統(tǒng)主電路板上的電路實現(xiàn)。
3.?JTAG口
JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測試電路測試接口(TAP,TestAccessPort),通過JTAG測試工具對芯片的核進行測試。它是聯(lián)合測試行動小組(JTAG,JointTestActionGroup)定義的一種國際標準測試協(xié)議,主要用于芯片內(nèi)部測試及對系統(tǒng)進行仿真、調(diào)試。4.4.2可拔插通信方式
在這種模式下,在宿主機和目標機之間沒有實際的物理連接,而是主機寫存儲設(shè)備,如軟盤、CDROM、USB盤等移動存儲介質(zhì),然后再傳給目標機,最后目標機啟動它。
4.5交叉開發(fā)環(huán)境建立
4.5.1創(chuàng)建交叉開發(fā)工具鏈
交叉開發(fā)工具鏈包括交叉編譯器、交叉連接器和交叉調(diào)試器,這些交叉開發(fā)工具鏈是嵌入式系統(tǒng)開發(fā)的必備工具,它是要安裝在宿主機(PC)上的。對于它的創(chuàng)建有三種途徑:第一種是下載別人已做好的工具鏈,當(dāng)然這是最省事的方法;第二種是到官方網(wǎng)站上下載crosstool;第三種是自己一步一步制作自己的交叉開發(fā)工具鏈,這是最有趣的,也是最能體現(xiàn)自己能力的方式,本書的第6章將重點介紹第三種方法創(chuàng)建交叉開發(fā)工具鏈,好讓讀者體會一下自己動手的樂趣。4.5.2宿主機開發(fā)環(huán)境配置
1.宿主機安裝發(fā)行版Linux操作系統(tǒng)
宿主機安裝發(fā)行版Linux操作系統(tǒng)有以下三個方案:
(1)基于PC機Windows操作系統(tǒng)下的CYGWIN。
(2)在Windows下安裝虛擬機后,再在虛擬機中安裝Linux操作系統(tǒng)。
(3)直接安裝Linux操作系統(tǒng)。
2.開發(fā)工具鏈的安裝
開發(fā)工具鏈的第一種來源,安裝較簡單,一般運行安裝光盤的可執(zhí)行文件?./install即可,這相當(dāng)于在Windows運行可執(zhí)行文件setup,具體安裝過程可見4.6節(jié)內(nèi)容。開發(fā)工具鏈的第二種來源,下載的工具鏈有不同的包裝格式,RPM的格式就很常用,也有把工具鏈直接壓縮成tar包的。
3.網(wǎng)絡(luò)配置
宿主機Linux環(huán)境配置,首先要確認宿主機的網(wǎng)絡(luò)接口驅(qū)動成功,并且配置網(wǎng)絡(luò)接口的IP地址??梢酝ㄟ^ifconfig命令查看其網(wǎng)絡(luò)接口,還可以通過ifconfig配置網(wǎng)口的IP地址。
查看本機IP地址:
#ifconfig-a
修改本機IP地址:
$ifconfigeth0圖4-3網(wǎng)絡(luò)設(shè)備配置的圖形窗口
4.串口配置
串行通信接口很適合作為控制臺,在各種操作系統(tǒng)上一般都有現(xiàn)成的控制臺程序可以使用。Windows操作系統(tǒng)有超級終端(Hyperterminal)工具;Linux/UNIX操作系統(tǒng)有minicom等工具。無論什么操作系統(tǒng)還是通信工具,都可以作為串口控制臺。如果在Windows平臺上運行Linux虛擬機,這個串口通信軟件可以任選一種。圖4-4Windows系統(tǒng)下的超級終端圖4-5minicom配置主界面
5.?NFS服務(wù)
網(wǎng)絡(luò)文件系統(tǒng)(NetworkFileSystem,NFS)是一種允許透明文件共享的技術(shù),具體可參看第9章文件系統(tǒng)相關(guān)內(nèi)容,這種共享出現(xiàn)在通過局域網(wǎng)(也就是LAN)連接的Unix和Linux系統(tǒng)之間。NFS已出現(xiàn)了很長時間,它在Linux和Unix世界里廣為人知而且被廣泛使用。圖4-6NFS服務(wù)圖形設(shè)置界面
6.?DHCP服務(wù)
目標板的引導(dǎo)程序(Bootloader)或者內(nèi)核都需要分配IP地址。這可以通過動態(tài)主機配置協(xié)議(DHCP,DynamicHostConfigurationProtocol)或者BOOTP協(xié)議實現(xiàn)。圖4-7DHCP服務(wù)配置窗口
7.?TFTP服務(wù)
TFTP協(xié)議是簡單的文件傳輸協(xié)議,適合目標機引導(dǎo)程序使用。但是文件傳輸是基于UDP的,文件傳輸(特別是大文件)是不可靠的。
4.6基于UP-NETARM2410-S開發(fā)
平臺交叉開發(fā)環(huán)境建立
4.6.1安裝PC機RedHatLinux虛擬機
詳見教材2.1節(jié)。4.6.2開發(fā)工具軟件的安裝
本節(jié)中所講的開發(fā)工具的安裝與4.5.1節(jié)中所講的創(chuàng)建交叉開發(fā)工具鏈的第一種方法相似,即博創(chuàng)公司目標機的開發(fā)工具光盤,插入CDROM,然后執(zhí)行以下命令:
#cd/mnt/cdrom/2410-s06.03.03/linux-V5.1
#./install.sh圖4-8開發(fā)工具安裝界面4.6.3宿主機網(wǎng)絡(luò)配置
NFS的本質(zhì)就是將宿主機和目標機組建成一個小的局域網(wǎng),因此對宿主機的網(wǎng)絡(luò)配置包括:IP地址的設(shè)置、安全級別的設(shè)置和NFS服務(wù)的配置。
(1)?IP地址的設(shè)置。
(2)安全級別的設(shè)置。
(3)?NFS服務(wù)的配置。圖4-9宿主機安全級別設(shè)置4.6.4宿主機串口配置
目標機是資源受限的系統(tǒng),沒有像宿主機那樣的顯示器,如果想看程序在目標板的運行結(jié)果等,可利用串口通信將目標機的一些信息傳送到宿主機的minicom控制臺中,minicom控制臺即相當(dāng)于目標機的顯示器。其宿主機的串口配置方法可參看4.5.2節(jié)中串口配置內(nèi)容。4.6.5基于UP-NETARM2410-S開發(fā)平臺交叉開發(fā)環(huán)境建立
的總結(jié)
交叉開發(fā)環(huán)境的建立,就是充分利用宿主機(PC)強大的功能,建立能夠編寫、編譯、下載和調(diào)試運行在目標機(UP-NETARM2410-S)上的二進制程序,包括:RedHatLinux虛擬機的安裝、交叉開發(fā)工具鏈的制作和安裝、串口的配置、網(wǎng)絡(luò)的配置及JTAG口的連接等,它們各自的作用總結(jié)如下:
(1)?RedHatLinux虛擬機的安裝:利用它的強大的功能,開發(fā)一個能夠運行在目標機的Linux操作系統(tǒng)。
(2)交叉開發(fā)工具鏈的制作和安裝:編譯能夠運行在目標機上的二進制代碼。
(3)串口的配置:相互通信,可將minicom或超級終端作為目標機顯示器。
(4)網(wǎng)絡(luò)的配置:宿主機和目標機之間局域網(wǎng)的建立,利用NFS進行文件系統(tǒng)的掛載,方便程序的調(diào)試。
(5)?JTAG口:可在目標機沒有任何通信之前將引導(dǎo)程序燒寫到目標機,在引導(dǎo)程序中可建立如串口等接口的初始化等。圖4-10宿主機和目標機之間的配置及通信線路圖
4.7交叉編譯和交叉調(diào)試實例
(1)建立工作目錄。
在上面的交叉開發(fā)環(huán)境建立的共享目錄(arm2410s)中建立工作目錄:
#mkdirpthread
#cdpthread
(2)編寫源代碼。
在此工作目錄下用vi編寫程序源代碼:
用vi編寫pthread.c
#vipthread.c源代碼如下:
#include“stdio.h”
#include“math.h”
intmain(void)
{
floatpi=3.1415926;
floatR;
floatS=0;
printf(“PleaseinputyourRidus:\n”);
scanf(“%f”,&R);
if(R>=0)
{
S=pi*R*R;
printf(“ThevalueofSis:%f\n”,S);
}
else
printf(“Sorry,Wronginput!!\n”);
return0;
}
(3)編寫makefile。
CC=armv4l-unknown-linux-gcc
EXEC=pthread
OBJS=pthread.o
CFLAGS+=-g-o
EXTRA_LIBS+=-lpthread
all:$(EXEC)
$(EXEC):$(OBJS)
$(CC)$(CFLAGS)$(EXTRA_LIBS)$@$(OBJS)
clean:
rm-f$(EXEC)*.elf*.gdb*.o
(4)編譯應(yīng)用程序。
在pthread目錄下運行make,如果進行了修改,重新編譯則運行:
#makeclean
#make
(5)遠程調(diào)試。
在進行遠程調(diào)試之前,先要明白遠程調(diào)試環(huán)境的一些關(guān)鍵知識。
遠程調(diào)試環(huán)境由宿主GDB和目標機調(diào)試stub共同構(gòu)成,兩者通過串口或TCP連接。使用GDB標準遠程串行協(xié)議協(xié)同工作,實現(xiàn)對目標機上的系統(tǒng)內(nèi)核和上層應(yīng)用程序的監(jiān)控和調(diào)試功能。調(diào)試stub是嵌入式系統(tǒng)中的一段代碼,作為宿主機GDB和目標機調(diào)試程序間的一個媒介而存在。
就目前而言,嵌入式Linux系統(tǒng)中主要有三種遠程調(diào)試方法,分別適用于不同場合的調(diào)試工作:
(1)?ROMMonitor調(diào)試目標機程序。
(2)?KGDB調(diào)試系統(tǒng)內(nèi)核。
(3)?gdbserver調(diào)試用戶空間程序。具體遠程調(diào)試過程如下。
在minicom下操作:
#cd
mnt/gdb
#./gdbserver0:2345/mnt/pthread/pthread
0為宿主機IP,在目標機系統(tǒng)的2345端口開啟了一個調(diào)試進程,pthread為要調(diào)試的程序。會出現(xiàn)提示:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戲劇課程設(shè)計架構(gòu)模板
- 污水廠 課程設(shè)計
- 樁基礎(chǔ)課程設(shè)計圖紙
- 大班音樂抗疫課程設(shè)計
- 年產(chǎn)工廠設(shè)計課程設(shè)計
- 微縮粘土手作課程設(shè)計
- 植物標本體驗課程設(shè)計
- 泰安研學(xué)課程設(shè)計
- 消毒柜課程設(shè)計
- 水閘工作橋課程設(shè)計書
- 展覽館維修維護投標方案
- 項目電氣工程師總結(jié)
- 陳赫賈玲小品《歡喜密探》臺詞劇本
- 2023招聘專員個人年終總結(jié)
- 國際郵輪產(chǎn)業(yè)及未來郵輪
- 水工建筑物考試試題及答案
- 多元回歸分析論文
- 小學(xué)第四季度意識形態(tài)分析研判報告
- 部編二年級語文上冊 培優(yōu)輔差測試記錄表
- 國企市場化選聘經(jīng)理層聘任協(xié)議模板
- 《水晶知識培訓(xùn)》課件
評論
0/150
提交評論