




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境了解交叉編譯的根本知識(shí)了解SkyEye的起源和開(kāi)展、目標(biāo)和意義掌握SkyEye的配置文件skyeye.conf掌握交叉編譯環(huán)境的創(chuàng)立掌握QEMU、GDB的安裝及簡(jiǎn)單使用掌握SkyEye的安裝及簡(jiǎn)單使用掌握TFTP、NFS效勞器的搭建本章學(xué)習(xí)目標(biāo)2.1嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境簡(jiǎn)介交叉編譯環(huán)境交叉開(kāi)發(fā)環(huán)境是由開(kāi)發(fā)主機(jī)和目標(biāo)板兩套計(jì)算機(jī)系統(tǒng)構(gòu)成的。文本編譯器交叉編譯器仿真器遠(yuǎn)程調(diào)試器鏈接器目標(biāo)對(duì)象查看器shell下載器交叉編譯環(huán)境組成2.2OK2440-II開(kāi)發(fā)平臺(tái)介紹OK2440II開(kāi)發(fā)套件包含:1〕一塊已測(cè)試好的OK2440II開(kāi)發(fā)板〔包括OK2440II核心板與OK2440II底板〕2〕OK2440II用戶(hù)光盤(pán)3〕3.5"TFTSumsangLCD一塊,帶觸摸屏4〕一個(gè)JTAG板〔帶20芯排線(xiàn)〕5〕一條串口線(xiàn)〔一頭針一頭孔,串口線(xiàn)〕6〕一條網(wǎng)線(xiàn)〔交叉網(wǎng)線(xiàn)〕7〕一條USB線(xiàn)8〕一支觸摸筆9〕一個(gè)5V直流電源適配器10〕一個(gè)包裝盒使用步驟:外部硬件連接;Windows下驅(qū)動(dòng)的安裝;1〕安裝USB驅(qū)動(dòng)2〕安裝并口驅(qū)動(dòng)程序3〕調(diào)試終端的使用4〕BootLoader的使用DNW軟件是三星公司為S3C2440芯片配置的一款專(zhuān)用軟件,可以在Windows下通過(guò)USB燒寫(xiě)Flash。在PC機(jī)上翻開(kāi)DNW〔v0.50A〕,依次選擇“Configuration〞→“Options〞,如下圖,具體設(shè)置為:COM1、波特率為115200、DownloadAddress設(shè)置為0x32000000〔此參數(shù)為下載到內(nèi)存的地址。DNW調(diào)試終端的使用DNW調(diào)試終端的使用Windows超級(jí)終端的使用Windows超級(jí)終端的使用Windows超級(jí)終端的使用本地編譯器2.3交叉編譯的根本知識(shí)編譯器可以生成用來(lái)在與編譯器本身所在的計(jì)算機(jī)和操作系統(tǒng)〔平臺(tái)〕相同的環(huán)境下運(yùn)行的目標(biāo)代碼,這種編譯器叫做本地編譯器。交叉編譯器編譯器也可以生成用來(lái)在其他平臺(tái)上運(yùn)行的目標(biāo)代碼,這種編譯器叫做交叉編譯器SoftwareDevelopmentKit,是ARM公司為方便用戶(hù)在ARM芯片上進(jìn)行應(yīng)用軟件開(kāi)發(fā)而推出的一整套集成開(kāi)發(fā)工具。
最新版本是,被ARMADS取代。2.3.1ARM編譯環(huán)境1.SDTARMADS〔ARMDeveloperSuite〕在1993年由Metrowerks公司開(kāi)發(fā),是ARM處理器最主要的開(kāi)發(fā)工具。2.ADSMDK-ARM也稱(chēng)KEILMDK-ARM、KEILARM、RealviewMDK、I-MDK、uVision4等,系為同一產(chǎn)品。MDK-ARM有四個(gè)可用版本,分別是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。3.MARK-ARM主要采用ARM+Linux開(kāi)發(fā)環(huán)境。4.arm-linux-toolchainGNU提供的編譯工具包括匯編器as、C編譯器gcc、C++編譯器g++、鏈接器ld和二進(jìn)制轉(zhuǎn)換工具objcopy。交叉編譯工具鏈?zhǔn)且粋€(gè)由編譯器、連接器和解釋器組成的綜合開(kāi)發(fā)環(huán)境,主要由binutils、gcc和glibc3個(gè)局部組成?;贏RM平臺(tái)的交叉編譯工具鏈主要有:arm-linux-*和arm-elf-*。2.3.2ARM交叉編譯工具鏈?zhǔn)褂貌煌腃庫(kù)文件。
前者使用GNU的Glibc,
后者使用uClibc/uC-libc。針對(duì)的開(kāi)發(fā)環(huán)境不一樣。前者針對(duì)ARM+Linux的開(kāi)發(fā)環(huán)境的,OS使用Linux,不是uclinux,ARM有硬件MMU。后者針對(duì)noMMUARM+Linux的開(kāi)發(fā)環(huán)境,OS使用uclinux,硬件是廉價(jià)的無(wú)MMU的ARM芯片。arm-linux-*和arm-elf-*區(qū)別1.編寫(xiě)C語(yǔ)言或匯編語(yǔ)言源程序這里介紹用vi編輯器進(jìn)行源碼編碼。在終端中輸入vihello.c,然后按鍵“i〞那么可進(jìn)行代碼編寫(xiě)。2.3.3嵌入式軟件開(kāi)發(fā)流程退出源碼編寫(xiě)。按“ESC〞;輸入“:wq〞,退出并保存源碼,如果不保存,就直接輸入“:q〞那么可。2.生成目標(biāo)文件在終端中輸入#arm-linux-gcc-c-O2-ohello.ohello.c源文件源文件和目標(biāo)文件3.編寫(xiě)連接腳本文件gcc等編譯器內(nèi)置有缺省的鏈接腳本。為了能在嵌入式系統(tǒng)上直接運(yùn)行,需要編寫(xiě)自己的鏈接腳本文件。GNU編譯器生成的目標(biāo)文件缺省為ELF格式。4.用鏈接器生成最終的目標(biāo)文件在終端輸入arm-linux-ld-nostadlib-obootstrap.elf-Tlink.ldshello.o最后是需要鏈接的目標(biāo)文件列表。表示不鏈接系統(tǒng)的運(yùn)行庫(kù),而是直接從_start入口指明目標(biāo)文件的名稱(chēng)指明采用的鏈接腳本文件5.生成二進(jìn)制代碼在終端輸入arm-linux-objcopy-Obinarybootstrap.elfbootstrap.bin鏈接生成的ELF文件還不能直接下載執(zhí)行,通過(guò)objcopy工具可生成最終的二進(jìn)制文件指定生成為二進(jìn)制格式文件6.反匯編目標(biāo)代碼在終端輸入arm-linux-objdump-Dbootstrap.elf用objdump工具將生成的目標(biāo)代碼反匯編,建立交叉編譯工具鏈有兩種方法:自己編譯生成交叉編譯工具鏈;從網(wǎng)上下載或使用開(kāi)發(fā)板光盤(pán)提供的的交叉編譯工具鏈。2.4實(shí)例——?jiǎng)?chuàng)立交叉編譯環(huán)境1.從網(wǎng)上下載或者光盤(pán)提供的交叉編譯工具鏈〔1〕從網(wǎng)上下載arm-linux-gcc或arm-linux-tools壓縮包〔2〕解壓到/usr/local/arm/中#mkdir/usr/local/arm#tar-xjvfarm-linux-gcc-2.95.3.tar.bz2-C/usr/local/arm/〔3〕解壓到/usr/local/arm/中#tar-xjvfarm-linux-gcc-3.4.1.tar.bz2-C/注:版本的交叉編譯器用于編譯Linux2.4內(nèi)核。及其以后版本的交叉編譯器用于編譯Linux2.6內(nèi)核。〔4〕解壓〔版本〕#tar-xzvfarm-linux-tools-20070808.tar.gz-C/#arm-linux-<Tab鍵>#whicharm-linux-gcc#ll/usr/local/bin/arm-linux-*〔5〕安裝arm-elf-tools-20040427.sh工具包#lessarm-elf-tools-20040427.sh#chmod+xarm-elf-tools-20040427.sh#./arm-elf-tools-20040427.sh#ll/usr/local/bin/arm-elf-*#whicharm-elf-gcc2.自己生成交叉編譯器〔1〕下載源文件、補(bǔ)丁和建立編譯目錄〔2〕建立內(nèi)核頭文件〔3〕建立二進(jìn)制工具〔binutils〕〔4〕建立初始編譯器〔bootstrapgcc〕〔5〕建立C庫(kù)〔glibc〕〔6〕建立全套編譯器〔fullgcc〕
QEMU是一套由FabriceBellard編寫(xiě)的以GPL許可證分發(fā)源碼的模擬處理器,在GNU/Linux平臺(tái)上使用廣泛。QEMU有兩種主要運(yùn)作模式:①Usermode是使用者模式。②Systemmode是系統(tǒng)模式。2.5實(shí)例——QEMU\GDB的安裝及簡(jiǎn)單使用2.6SkyEye的安裝及簡(jiǎn)單使用
2.6.1SkyEye簡(jiǎn)介1.SkyEye的起源和開(kāi)展2002年11月,清華大學(xué)計(jì)算機(jī)系的博士后陳渝提出2002年12月,SkyEye工程正式建立目前,SkyEye的主要開(kāi)發(fā)人員還有韓超、康爍等。2.SkyEye的目標(biāo)和意義目標(biāo):在通用的Linux和Windows平臺(tái)上實(shí)現(xiàn)一個(gè)純軟件集成開(kāi)發(fā)環(huán)境,模擬常見(jiàn)的嵌入式計(jì)算機(jī)系統(tǒng);可在SkyEye上運(yùn)行μCLinux以及μC/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件,并可對(duì)他們進(jìn)行源碼級(jí)的分析和測(cè)試。2.SkyEye的目標(biāo)和意義SkyEye是一個(gè)指令級(jí)模擬器,可以模擬多種嵌入式開(kāi)發(fā)板;可支持多種CPU指令集;SkyEye的目標(biāo)不是驗(yàn)證硬件邏輯,而是協(xié)助開(kāi)發(fā)、調(diào)試和學(xué)習(xí)系統(tǒng)軟件。2.SkyEye的目標(biāo)和意義意義:可以很方便地進(jìn)行嵌入式系統(tǒng)軟件的學(xué)習(xí)和開(kāi)發(fā);可以有效地提高工作效率;SkyEye本身作為一個(gè)開(kāi)放式的工程體系,可以劃分為多個(gè)獨(dú)立的子工程系統(tǒng)。3.SkyEye模擬硬件介紹〔1〕CPU和開(kāi)發(fā)板系列——SkyEye可以模擬的CPU主要是基于ARM內(nèi)核的CPU,包括ARM7TDMI、ARM720T、ARM9TDMI、ARM9xx、ARM10xx、StrongARM、XScale等。——SkyEye模擬的開(kāi)發(fā)板包括:基于Atmel91X40/AT91RM92CPU的開(kāi)發(fā)板、基于CrirusLogicep7312的開(kāi)發(fā)板、基于StrongARMCPU的ADSBITSY開(kāi)發(fā)板,基于XScalePXA250CPU的LUBBOCK開(kāi)發(fā)板、基于SAMSUNGS3C4510B/S3C44B0CPU的開(kāi)發(fā)板、基于SHARPLH7A400CPU的開(kāi)發(fā)板、基于PhilipLPC22xxCPU的開(kāi)發(fā)板等?!?〕存儲(chǔ)器管理單元和緩存單元——MMU、CACHE?!?〕網(wǎng)絡(luò)芯片——目前SkyEye模擬了網(wǎng)絡(luò)芯片8019AS。1、安裝SkyEye〔1〕解壓源碼包#tar-xjvfskyeye-1.2.6_rc1.tar.bz2-C./〔2〕編譯#ls//INSTALL文件包含安裝幫助信息#geditINSTALL2.6.2實(shí)例—安裝//配置,--prefix設(shè)置的安裝位置#make //編譯//將skyeye安裝到#makeinstall2、SkyEye配置選項(xiàng)查看SkyEye的配置文件skyeye.conf。SkyEye模擬的硬件配置和模擬執(zhí)行行為由配置文件skyeye.conf中的選項(xiàng)確定。skyeye.conf文件:#skyeyeconfigfileforS3C2410X
cpu:arm920tmach:s3c2410x
#physicalmemorymem_bank:map=M,type=RW,addr=0xc0000000,size=0x00800000mem_bank:map=M,type=RW,addr=0xc0800000,size=0x00800000,file=./initrd.imgmem_bank:map=M,type=RW,addr=0xc1000000,size=0x01000000
#allperipheralsI/Omappingareamem_bank:map=I,type=RW,addr=0x48000000,size=0x20000000
mem_bank:map=I,type=RW,addr=0x19000300,size=0x00000020net:type=cs8900a,base=0x19000300,size=0x20,int=9,mac=0:4:3:2:1:f,ethmod=tuntap,hostip=
lcd:type=s3c2410x,mod=gtk#dbct:state=on單參數(shù)選項(xiàng)行多參數(shù)選項(xiàng)行SkyEye的配置文件skyeye.conf和要模擬的硬件有關(guān),配置定義如下:〔1〕根本CPU核配置選項(xiàng)格式為:
cpu:cpuname表示CPU名字的字符串〔2〕具體的開(kāi)發(fā)板〔包括CPU擴(kuò)展〕配置選項(xiàng)格式為:mach:machinename〔3〕內(nèi)存組配置選項(xiàng)一個(gè)內(nèi)存組內(nèi)的地址是連續(xù)的,類(lèi)型分為:RAMSPACE、ROMSPACE、mappedIOSPACE。格式為:
mem_bank:map=M|I,type=RW|R,addr=0xXXXXXXXX,size=0xXXXXXXXX,file=imagefilename,boot=yes|nomap=M:表示RAM/ROMSPACE。map=I:表示mappedIOSPACE。type=RW且map=M:表示RAMSPACE。type=R且map=M:表示ROMSPACE。addr=0xXXXXXX:表示內(nèi)存組的起始物理地址〔32bit,16進(jìn)制〕。size=0xXXXXXX:表示內(nèi)存組的大小〔32bit,16進(jìn)制〕。file=imagefilename:imagefilename是一個(gè)字符串,實(shí)際上表示一個(gè)文件boot=yes/no:如果boot=yes,那么SkyEye會(huì)把模擬硬件啟動(dòng)后的第一條指令的地址定位到對(duì)應(yīng)的內(nèi)存組的起始地址?!?〕網(wǎng)絡(luò)芯片的配置格式為:
net:state=on/off,mac=xx:xx:xx:xx:xx:xx,state:表示模擬開(kāi)始后,網(wǎng)絡(luò)芯片是否開(kāi)始工作。on模擬NIC,off那么不模擬。mac:表示模擬的NIC的mac地址,xx表示兩位16進(jìn)制數(shù)。ethmod:表示skyeye所處主機(jī)上的網(wǎng)絡(luò)模擬方式。hostip:指定模擬的NIC的IP地址?!?〕LCD的配置格式為:
lcd:state=on/off,type=s3c2410x,mod=gtk〔6〕SkyEye的UART控制選項(xiàng)格式為:uart:fd_in=indevname,fd_out=outdevname〔7〕SkyEye的log控制選項(xiàng)格式為:
log:logon=0|1|2|3,logfile=filename,start=number1,end=number2,length=number3logon=0|1|2|3:值等于0表示不進(jìn)行記錄,值等于1表示記錄指令和指令地址流,等于2表示記錄指令和指令地址和主要存放器內(nèi)容,值等于3表示記錄指令和指令地址和所有的存放器內(nèi)容。SkyEye直接運(yùn)行程序命令格式:
skyeye-e文件名例如:
skyeye-ehello2.SkyEye啟動(dòng)Linux例如:skyeye-cskyeye.conf-evmlinux2.6.3實(shí)例—使用TFTP〔TrivialFileTransferProtocol,簡(jiǎn)單文件傳輸協(xié)議〕是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶(hù)機(jī)與效勞器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開(kāi)銷(xiāo)不大的文件傳輸效勞。注意:TFTP效勞器運(yùn)行在宿主機(jī),便于開(kāi)發(fā)板下載Kernel和RootFS映像文件。2.7實(shí)例—TFTP效勞器的搭建1.tftp的配置文件#gedit/etc/xinetd.d/tftpservicetftp{ socket_type =dgram protocol =udp wait =yes user =root server =/usr/sbin/in.tftpd
server_args =-c-s/var/lib/tftpboot
disable =no
#默認(rèn)是yes per_source =11 cps =1002 flags =IPv4}2.重啟tftp效勞器#servicexinetdrestart停止xinetd:[確定]啟動(dòng)xinetd:[確定]#netstat-a|greptftp#netstat-an|grep69|
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分布式光伏發(fā)電并網(wǎng)系統(tǒng)容量規(guī)劃方案
- 城區(qū)錯(cuò)接混接改造及雨污水管網(wǎng)項(xiàng)目建設(shè)工程方案
- 重難點(diǎn)解析人教版八年級(jí)上冊(cè)物理物態(tài)變化《升華和凝華》專(zhuān)題訓(xùn)練試題(含解析)
- Wnt-C59-Standard-生命科學(xué)試劑-MCE
- 達(dá)標(biāo)測(cè)試人教版八年級(jí)上冊(cè)物理物態(tài)變化《熔化和凝固》專(zhuān)題練習(xí)試卷(含答案詳解版)
- 基于分子催化劑-半導(dǎo)體復(fù)合體系的芳烴光催化氟烷基化反應(yīng)研究
- 基于SWMM-MIKE 21耦合模型對(duì)河道滯留區(qū)的治理優(yōu)化
- 建筑結(jié)構(gòu)優(yōu)化設(shè)計(jì)與實(shí)施方案
- 公路路基加固技術(shù)方案
- 難點(diǎn)詳解人教版八年級(jí)上冊(cè)物理物態(tài)變化《溫度》專(zhuān)題練習(xí)練習(xí)題(含答案詳解)
- 2025-2026學(xué)年江蘇省徐州市八年級(jí)(上)第一次月考數(shù)學(xué)試卷(含答案)
- 2025至2030中國(guó)航空制造業(yè)行業(yè)發(fā)展現(xiàn)狀及細(xì)分市場(chǎng)及有效策略與實(shí)施路徑評(píng)估報(bào)告
- (2025年)社區(qū)工作者考試真題庫(kù)附答案
- 流延膜設(shè)備安全操作培訓(xùn)課件
- 專(zhuān)題1:勻變速直線(xiàn)運(yùn)動(dòng)的重要結(jié)論+課件-2025-2026學(xué)年高一上學(xué)期物理人教(2019)必修第一冊(cè)
- 醫(yī)學(xué)基礎(chǔ)期末試題及答案
- 2025年放射診療培訓(xùn)試題及答案
- 2025年平安網(wǎng)格測(cè)試題庫(kù)及答案
- 重癥胰腺炎課件教學(xué)
- 3.2營(yíng)造清朗空間教學(xué)設(shè)計(jì) 2025-2026學(xué)年統(tǒng)編版道德與法治八年級(jí)上冊(cè)
- 燙傷急救課件
評(píng)論
0/150
提交評(píng)論