版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章嵌入式系統(tǒng)開發(fā)環(huán)境了解交叉編譯的根本知識了解SkyEye的起源和開展、目標(biāo)和意義掌握SkyEye的配置文件skyeye.conf掌握交叉編譯環(huán)境的創(chuàng)立掌握QEMU、GDB的安裝及簡單使用掌握SkyEye的安裝及簡單使用掌握TFTP、NFS效勞器的搭建本章學(xué)習(xí)目標(biāo)2.1嵌入式系統(tǒng)開發(fā)環(huán)境簡介交叉編譯環(huán)境交叉開發(fā)環(huán)境是由開發(fā)主機(jī)和目標(biāo)板兩套計算機(jī)系統(tǒng)構(gòu)成的。文本編譯器交叉編譯器仿真器遠(yuǎn)程調(diào)試器鏈接器目標(biāo)對象查看器shell下載器交叉編譯環(huán)境組成2.2OK2440-II開發(fā)平臺介紹OK2440II開發(fā)套件包含:1〕一塊已測試好的OK2440II開發(fā)板〔包括OK2440II核心板與OK2440II底板〕2〕OK2440II用戶光盤3〕3.5"TFTSumsangLCD一塊,帶觸摸屏4〕一個JTAG板〔帶20芯排線〕5〕一條串口線〔一頭針一頭孔,串口線〕6〕一條網(wǎng)線〔交叉網(wǎng)線〕7〕一條USB線8〕一支觸摸筆9〕一個5V直流電源適配器10〕一個包裝盒使用步驟:外部硬件連接;Windows下驅(qū)動的安裝;1〕安裝USB驅(qū)動2〕安裝并口驅(qū)動程序3〕調(diào)試終端的使用4〕BootLoader的使用DNW軟件是三星公司為S3C2440芯片配置的一款專用軟件,可以在Windows下通過USB燒寫Flash。在PC機(jī)上翻開DNW〔v0.50A〕,依次選擇“Configuration〞→“Options〞,如下圖,具體設(shè)置為:COM1、波特率為115200、DownloadAddress設(shè)置為0x32000000〔此參數(shù)為下載到內(nèi)存的地址。DNW調(diào)試終端的使用DNW調(diào)試終端的使用Windows超級終端的使用Windows超級終端的使用Windows超級終端的使用本地編譯器2.3交叉編譯的根本知識編譯器可以生成用來在與編譯器本身所在的計算機(jī)和操作系統(tǒng)〔平臺〕相同的環(huán)境下運行的目標(biāo)代碼,這種編譯器叫做本地編譯器。交叉編譯器編譯器也可以生成用來在其他平臺上運行的目標(biāo)代碼,這種編譯器叫做交叉編譯器SoftwareDevelopmentKit,是ARM公司為方便用戶在ARM芯片上進(jìn)行應(yīng)用軟件開發(fā)而推出的一整套集成開發(fā)工具。
最新版本是,被ARMADS取代。2.3.1ARM編譯環(huán)境1.SDTARMADS〔ARMDeveloperSuite〕在1993年由Metrowerks公司開發(fā),是ARM處理器最主要的開發(fā)工具。2.ADSMDK-ARM也稱KEILMDK-ARM、KEILARM、RealviewMDK、I-MDK、uVision4等,系為同一產(chǎn)品。MDK-ARM有四個可用版本,分別是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。3.MARK-ARM主要采用ARM+Linux開發(fā)環(huán)境。4.arm-linux-toolchainGNU提供的編譯工具包括匯編器as、C編譯器gcc、C++編譯器g++、鏈接器ld和二進(jìn)制轉(zhuǎn)換工具objcopy。交叉編譯工具鏈?zhǔn)且粋€由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境,主要由binutils、gcc和glibc3個局部組成?;贏RM平臺的交叉編譯工具鏈主要有:arm-linux-*和arm-elf-*。2.3.2ARM交叉編譯工具鏈?zhǔn)褂貌煌腃庫文件。
前者使用GNU的Glibc,
后者使用uClibc/uC-libc。針對的開發(fā)環(huán)境不一樣。前者針對ARM+Linux的開發(fā)環(huán)境的,OS使用Linux,不是uclinux,ARM有硬件MMU。后者針對noMMUARM+Linux的開發(fā)環(huán)境,OS使用uclinux,硬件是廉價的無MMU的ARM芯片。arm-linux-*和arm-elf-*區(qū)別1.編寫C語言或匯編語言源程序這里介紹用vi編輯器進(jìn)行源碼編碼。在終端中輸入vihello.c,然后按鍵“i〞那么可進(jìn)行代碼編寫。2.3.3嵌入式軟件開發(fā)流程退出源碼編寫。按“ESC〞;輸入“:wq〞,退出并保存源碼,如果不保存,就直接輸入“:q〞那么可。2.生成目標(biāo)文件在終端中輸入#arm-linux-gcc-c-O2-ohello.ohello.c源文件源文件和目標(biāo)文件3.編寫連接腳本文件gcc等編譯器內(nèi)置有缺省的鏈接腳本。為了能在嵌入式系統(tǒng)上直接運行,需要編寫自己的鏈接腳本文件。GNU編譯器生成的目標(biāo)文件缺省為ELF格式。4.用鏈接器生成最終的目標(biāo)文件在終端輸入arm-linux-ld-nostadlib-obootstrap.elf-Tlink.ldshello.o最后是需要鏈接的目標(biāo)文件列表。表示不鏈接系統(tǒng)的運行庫,而是直接從_start入口指明目標(biāo)文件的名稱指明采用的鏈接腳本文件5.生成二進(jìn)制代碼在終端輸入arm-linux-objcopy-Obinarybootstrap.elfbootstrap.bin鏈接生成的ELF文件還不能直接下載執(zhí)行,通過objcopy工具可生成最終的二進(jìn)制文件指定生成為二進(jìn)制格式文件6.反匯編目標(biāo)代碼在終端輸入arm-linux-objdump-Dbootstrap.elf用objdump工具將生成的目標(biāo)代碼反匯編,建立交叉編譯工具鏈有兩種方法:自己編譯生成交叉編譯工具鏈;從網(wǎng)上下載或使用開發(fā)板光盤提供的的交叉編譯工具鏈。2.4實例——創(chuàng)立交叉編譯環(huán)境1.從網(wǎng)上下載或者光盤提供的交叉編譯工具鏈〔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)核?!?〕解壓〔版本〕#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庫〔glibc〕〔6〕建立全套編譯器〔fullgcc〕
QEMU是一套由FabriceBellard編寫的以GPL許可證分發(fā)源碼的模擬處理器,在GNU/Linux平臺上使用廣泛。QEMU有兩種主要運作模式:①Usermode是使用者模式。②Systemmode是系統(tǒng)模式。2.5實例——QEMU\GDB的安裝及簡單使用2.6SkyEye的安裝及簡單使用
2.6.1SkyEye簡介1.SkyEye的起源和開展2002年11月,清華大學(xué)計算機(jī)系的博士后陳渝提出2002年12月,SkyEye工程正式建立目前,SkyEye的主要開發(fā)人員還有韓超、康爍等。2.SkyEye的目標(biāo)和意義目標(biāo):在通用的Linux和Windows平臺上實現(xiàn)一個純軟件集成開發(fā)環(huán)境,模擬常見的嵌入式計算機(jī)系統(tǒng);可在SkyEye上運行μCLinux以及μC/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件,并可對他們進(jìn)行源碼級的分析和測試。2.SkyEye的目標(biāo)和意義SkyEye是一個指令級模擬器,可以模擬多種嵌入式開發(fā)板;可支持多種CPU指令集;SkyEye的目標(biāo)不是驗證硬件邏輯,而是協(xié)助開發(fā)、調(diào)試和學(xué)習(xí)系統(tǒng)軟件。2.SkyEye的目標(biāo)和意義意義:可以很方便地進(jìn)行嵌入式系統(tǒng)軟件的學(xué)習(xí)和開發(fā);可以有效地提高工作效率;SkyEye本身作為一個開放式的工程體系,可以劃分為多個獨立的子工程系統(tǒng)。3.SkyEye模擬硬件介紹〔1〕CPU和開發(fā)板系列——SkyEye可以模擬的CPU主要是基于ARM內(nèi)核的CPU,包括ARM7TDMI、ARM720T、ARM9TDMI、ARM9xx、ARM10xx、StrongARM、XScale等?!猄kyEye模擬的開發(fā)板包括:基于Atmel91X40/AT91RM92CPU的開發(fā)板、基于CrirusLogicep7312的開發(fā)板、基于StrongARMCPU的ADSBITSY開發(fā)板,基于XScalePXA250CPU的LUBBOCK開發(fā)板、基于SAMSUNGS3C4510B/S3C44B0CPU的開發(fā)板、基于SHARPLH7A400CPU的開發(fā)板、基于PhilipLPC22xxCPU的開發(fā)板等?!?〕存儲器管理單元和緩存單元——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實例—安裝//配置,--prefix設(shè)置的安裝位置#make //編譯//將skyeye安裝到#makeinstall2、SkyEye配置選項查看SkyEye的配置文件skyeye.conf。SkyEye模擬的硬件配置和模擬執(zhí)行行為由配置文件skyeye.conf中的選項確定。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ù)選項行多參數(shù)選項行SkyEye的配置文件skyeye.conf和要模擬的硬件有關(guān),配置定義如下:〔1〕根本CPU核配置選項格式為:
cpu:cpuname表示CPU名字的字符串〔2〕具體的開發(fā)板〔包括CPU擴(kuò)展〕配置選項格式為:mach:machinename〔3〕內(nèi)存組配置選項一個內(nèi)存組內(nèi)的地址是連續(xù)的,類型分為: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是一個字符串,實際上表示一個文件boot=yes/no:如果boot=yes,那么SkyEye會把模擬硬件啟動后的第一條指令的地址定位到對應(yīng)的內(nèi)存組的起始地址?!?〕網(wǎng)絡(luò)芯片的配置格式為:
net:state=on/off,mac=xx:xx:xx:xx:xx:xx,state:表示模擬開始后,網(wǎng)絡(luò)芯片是否開始工作。on模擬NIC,off那么不模擬。mac:表示模擬的NIC的mac地址,xx表示兩位16進(jìn)制數(shù)。ethmod:表示skyeye所處主機(jī)上的網(wǎng)絡(luò)模擬方式。hostip:指定模擬的NIC的IP地址。〔5〕LCD的配置格式為:
lcd:state=on/off,type=s3c2410x,mod=gtk〔6〕SkyEye的UART控制選項格式為:uart:fd_in=indevname,fd_out=outdevname〔7〕SkyEye的log控制選項格式為:
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直接運行程序命令格式:
skyeye-e文件名例如:
skyeye-ehello2.SkyEye啟動Linux例如:skyeye-cskyeye.conf-evmlinux2.6.3實例—使用TFTP〔TrivialFileTransferProtocol,簡單文件傳輸協(xié)議〕是TCP/IP協(xié)議族中的一個用來在客戶機(jī)與效勞器之間進(jìn)行簡單文件傳輸?shù)膮f(xié)議,提供不復(fù)雜、開銷不大的文件傳輸效勞。注意:TFTP效勞器運行在宿主機(jī),便于開發(fā)板下載Kernel和RootFS映像文件。2.7實例—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:[確定]啟動xinetd:[確定]#netstat-a|greptftp#netstat-an|grep69|
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際spa原料供應(yīng)合同
- 2024年度版權(quán)質(zhì)押合同版權(quán)價值評估與質(zhì)押期限
- 風(fēng)控課件教學(xué)課件
- 2024年土地使用權(quán)抵押購房合同
- 2024年商標(biāo)許可使用合同:某知名品牌
- 合同履約成本的會計處理分錄-記賬實操
- 2024年度個人向公司提供的借款合同模板
- 2024天然氣企業(yè)信息安全保護(hù)合同
- 2024年度大數(shù)據(jù)可視化設(shè)計合同
- 2024年店面租賃與管理合同
- DG-TJ08-2433A-2023 外墻保溫一體化系統(tǒng)應(yīng)用技術(shù)標(biāo)準(zhǔn)(預(yù)制混凝土反打保溫外墻)
- 九年級上期中考試質(zhì)量分析
- 《共情的力量》課件
- 單詞默寫表(素材)-2023-2024學(xué)年人教PEP版英語五年級上冊
- 屠宰行業(yè)PEST分析
- JBT 14191-2023 管道帶壓開孔機(jī) (正式版)
- 肌張力障礙性震顫的護(hù)理查房
- 湖北省武漢市江夏區(qū)2023-2024學(xué)年七年級上學(xué)期期中數(shù)學(xué)試題
- tpm培訓(xùn)學(xué)習(xí)心得體會
- 果樹大棚養(yǎng)護(hù)技術(shù)方案
- 體育學(xué)數(shù)字化教學(xué)設(shè)計方案
評論
0/150
提交評論