




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式軟件開發(fā)流程一、嵌入式軟件開發(fā)流程1.1 嵌入式系統(tǒng)開發(fā)概述 由嵌入式系統(tǒng)本身的特性所影響,嵌入式系統(tǒng)開發(fā)與通用系統(tǒng)的開發(fā)有很大的區(qū)別。嵌入式系統(tǒng)的開發(fā)主要分為系統(tǒng)總體開發(fā)、嵌入式硬件開發(fā)和嵌入式軟件開發(fā)3大部分,其總體流程圖如圖1.1所示。圖1.1 嵌入式系統(tǒng)開發(fā)流程圖 在系統(tǒng)總體開發(fā)中,由于嵌入式系統(tǒng)與硬件依賴非常緊密,往往某些需求只能通過特定的硬件才能實現,因此需要進行處理器選型,以更好地滿足產品的需求。另外,對于有些硬件和軟件都可以實現的功能,就需要在成本和性能
2、上做出抉擇。往往通過硬件實現會增加產品的成本,但能大大提高產品的性能和可靠性。 再次,開發(fā)環(huán)境的選擇對于嵌入式系統(tǒng)的開發(fā)也有很大的影響。這里的開發(fā)環(huán)境包括嵌入式操作系統(tǒng)的選擇以及開發(fā)工具的選擇等。比如,對開發(fā)成本和進度限制較大的產品可以選擇嵌入式Linux,對實時性要求非常高的產品可以選擇Vxworks等。 1.2 嵌入式軟件開發(fā)概述 嵌入式軟件開發(fā)總體流程為圖4.15中“軟件設計實現”部分所示,它同通用計算機軟件開發(fā)一樣,分為需求分析、軟件
3、概要設計、軟件詳細設計、軟件實現和軟件測試。其中嵌入式軟件需求分析與硬件的需求分析合二為一,故沒有分開畫出。由于在嵌入式軟件開發(fā)的工具非常多,為了更好地幫助讀者選擇開發(fā)工具,下面首先對嵌入式軟件開發(fā)過程中所使用的工具做一簡單歸納。 嵌入式軟件的開發(fā)工具根據不同的開發(fā)過程而劃分,比如在需求分析階段,可以選擇IBM的Rational Rose等軟件,而在程序開發(fā)階段可以采用CodeWarrior(下面要介紹的ADS的一個工具)等,在調試階段所用的Multi-ICE等。同時,不同的嵌入式操作系統(tǒng)往往會有配套的開發(fā)工具,比如Vxworks有集成開發(fā)環(huán)境T
4、ornado,WindowsCE的集成開發(fā)環(huán)境WindowsCE Platform等。此外,不同的處理器可能還有對應的開發(fā)工具,比如ARM的常用集成開發(fā)工具ADS、IAR和RealView等。在這里,大多數軟件都有比較高的使用費用,但也可以大大加快產品的開發(fā)進度,用戶可以根據需求自行選擇。圖4.16是嵌入式開發(fā)的不同階段的常用軟件。圖1.2 嵌入式開發(fā)不同階段的常用軟件嵌入式系統(tǒng)的軟件開發(fā)與通常軟件開發(fā)的區(qū)別主要在于軟件實現部分,其中又可以分為編譯和調試兩部分,下面分別對這兩部分進行講解。1交叉編譯 嵌入式軟件開發(fā)所采用的編譯為交叉編
5、譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。在第3章中已經提到,編譯的最主要的工作就在將程序轉化成運行該程序的CPU所能識別的機器代碼,由于不同的體系結構有不同的指令系統(tǒng)。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同CPU的對應可執(zhí)行二進制文件。要注意的是,編譯器本身也是程序,也要在與之對應的某一個CPU平臺上運行。嵌入式系統(tǒng)交叉編譯環(huán)境如圖4.17所示。圖4.17 交叉編譯環(huán)境 小知識 與交叉編譯相對應,平時常用的編譯稱為本地編譯。
6、 這里一般將進行交叉編譯的主機稱為宿主機,也就是普通的通用PC,而將程序實際的運行環(huán)境稱為目標機,也就是嵌入式系統(tǒng)環(huán)境。由于一般通用計算機擁有非常豐富的系統(tǒng)資源、使用方便的集成開發(fā)環(huán)境和調試工具等,而嵌入式系統(tǒng)的系統(tǒng)資源非常緊缺,無法在其上運行相關的編譯工具,因此,嵌入式系統(tǒng)的開發(fā)需要借助宿主機(通用計算機)來編譯出目標機的可執(zhí)行代碼。 由于編譯的過程包括編譯、鏈接等幾個階段,因此,嵌入式的交叉編譯也包括交叉編譯、交叉鏈接等過程,通常ARM的交叉編譯器為arm-elf-gcc、arm-linux-gcc等,交叉鏈接器為arm-elf-
7、ld、arm-linux-ld等,交叉編譯過程如圖4.18所示。圖4.18 嵌入式交叉編譯過程2交叉調試 嵌入式軟件經過編譯和鏈接后即進入調試階段,調試是軟件開發(fā)過程中必不可少的一個環(huán)節(jié),嵌入式軟件開發(fā)過程中的交叉調試與通用軟件開發(fā)過程中的調試方式有很大的差別。在常見軟件開發(fā)中,調試器與被調試的程序往往運行在同一臺計算機上,調試器是一個單獨運行著的進程,它通過操作系統(tǒng)提供的調試接口來控制被調試的進程。而在嵌入式軟件開發(fā)中,調試時采用的是在宿主機和目標機之間進行的交叉調試,調試器仍然運行在宿主機的通用操作系統(tǒng)之上,但被調試的進程卻是運行
8、在基于特定硬件平臺的嵌入式操作系統(tǒng)中,調試器和被調試進程通過串口或者網絡進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態(tài),并能夠改變被調試進程的運行狀態(tài)。 嵌入式系統(tǒng)的交叉調試有多種方法,主要可分為軟件方式和硬件方式兩種。它們一般都具有如下一些典型特點。· 調試器和被調試進程運行在不同的機器上,調試器運行在PC機(宿主機),而被調試的進程則運行在各種專業(yè)調試板上(目標板)。 · 調試器通過某種通信方
9、式(串口、并口、網絡、JTAG等)控制被調試進程。 · 在目標機上一般會具備某種形式的調試代理,它負責與調試器共同配合完成對目標機上運行著的進程的調試。這種調試代理可能是某些支持調試功能的硬件設備,也可能是某些專門的調試軟件(如gdbserver)。 · 目標機可能是某種形式的系統(tǒng)仿真器,通過在宿主機上運行目標機的仿真軟件,整個調試過程可以在一臺計算機上運行。此時物理上雖然只有一臺計算機,但邏輯上仍然存在著宿主機和目標機的區(qū)別。 下面分別就軟件調試樁方式和硬件片上
10、調試兩種方式進行詳細介紹。(1)軟件方式。 軟件調試主要是通過插入調試樁的方式來進行的。調試樁方式進行調試是通過目標操作系統(tǒng)和調試器內分別加入某些功能模塊,二者互通信息來進行調試。該方式的典型調試器有gdb調試器。 gdb的交叉調試器分為GdbServer和GdbClient,其中的GdbServer就作為調試樁在安裝在目標板上,GdbClient就是駐于本地的gdb調試器。它們的調試原理圖如圖4.19所示。圖4.19 gdb遠程調試原理圖
11、 gdb調試的工作流程。· 首先,建立調試器(本地gdb)與目標操作系統(tǒng)的通信連接,可通過串口、網卡、并口等多種方式。 · 然后,在目標機上開啟GdbServer進程,并監(jiān)聽對應端口。 · 在宿主機上運行調試器gdb,這時,gdb就會自動尋找遠端的通信進程,也就是GdbServer的所在進程。 · 在宿主機上的gdb通過GdbServer請求對目標機上的程序
12、發(fā)出控制命令。這時,GdbServer將請求轉化為程序的地址空間或目標平臺的某些寄存器的訪問,這對于沒有虛擬存儲器的簡單的嵌入式操作系統(tǒng)而言,是十分容易的。 · GdbServer把目標操作系統(tǒng)的所有異常處理轉向通信模塊,并告知宿主機上gdb當前有異常。 · 宿主機上的gdb向用戶顯示被調試程序產生了哪一類異常。 這樣就完成了調試的整個過程。這個方案的實質是用軟件接管目標機的全部異常處理及部分中斷處理,并在其中插入調試端口通信
13、模塊,與主機的調試器進行交互。但是它只能在目標機系統(tǒng)初始化完畢、調試通信端口初始化完成后才能起作用,因此,一般只能用于調試運行于目標操作系統(tǒng)之上的應用程序,而不宜用來調試目標操作系統(tǒng)的內核代碼及啟動代碼。而且,它必須改變目標操作系統(tǒng),因此,也就多了一個不用于正式發(fā)布的調試版。(2)硬件調試。 相對于軟件調試而言,使用硬件調試器可以獲得更強大的調試功能和更優(yōu)秀的調試性能。硬件調試器的基本原理是通過仿真硬件的執(zhí)行過程,讓開發(fā)者在調試時可以隨時了解到系統(tǒng)的當前執(zhí)行情況。目前嵌入式系統(tǒng)開發(fā)中最常用到的硬件調試器是ROMMonitor、ROMEmulato
14、r、In-CircuitEmulator和In-CircuitDebugger。 采用ROMMonitor方式進行交叉調試需要在宿主機上運行調試器,在宿主機上運行ROM監(jiān)視器(ROMMonitor)和被調試程序,宿主機通過調試器與目標機上的ROM監(jiān)視器遵循遠程調試協議建立通信連接。ROM監(jiān)視器可以是一段運行在目標機ROM上的可執(zhí)行程序,也可以是一個專門的硬件調試設備,它負責監(jiān)控目標機上被調試程序的運行情況,能夠與宿主機端的調試器一同完成對應用程序的調試。 在使用這種調試方式時,被調試程序首先通過RO
15、M監(jiān)視器下載到目標機,然后在ROM監(jiān)視器的監(jiān)控下完成調試。 優(yōu)點:ROM監(jiān)視器功能強大,能夠完成設置斷點、單步執(zhí)行、查看寄存器、修改內存空間等各項調試功能。 確定:同軟件調試一樣,使用ROM監(jiān)視器目標機和宿主機必須建立通信連接。 其原理圖如圖4.20所示。圖4.20 ROMMonitor調試方式 采用ROMEmulator方式進行交叉調試時需要使用ROM仿真器,并且它通常被插入到目標機上的RO
16、M插槽中,專門用于仿真目標機上的ROM芯片。 在使用這種調試方式時,被調試程序首先下載到ROM仿真器中,因此等效于下載到目標機的ROM芯片上,然后在ROM仿真器中完成對目標程序的調試。 優(yōu)點:避免了每次修改程序后都必須重新燒寫到目標機的ROM中。 缺點:ROM仿真器本身比較昂貴,功能相對來講又比較單一,只適應于某些特定場合。其原理如圖4.21所示。圖4.21 ROMEmulator調試方式 采
17、用In-CircuitEmulator(ICE)方式進行交叉調試時需要使用在線仿真器,它是目前最為有效的嵌入式系統(tǒng)的調試手段。它是仿照目標機上的CPU而專門設計的硬件,可以完全仿真處理器芯片的行為。仿真器與目標板可以通過仿真頭連接,與宿主機可以通過串口、并口、網線或USB口等連接方式。由于仿真器自成體系,所以調試時既可以連接目標板,也可以不連接目標板。 在線仿真器提供了非常豐富的調試功能。在使用在線仿真器進行調試的過程中,可以按順序單步執(zhí)行,也可以倒退執(zhí)行,還可以實時查看所有需要的數據,從而給調試過程帶來了很多的便利。嵌入式系統(tǒng)應用的一個顯著特點
18、是與現實世界中的硬件直接相關,并存在各種異變和事先未知的變化,從而給微處理器的指令執(zhí)行帶來各種不確定因素,這種不確定性在目前情況下只有通過在線仿真器才有可能發(fā)現。 優(yōu)點:功能強大,軟硬件都可做到完全實時在線調試。 缺點:價格昂貴。 其原理如圖4.22所示。圖4.22 ICE調試方式 采用In-CircuitDebugger(ICD)方式進行交叉調試時需要使用在線調試器。由于ICE的價格非常昂貴
19、,并且每種CPU都需要一種與之對應的ICE,使得開發(fā)成本非常高。一個比較好的解決辦法是讓CPU直接在其內部實現調試功能,并通過在開發(fā)板上引出的調試端口發(fā)送調試命令和接收調試信息,完成調試過程。如使用非常廣泛的ARM處理器的JTAG端口技術就是由此而誕生的。 JTAG是1985年指定的檢測PCB和IC芯片的一個標準。1990年被修改成為IEEE的一個標準,即IEEE1149.1。JTAG標準所采用的主要技術為邊界掃描技術,它的基本思想就是在靠近芯片的輸入輸出管腳上增加一個移位寄存器單元。因為這些移位寄存器單元都分布在芯片的邊界上(周圍),所以被稱為
20、邊界掃描寄存器(Boundary-Scan Register Cell)。 當芯片處于調試狀態(tài)時候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實現對芯片輸入輸出信號的觀察和控制。對于芯片的輸入管腳,可通過與之相連的邊界掃描寄存器單元把信號(數據)加載到該管腳中去;對于芯片的輸出管腳,可以通過與之相連的邊界掃描寄存器單元“捕獲”(CAPTURE)該管腳的輸出信號。這樣,邊界掃描寄存器提供了一個便捷的方式用于觀測和控制所需要調試的芯片。 現在較為高檔的微處理器
21、都帶有JTAG接口,包括ARM7、ARM9、StrongARM、DSP等,通過JTAG接口可以方便地對目標系統(tǒng)進行測試,同時,還可以實現Flash編程,這是非常受歡迎的。 優(yōu)點:連接簡單,成本低。 缺點:特性受制于芯片廠商。 其原理如圖4.23所示。圖4.23 JTAG調試方式開發(fā)流程框圖:階段流程圖文檔項目立項階段任命項目經理成立項目團隊小組項目建議書可行性分析市場信息反饋簽發(fā)項目任務書可行性分析報告項目任務書項目總體規(guī)劃產品定義系統(tǒng)分析
22、各部需求分析需求分析評審確定里程碑編制質量控制計劃編制項目計劃書風險控制計劃需求分析報告需求分析評審報告產品定義產品技術規(guī)范項目開發(fā)計劃風險控制計劃質量控制計劃系統(tǒng)分析文檔設計階段系統(tǒng)分析評審硬件設計流程軟件設計流程結構設計及制作流程圖軟件V1.0PCB V1.0T1工藝設計流程工藝說明T1評審,過程文件歸檔產品技術總體設計方案(包括工藝)系統(tǒng)分析評審報告軟件設計過程文檔硬件設計過程文檔結構設計過程文檔工藝設計過程文檔軟件V1.0PCB V1.0T1設計文檔工藝說明分單元測試報告設計驗證階段T1整機測試及評估軟硬件及工藝調整版本升級FTA準備修模例試報告及分析裝機報告少量裝機裝機準備裝機報告例
23、試分析報告整機測試評估報告軟件FTA版本硬件FTA版本T2FTA修模軟硬件及工藝調整版本升級CTA材料下單例試、整機測試及評估試產準備小批量試產FTAT2設計文檔試產報告例試分析報告整機測試評估報告軟件CTA版本硬件CTA版本T3CTA軟硬件結構及工藝調整版本升級量產版本確定例試、整機測試評估試產準備CTA準備第二次試產CTAT3設計文檔試產報告例試分析報告整機測試評估報告量產準備階段生產工藝準備全套文件歸檔手工下單封樣全套DVT報告工藝文件量產轉移量產轉移附錄:1、結構設計及制作流程圖 2、軟件設計流程圖 3、硬件設計流程圖附錄1. 結構設計及制作流程圖:階段流程圖表單3D模型修改結構制定結構設計進度計劃表可行評估3D模型可行性評估3D模型評估報告結構設計進度表詳細結構設計結構詳細設計結構設計進展匯報結構設計修改結構設計內部評審結構設計進度表結構設計驗證評審相關資料準備結構設計外部評審模具制作檢討working sample驗證制作working sample簽訂商務合同開模結構設計修改結構設計內部評審記錄workingsample配色表workingsample驗收報告結構BOM結構設計外部評審記錄模具制作檢討記錄表模具制作申請表模具備品清單模具制作注意事項表工裝夾具制作清單物料進度按排需求表配色方案表模具制作進度表參考文件:工業(yè)設計流程,ID設計流
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共政策與輿論導向的互動研究試題及答案
- 啟發(fā)式學習的考試試題及答案
- 公共政策的理論發(fā)展及其應用探討試題及答案
- 防疫政策與公共健康的挑戰(zhàn)試題及答案
- 指導原則信息系統(tǒng)項目管理師試題及答案
- 利用案例備考西方政治考試試題及答案
- 機電工程重點知識點及試題答案
- 機電工程新興市場的發(fā)展機會試題及答案
- 網絡工程師實踐經驗分享試題及答案
- 如何提高公共政策的信息共享機制試題及答案
- 義務教育體育與健康課程標準(2022年版)
- 項目volume3修改版-舊20.commissioning servicing manualFMZ5000火災探測和滅火系統(tǒng)控制盤安裝調試維保手冊
- 消防安全常識二十條系列掛圖清晰版
- GB/T 23227-2018卷煙紙、成形紙、接裝紙、具有間斷或連續(xù)透氣區(qū)的材料以及具有不同透氣帶的材料透氣度的測定
- GB/T 18049-2017熱環(huán)境的人類工效學通過計算PMV和PPD指數與局部熱舒適準則對熱舒適進行分析測定與解釋
- 煙草專賣管理師崗位技能標準(2023版)
- 半條被子(紅軍長征時期故事) PPT
- 公司車輛駕駛扣分違章處理證明 模板
- 一次性賠償協議書模板
- (中職)車削加工技術全冊實訓課教案完整版
- 幼兒園繪本故事:《漏》
評論
0/150
提交評論