版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1、交叉開發(fā)環(huán)境模式概述2、宿主機環(huán)境3、目標板環(huán)境4、交叉編譯工具鏈5、gdb調試器6、遠程調試7、內核調試8、網(wǎng)絡調試1、交叉開發(fā)環(huán)境模式概述什么是嵌入式系統(tǒng) “以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)?!庇布系木窒扌?存儲空間小 處理器頻率低 缺少存儲、輸入輸出設備宿主機目標板交叉開發(fā)模式組成部分 宿主機:平時使用的桌面計算機 目標板:嵌入式開發(fā)板介紹 利用宿主機上已有的成熟的開發(fā)工具,專門針對目標板定制一套系統(tǒng),包括引導程序、內核和文件系統(tǒng),然后下載到目標板上運行。宿主機目標板交叉開發(fā)模式開發(fā)過程 在宿主機
2、上編寫代碼,并通過交叉編譯工具編譯出能夠在目標板上運行的程序,然后下載到目標板上測試執(zhí)行,最后利用宿主機上的調試工具對目標板上運行的程序進行遠程調試。特點 使用和桌面開發(fā)一樣的工具,降低學習成本。 充分利用宿主機的開發(fā)環(huán)境。宿主機目標板連接方式串口 利用串口給目標板發(fā)送命令,同時也可以接受目標板返回的信息并顯示。 宿主機可以通過串口往目標板傳送文件; 目標板可以把程序運行的結果返回并顯示。 串口驅動程序的實現(xiàn)相對比較簡單,缺點是傳輸速度慢,并不適用于傳輸大量數(shù)據(jù)的場合。以太網(wǎng) 以太網(wǎng)是當今局域網(wǎng)采用的最通用的通信協(xié)議標準。 它使用簡單,配置靈活,支持廣泛,傳輸速率快,安全可靠,缺點是網(wǎng)絡驅動的
3、實現(xiàn)比較復雜。宿主機目標板連接方式USB USB是Universal Serial Bus通用串行總線)的縮寫,現(xiàn)已成為PC的標準,基于USB標準的設備被廣泛使用。 一種快速、靈活的總線接口,與其它通信接口相比,USB接口的特點是易于使用。 支持熱插拔,無需用戶自己配置,系統(tǒng)會自動搜索驅動并安裝。 USB是典型的主從結構,兩端分別需要不同的驅動程序。JTAG JTAG是一種國際標準測試協(xié)議,主要用于芯片內部測試及對系統(tǒng)進行仿真、調試。 在嵌入式系統(tǒng)領域,幾乎所有的處理器都支持JTAG,調試器的單步調試和斷點都需要和JTAG交涉。 可以使用JTAG將程序燒寫到目標板上。2、宿主機環(huán)境串口終端BO
4、OTP協(xié)議TFTP協(xié)議交叉編譯Make工具串口的用途 作為終端執(zhí)行命令,管理嵌入式系統(tǒng)。 使用zmodem協(xié)議等傳送小文件。串口終端 超級終端 (Windows XP) Minicom (Linux)BOOTP協(xié)議協(xié)議什么是BOOTP協(xié)議 引導協(xié)議(Bootstrap Protocol,BOOTP)是一種基于TCP/IP的協(xié)議,它最初在RFC951中定義,如今在通用計算機上廣泛使用的DHCP協(xié)議就是從BOOTP協(xié)議擴展而來。BOOTP協(xié)議使用TCP/IP網(wǎng)絡協(xié)議中的UDP 67/68兩個通訊端口。BOOTP協(xié)議用途 用于無盤客戶機從服務器得到自己的IP地址、服務器的IP地址、啟動映象文件名、網(wǎng)
5、關信息等等第一步,在主機平臺運行BOOTP服務的情況下,目標板由Boot Loader啟動BOOTP,此時目標板還沒有IP地址,它就用廣播形式以IP地址向網(wǎng)絡中發(fā)出IP地址查詢的請求,這個請求幀中包含了客戶機的網(wǎng)卡MAC地址。第二步,主機平臺上的BOOTP服務器接收到的這個請求幀,根據(jù)這幀中的MAC地址在Bootptab啟動數(shù)據(jù)庫中查找這個MAC的記錄,如果沒有此MAC的記錄則不響應這個請求;如果有就將FOUND幀發(fā)送回目標板。FOUND幀中包含的主要信息有目標板的IP地址、服務器的IP地址、硬件類型、網(wǎng)關IP地址、目標板MAC地址和啟動映象文件名。第三步,目標板就根據(jù)FOUND
6、幀中的信息通過TFTP服務器下載啟動映象文件。TFTP協(xié)議協(xié)議什么是BOOTP協(xié)議 TFTP的全稱是Trivial File Transfer Protocol,即“簡單文件傳輸協(xié)議”,它是TCP/IP協(xié)議族中的一個在客戶端和服務端之間進行簡單文件傳輸?shù)膮f(xié)議,提供不復雜、開銷不大的文件傳輸服務。TFTP特點 不提供用戶名和口令 TFTP 協(xié)議傳輸由客戶端發(fā)起交叉編譯交叉編譯背景 目標文件在不同架構間由于采用的CPU指令集不同等原因不能通用。定義 交叉編譯就是在一個架構的機器下編譯另一個架構的目標文件。 需要安裝交叉編譯工具鏈make工具工具GNU make是一種常用的編譯工具,通過它,開發(fā)人員
7、可以很方便地管理軟件編譯的內容、方式和時機,從而能夠把主要精力集中在代碼的編寫上。make會自動根據(jù)文件修改時間來判斷源文件中哪些部分有更新,通過解釋Makefile文件內的規(guī)則并執(zhí)行相應的命令,重新編譯鏈接這些更新過的文件。make工作過程工作過程編寫Makefile Makefile由一系列規(guī)則組成,每條規(guī)則說明要生成哪些目標文件、生成目標文件所依賴的其它文件以及生成目標文件所需要的命令。編譯過程 通過查看時間戳來確認依賴文件是否比目標文件更新,如果是則重新執(zhí)行這條規(guī)則的命令,并進一步地執(zhí)行依賴這些中間目標文件的規(guī)則,層層推進,最后生成新的結果文件。所有的依賴文件都沒有被編譯過,則對每個源
8、文件進行編譯并進行鏈接,生成最后的可執(zhí)行程序 。源文件在上次編譯之后被修改過,則在本次執(zhí)行make的時候將會被重新編譯。頭文件在上次編譯之后被修改過,則所有包含此頭文件的源文件在本次執(zhí)行make的時候將將會被重新編譯。# Makefile Example for Mathmath : main.o display.o plus.o minus.o multi.o divide.o mod.o gcc -o math main.o display.o plus.o minus.o multi.o divide.o mod.omain.o : main.c defs.h display.h gcc
9、 -c main.c display.o : display.c defs.h display.h gcc -c display.c plus.o : plus.c defs.h gcc -c plus.cminus.o: minus.c defs.h gcc -c minus.cmulti.o: multi.c defs.h gcc -c multi.cdivide.o: divide.c defs.h gcc -c divide.cmod.o: mod.c defs.h gcc -c mod.c .PHONY: cleanclean : -rm main.o display.o plus.
10、o minus.o multi.o divide.o mod.oTARGET : PREREQUISITESCOMMAND # command前面使用tab縮進說明:TARGET:規(guī)則的目標。通常是最后所要生成的可執(zhí)行文件名或者為了生成這個目標而必需的中間過程的目標文件名。PREREQUISITES:規(guī)則的依賴。生成規(guī)則目標所需要的文件列表,通常一個目標依賴于一個或多個文件。COMMAND:規(guī)則執(zhí)行的命令。生成規(guī)則目標所需要執(zhí)行的命令,可以是shell下面的任何命令組合。3、目標目標板環(huán)境板環(huán)境JTAG接口Boot LoaderJTAG接口接口簡介簡介作為硬件測試手段,JTAG的功能與CPU狀
11、態(tài)無關,可驅動設備的所有外部引腳并讀入數(shù)據(jù),而且在設備內部奪取外部的連接點(與通往外部的各個pin腳一一連接)。各個cell為了形成 Serial Shift Register而相連。整體的接口由5個pin腳來控制(TDI,TMS,TCK,nTRST,TDO)。其功能包括:測試線路連線和端子的連接狀態(tài);測試設備間的連接狀態(tài);進行Flash memory 燒寫等Boot Loader簡介簡介Boot Loader是系統(tǒng)加電后運行的第一段代碼。完成初始化硬件設備、創(chuàng)建內核需要的信息等工作,最后調用操作系統(tǒng)內核。對硬件的依賴非常強,不同的體系結構、不同的嵌入式板級設備配置都會對Boot Loader
12、有不同的需求。4、交叉編譯交叉編譯工具工具鏈鏈交叉編譯工具鏈是一個由編譯器、鏈接器和解釋器組成的集成開發(fā)環(huán)境。和本地編譯類似,交叉編譯的過程也是由編譯、鏈接等階段組成,源程序通過交叉編譯器編譯成目標模塊,并由交叉鏈接器加載庫最后鏈接成可在目標平臺上執(zhí)行的程序代碼。交叉編譯交叉編譯的的構建構建從頭編譯 編譯難度大,不適合初學者。腳本編譯 需要選擇合適的腳本工具,例如crosstool下載使用 下載指定平臺編譯好的二進制包。相關相關工具工具交叉編譯工具鏈主要包括: 標準庫:glibc 編譯器:gcc 鏈接器:ld 匯編器:as 調試器:gdbglibc最初是自由軟件基金會為其GNU操作系統(tǒng)所寫,但
13、目前最主要的應用是配合Linux內核,成為GNU/Linux操作系統(tǒng)一個重要的組成部分。是Linux系統(tǒng)中最底層的API,幾乎其它任何運行庫都會直接或間接地依賴于glibc。除了封裝系統(tǒng)調用之外,還提供一些基本的功能,例如open、malloc、printf、exit等等。 gcc支持不同的編程語言,它被目前許多Unix/Linux系統(tǒng)作為默認的標準編譯器。支持多種處理器架構上,并且在商業(yè)、專利和開源軟件開發(fā)環(huán)境中廣泛使用。支持嵌入式系統(tǒng)平臺。binutils是一組開發(fā)工具包,包括連接器、匯編器和其他用于目標文件和檔案的工具。其中包括:addr2line、ar 、as、ld、nm、objdum
14、p 、ranlib、readelf是一款功能非常強大的調試器,既支持多種硬件平臺,也支持多種編程語言,目前gdb支持的調試語言有C/C+、Java、Fortran、Modula-2等多種語言。不僅用于本地調試,還可以用于遠程調試,非常適合嵌入式系統(tǒng)開發(fā)使用。使用gdb可以完成下面這些任務: 運行程序,可以給程序加上所需的任何調試條件; 在給定的條件下讓程序停止; 檢查程序停止時的運行狀態(tài); 通過改變一些數(shù)據(jù),可以更快地改正程序的錯誤。6、遠程調試遠程調試以調試器和被調試程序是否在同一臺機器區(qū)分 本地調試 遠程調試嵌入式系統(tǒng)大多使用遠程調試方式遠程調試解決方案插樁方案 需要在目標操作系統(tǒng)和宿主機
15、調試器內分別添加一些功能模塊,然后二者互通信息調試,這種方案稱為插樁(stub) 運行在目標板上的被調試程序,一經(jīng)初始化,在入口點會調用設置斷點的函數(shù),主動觸發(fā)異常然后由異常處理程序控制,異常處理程序將會調用調試端口通信模塊,監(jiān)聽宿主機調試器發(fā)送的調試信息。雙方通信一旦建立,就可以根據(jù)遠程調試協(xié)議進行調試。使用ROM Monitor調試目標機目標板程序使用kgdb調試系統(tǒng)內核使用gdbserver調試用戶空間應用程序gdb遠程調試遠程調試功能功能由宿主機gdb和目標板調試stub共同構成。兩者通過串口或TCP連接,采用gdb遠程串行協(xié)議(Remote Serial Protocol, RSP)
16、連接。RSP定義了宿主機gdb和被調試的目標板程序進行通信時數(shù)據(jù)包的格式。它是一種基于消息的ASCII碼協(xié)議,包含了內存讀寫、寄存器查詢、程序運行等命令。gdbserver遠程調試遠程調試7、內核內核調試調試Linux內核的規(guī)模之龐大,單靠閱讀代碼查找BUG已經(jīng)非常困難。而Linux內核的開發(fā)人員出于保證內核代碼正確性的考慮,不愿意在Linux內核源代碼中添加調試器。所以對Linux內核進行調試一直是項艱苦的工作。內核調試技術 內核打印函數(shù) printk 內核源代碼調試kgdbprintk函數(shù)具有良好的健壯性,不受內核運行條件的限制,在系統(tǒng)運行的任何階段都可以使用。和C標準庫中的printf函數(shù)不同的是,printk函數(shù)可以指定一個日志級別。內核根據(jù)這個級別來判斷是否在終端上打印消息。在頭文件中定義了可用的日志級別kgdb內核調試k
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度林業(yè)用地租賃合同書范本(2025升級版)
- 2025年度高空作業(yè)泥水工專業(yè)服務合同范本4篇
- 臨沂教師職業(yè)聘用合同書2024年版版
- 環(huán)保項目投資與建設的2025年度合同3篇
- 2025年度木屋別墅建筑與園林景觀設計施工合同4篇
- 2025年版機動車質押擔保貸款合同范本3篇
- 2025年度智能家電電商定制購銷服務合同4篇
- 二零二五版內墻涂料綠色工廠建設與運營管理合同4篇
- 2025年度城市綠化測繪合同范本2篇
- 二零二五年度出口貿易保險理賠合同范本3篇
- 眼的解剖結構與生理功能課件
- 小學網(wǎng)管的工作總結
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
- 泵站運行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學校中考一模數(shù)學試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術標準》
- 浙教版七年級下冊科學全冊課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計算公式測量方法
- DB32-T 4004-2021水質 17種全氟化合物的測定 高效液相色譜串聯(lián)質譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術規(guī)范
評論
0/150
提交評論