第2章嵌入式系統(tǒng)開發(fā)環(huán)境_第1頁
第2章嵌入式系統(tǒng)開發(fā)環(huán)境_第2頁
第2章嵌入式系統(tǒng)開發(fā)環(huán)境_第3頁
第2章嵌入式系統(tǒng)開發(fā)環(huán)境_第4頁
第2章嵌入式系統(tǒng)開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第2章章 嵌入式系統(tǒng)開發(fā)環(huán)境嵌入式系統(tǒng)開發(fā)環(huán)境 了解交叉編譯的基本知識 了解SkyEye的起源和發(fā)展、目標和意義 掌握SkyEye的配置文件skyeye.conf 掌握交叉編譯環(huán)境的創(chuàng)建 掌握QEMU、GDB的安裝及簡單使用 掌握SkyEye的安裝及簡單使用 掌握TFTP、NFS服務器的搭建本章學習目標本章學習目標2.1 2.1 嵌入式系統(tǒng)開發(fā)環(huán)境簡介嵌入式系統(tǒng)開發(fā)環(huán)境簡介交叉編譯環(huán)境交叉編譯環(huán)境交叉開發(fā)環(huán)境是由開發(fā)主機和目標板兩套計算機系統(tǒng)構成的。仿真器仿真器交叉編譯環(huán)境組成2.2 OK2440-II2.2 OK2440-II開發(fā)平臺介紹開發(fā)平臺介紹OK2440II開發(fā)套件包含開發(fā)套件包含

2、:l 1)一塊已測試好的OK2440II開發(fā)板(包括OK2440II核心板與OK2440II底板)l 2)OK2440II用戶光盤l 3)3.5 TFT Sumsang LCD一塊,帶觸摸屏l 4)一個JTAG板(帶20芯排線)l 5)一條串口線(一頭針一頭孔,串口線)l 6)一條網(wǎng)線(交叉網(wǎng)線)l 7)一條USB線l 8)一支觸摸筆l 9)一個5V直流電源適配器l 10)一個包裝盒使用步驟: 外部硬件連接; Windows下驅動的安裝; 1)安裝USB驅動 2)安裝并口驅動程序 3)調試終端的使用 4)BootLoader的使用DNW軟件是三星公司為S3C2440芯片配置的一款專用軟件,可以

3、在Windows下通過USB燒寫Flash。在PC機上打開DNW(v0.50A),依次選擇“Configuration”“Options”, 如圖所示,具體設置為:COM1、波特率為115200、Download Address設置為0 x3200 0000(此參數(shù)為下載到內存的地址。DNW調試終端的使用調試終端的使用DNW調試終端的使用調試終端的使用WindowsWindows超級終端超級終端的使用的使用WindowsWindows超級終端超級終端的使用的使用WindowsWindows超級終端超級終端的使用的使用本地編譯器本地編譯器2.3 2.3 交叉編譯的基本知識交叉編譯的基本知識編譯器

4、可以生成用來在與編譯器本身所在的計算機和操作系統(tǒng)(平臺)相同的環(huán)境下運行的目標代碼,這種編譯器叫做本地編譯器。交叉編譯器交叉編譯器編譯器也可以生成用來在其他平臺上運行的目標代碼,這種編譯器叫做交叉編譯器 Software Development Kit,是ARM公司為方便用戶在ARM芯片上進行應用軟件開發(fā)而推出的一整套集成開發(fā)工具。 最新版本是2.5.2,被ARM ADS取代。2.3.1 ARM2.3.1 ARM編譯環(huán)境編譯環(huán)境1.SDT1.SDTARM ADS(ARM Developer Suite)在1993年由Metrowerks公司開發(fā),是ARM處理器最主要的開發(fā)工具。2.ADS2.A

5、DSMDK-ARM也稱KEIL MDK-ARM、KEIL ARM、Realview MDK、I-MDK、uVision4 等,系為同一產(chǎn)品。MDK-ARM有四個可用版本,分別是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。3.MARK-ARM3.MARK-ARM主要采用ARM+Linux開發(fā)環(huán)境。4.arm-linux-toolchain4.arm-linux-toolchainGNU提供的編譯工具包括匯編器as、C編譯器gcc、C+編譯器g+、鏈接器ld和二進制轉換工具objcopy 。交叉編譯工具鏈是一個由編譯器、連接器和解釋器組成的綜合

6、開發(fā)環(huán)境,主要由binutils、gcc和glibc 3個部分組成。基于ARM平臺的交叉編譯工具鏈主要有:arm-linux-*和arm-elf-*。2.3.2 ARM2.3.2 ARM交叉編譯工具鏈交叉編譯工具鏈使用不同的使用不同的C庫文件。庫文件。 前者使用GNU的Glibc, 后者使用uClibc/uC-libc。針對的開發(fā)環(huán)境不一樣針對的開發(fā)環(huán)境不一樣。前者針對ARM+Linux的開發(fā)環(huán)境的,OS使用Linux,不是uclinux,ARM有硬件MMU。后者針對no MMU ARM+Linux的開發(fā)環(huán)境,OS使用uclinux,硬件是廉價的無MMU的ARM芯片。arm-linux-*和和

7、arm-elf-*區(qū)別區(qū)別1. 編寫編寫C語言或匯編語言源程序語言或匯編語言源程序這里介紹用vi編輯器進行源碼編碼。 在終端中輸入vi hello.c,然后按鍵“i”則可進行代碼編寫。2.3.3 2.3.3 嵌入式軟件開發(fā)流程嵌入式軟件開發(fā)流程退出源碼編寫。l 按“ESC”;l 輸入“:wq”,退出并保存源碼,如果不保存,就直接輸入“:q”則可。2. 生成目標文件生成目標文件在終端中輸入#arm-linux-gcc -c -O2 -o hello.o hello.c 源文件源文件源文件和目標文件源文件和目標文件3. 編寫連接腳本文件編寫連接腳本文件p gcc等編譯器內置有缺省的鏈接腳本。p 為

8、了能在嵌入式系統(tǒng)上直接運行,需要編寫自己的鏈接腳本文件。p GNU編譯器生成的目標文件缺省為ELF格式。4. 用鏈接器生成最終的目標文件用鏈接器生成最終的目標文件p 在終端輸入arm-linux-ld -n ostadlib -o bootstrap.elf -T link.lds hello.op 最后是需要鏈接的目標文件列表。表示不鏈接系統(tǒng)的表示不鏈接系統(tǒng)的運行庫,而是直接運行庫,而是直接從從_start入口入口指明目標文件指明目標文件的名稱的名稱指明采用的鏈接腳本文件5. 生成二進制代碼生成二進制代碼p 在終端輸入arm-linux-objcopy -O binary bootstrap

9、.elf bootstrap.binp 鏈接生成的ELF文件還不能直接下載執(zhí)行,通過objcopy工具可生成最終的二進制文件指定生成為二進制指定生成為二進制格式文件格式文件6. 反匯編目標代碼反匯編目標代碼在終端輸入arm-linux-objdump -D bootstrap.elf用用objdump工具工具將將生成的目標代碼生成的目標代碼反匯編,反匯編,建立交叉編譯工具鏈有兩種方法:自己編譯生成交叉編譯工具鏈;從網(wǎng)上下載或使用開發(fā)板光盤提供的的交叉編譯工具鏈。2.4 2.4 實例實例創(chuàng)建交叉編譯環(huán)境創(chuàng)建交叉編譯環(huán)境1.從網(wǎng)上下載或者光盤從網(wǎng)上下載或者光盤提供的交叉編譯工具鏈提供的交叉編譯工具

10、鏈u (1)從網(wǎng)上下載arm-linux-gcc或arm-linux-tools壓縮包u (2)解壓arm-linux-gcc-2.95.3.tar.bz2到/usr/local/arm/中# mkdir /usr/local/arm# tar -tvf arm-linux-gcc-2.95.3.tar.bz2# tar -xjvf arm-linux-gcc-2.95.3.tar.bz2 -C /usr/local/arm/# ls -F /usr/local/arm/2.95.3/u (3)解壓arm-linux-gcc-3.4.1.tar.bz2到/usr/local/arm/中#tar

11、 -tvf arm-linux-gcc-3.4.1.tar.bz2# tar -xjvf arm-linux-gcc-3.4.1.tar.bz2 -C /# ls -F /usr/local/arm/3.4.1/注注:arm-linux-gcc-2.95.3版本的交叉編譯器用于編譯 Linux2.4內核。 arm-linux-gcc-3.4.1及其以后版本的交叉編譯器用于編譯Linux2.6內核。u (4)解壓arm-linux-tools-20070808.tar.gz(4.2.1版本)# tar -tvf arm-linux-tools-20070808.tar.gz# tar -xzvf

12、 arm-linux-tools-20070808.tar.gz -C /# arm-linux- # which arm-linux-gcc# ll /usr/local/bin/arm-linux-*u (5)安裝arm-elf-tools-20040427.sh工具包# less arm-elf-tools-20040427.sh# chmod +x arm-elf-tools-20040427.sh# ./arm-elf-tools-20040427.sh# ll /usr/local/bin/arm-elf-*# which arm-elf-gcc 2.自己生成交叉編譯器自己生成交叉

13、編譯器(1)下載源文件、補丁和建立編譯目錄(2)建立內核頭文件(3)建立二進制工具(binutils)(4)建立初始編譯器(bootstrap gcc)(5)建立C庫(glibc)(6)建立全套編譯器(full gcc) QEMU是一套由Fabrice Bellard編寫的以GPL許可證分發(fā)源碼的模擬處理器,在GNU/Linux平臺上使用廣泛。QEMU有兩種主要運作模式: User mode是使用者模式。 System mode是系統(tǒng)模式。2.5 2.5 實例實例QEMUGDBQEMUGDB的安裝及的安裝及簡單使用簡單使用2.6 SkyEye2.6 SkyEye的安裝及簡單使用的安裝及簡單使用

14、 2.6.1 SkyEye2.6.1 SkyEye簡介簡介 1SkyEye的起源和發(fā)展的起源和發(fā)展 2002年11月,清華大學計算機系的博士后陳渝提出 2002年12月,SkyEye項目正式建立 目前,SkyEye的主要開發(fā)人員還有韓超、康爍等。 2SkyEye的的目標目標和和意義意義 目標目標: 在通用的Linux和Windows平臺上實現(xiàn)一個純軟件集成開發(fā)環(huán)境,模擬常見的嵌入式計算機系統(tǒng); 可在SkyEye上運行CLinux以及C/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件,并可對他們進行源碼級的分析和測試。 2SkyEye的的目標目標和和意義意義p SkyEye是一個指令級模擬器,可以

15、模擬多種嵌入式開發(fā)板;p 可支持多種CPU指令集;p SkyEye的目標不是驗證硬件邏輯,而是協(xié)助開發(fā)、調試和學習系統(tǒng)軟件。 2SkyEye的的目標目標和和意義意義 意義意義: 可以很方便地進行嵌入式系統(tǒng)軟件的學習和開發(fā); 可以有效地提高工作效率; SkyEye本身作為一個開放式的項目體系,可以劃分為多個獨立的子項目系統(tǒng)。 3SkyEye模擬硬件介紹模擬硬件介紹(1)CPU和開發(fā)板系列 SkyEye可以模擬的CPU主要是基于ARM內核的CPU,包括ARM7TDMI、ARM720T、ARM9TDMI、ARM9xx、ARM10 xx、StrongARM、XScale等。SkyEye模擬的開發(fā)板開發(fā)

16、板包括:基于Atmel 91X40/AT91RM92 CPU的開發(fā)板、基于Crirus Logic ep7312的開發(fā)板、基于StrongARM CPU的ADSBITSY開發(fā)板,基于XScale PXA250 CPU的LUBBOCK開發(fā)板、基于SAMSUNG S3C4510B/S3C44B0 CPU的開發(fā)板、基于SHARP LH7A400 CPU的開發(fā)板、基于Philip LPC22xx CPU的開發(fā)板等。(2)存儲器管理單元和緩存單元MMU、CACHE。(3)網(wǎng)絡芯片目前SkyEye模擬了網(wǎng)絡芯片8019AS。1 1、安裝、安裝SkyEyeSkyEye(1)解壓源碼包# tar -xjvf

17、skyeye-1.2.6_rc1.tar.bz2 -C ./(2)編譯skyeye-1.2.6# cd skyeye-1.2.6_rc1# ls/INSTALL文件包含安裝幫助信息# gedit INSTALL 2.6.2 2.6.2 實例實例安裝安裝SkyEye-1.2.6SkyEye-1.2.6/配置,-prefix設置skyeye1.2.6的安裝位置# ./configure -prefix=/opt/skyeye1.2.6# make/編譯/將skyeye安裝到/opt/skyeye1.2.6/bin/# make install# ll /opt/skyeye1.2.6/bin/sk

18、yeye2 2、SkyEyeSkyEye配置選項配置選項查看SkyEye的配置文件skyeye.conf。SkyEye模擬的硬件配置和模擬執(zhí)行行為由配置文件skyeye.conf中的選項確定。skyeye.conf文件:文件:# skyeye config file for S3C2410X cpu: arm920tmach: s3c2410 x # physical memorymem_bank: map=M, type=RW, addr=0 xc0000000, size=0 x00800000mem_bank: map=M, type=RW, addr=0 xc0800000, size

19、=0 x00800000, file=./initrd.imgmem_bank: map=M, type=RW, addr=0 xc1000000, size=0 x01000000 # all peripherals I/O mapping areamem_bank: map=I, type=RW, addr=0 x48000000, size=0 x20000000 mem_bank: map=I, type=RW, addr=0 x19000300, size=0 x00000020net: type=cs8900a, base=0 x19000300, size=0 x20,int=9

20、, mac=0:4:3:2:1:f, ethmod=tuntap, hostip= lcd: type=s3c2410 x, mod=gtk#dbct:state=on單參數(shù)選項行單參數(shù)選項行多參數(shù)選項行多參數(shù)選項行SkyEye的配置文件skyeye.conf和要模擬的硬件有關,配置定義如下:(1)基本CPU核配置選項格式為: cpu: cpuname表示表示 CPU名字的名字的字符串字符串(2)具體的開發(fā)板(包括CPU擴展)配置選項 格式為: mach: machinename(3)內存組配置選項一個內存組內的地址是連續(xù)的,類型分為:RAM SPACE、ROM SPACE、m

21、apped IO SPACE。格式為: mem_bank: map=M|I, type=RW|R, addr=0 xXXXXXXXX, size=0 xXXXXXXXX,file=imagefilename,boot=yes|nomap=M:表示RAM/ROM SPACE。map=I:表示mapped IO SPACE。type=RW且map=M:表示RAM SPACE。type=R且map=M:表示ROM SPACE。addr=0 xXXXXXX:表示內存組的起始物理地址(32bit,16進制)。size=0 xXXXXXX:表示內存組的大小(32bit,16進制)。file=imagefi

22、lename:imagefilename是一個字符串,實際上表示一個文件boot=yes/no:如果boot=yes,則SkyEye會把模擬硬件啟動后的第一條指令的地址定位到對應的內存組的起始地址。(4)網(wǎng)絡芯片的配置格式為: net: state=on/off, mac=xx:xx:xx:xx:xx:xx, ethmod=tuntap/vnet, hostip=dd.dd.dd.ddstate:表示模擬開始后,網(wǎng)絡芯片是否開始工作。on模擬NIC,off則不模擬。mac:表示模擬的NIC的mac地址,xx表示兩位16進制數(shù)。ethmod:表示skyeye所處主機上的網(wǎng)絡模擬方式。hostip

23、:指定模擬的NIC的IP地址。(5)LCD的配置格式為: lcd: state=on/off, type=s3c2410 x, 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表示不進行記錄,值等于1表示記錄指令和指令地址流,等于2表示記錄指令和指令地址和主要寄存器

24、內容,值等于3表示記錄指令和指令地址和所有的寄存器內容。1. SkyEye直接運行程序命令格式: skyeye -e 文件名文件名例如:例如: skyeye -e hello2. SkyEye啟動Linux例如:例如: skyeye -c skyeye.conf -e vmlinux 2.6.3 2.6.3 實例實例使用使用SkyEye-1.2.6SkyEye-1.2.6TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸?shù)膮f(xié)議,提供不復雜、開銷不大的文件傳輸服務。注意:注意: TFTP服

25、務器運行在宿主機,便于開發(fā)板下載服務器運行在宿主機,便于開發(fā)板下載Kernel和和RootFS映像文件映像文件。 2.7 2.7 實例實例TFTPTFTP服務器的搭建服務器的搭建1tftp的配置文件 # gedit /etc/xinetd.d/tftpservice tftpsocket_type= dgramprotocol= udpwait= yesuser= rootserver = /usr/sbin/in.tftpdserver_args= -c -s /var/lib/tftpbootdisable = no # 默認是yesper_source= 11cps= 100 2flags= IPv42重啟tftp服務器# service xinetd restart停止 xinetd: 確定啟動 xinetd: 確定# netstat -a|grep tftp# netstat -an|grep 69|grep udpNetstat用來顯示網(wǎng)絡連接、路由用來顯示網(wǎng)絡連接、路由表和網(wǎng)絡接口信息,驗證表和網(wǎng)絡接口信息,驗證tftp服服務器是否配置成功務器是否配置成功3客戶端測試tftp# pwd#tftp 4服務器端結果# pwd# ls NFS(Network FileSystem)是由Sun開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論