嵌入式系統基礎之:嵌入式軟件開(kāi)發(fā)流程
4.3嵌入式軟件開(kāi)發(fā)流程
4.3.1嵌入式系統開(kāi)發(fā)概述
由嵌入式系統本身的特性所影響,嵌入式系統開(kāi)發(fā)與通用系統的開(kāi)發(fā)有很大的區別。嵌入式系統的開(kāi)發(fā)主要分為系統總體開(kāi)發(fā)、嵌入式硬件開(kāi)發(fā)和嵌入式軟件開(kāi)發(fā)3大部分,其總體流程圖如圖4.15所示。
在系統總體開(kāi)發(fā)中,由于嵌入式系統與硬件依賴(lài)非常緊密,往往某些需求只能通過(guò)特定的硬件才能實(shí)現,因此需要進(jìn)行處理器選型,以更好地滿(mǎn)足產(chǎn)品的需求。另外,對于有些硬件和軟件都可以實(shí)現的功能,就需要在成本和性能上做出抉擇。往往通過(guò)硬件實(shí)現會(huì )增加產(chǎn)品的成品,但能大大提高產(chǎn)品的性能和可靠性。
再次,開(kāi)發(fā)環(huán)境的選擇對于嵌入式系統的開(kāi)發(fā)也有很大的影響。這里的開(kāi)發(fā)環(huán)境包括嵌入式操作系統的選擇以及開(kāi)發(fā)工具的選擇等。本書(shū)在4.1.5節對各種不同的嵌入式操作系統進(jìn)行了比較,讀者可以以此為依據進(jìn)行相關(guān)的選擇。比如,對開(kāi)發(fā)成本和進(jìn)度限制較大的產(chǎn)品可以選擇嵌入式Linux,對實(shí)時(shí)性要求非常高的產(chǎn)品可以選擇Vxworks等。
由于本書(shū)主要討論嵌入式軟件的應用開(kāi)發(fā),因此對硬件開(kāi)發(fā)不做詳細講解,而主要討論嵌入式軟件開(kāi)發(fā)的流程。
4.3.2嵌入式軟件開(kāi)發(fā)概述
嵌入式軟件開(kāi)發(fā)總體流程為圖4.15中“軟件設計實(shí)現”部分所示,它同通用計算機軟件開(kāi)發(fā)一樣,分為需求分析、軟件概要設計、軟件詳細設計、軟件實(shí)現和軟件測試。其中嵌入式軟件需求分析與硬件的需求分析合二為一,故沒(méi)有分開(kāi)畫(huà)出。
由于在嵌入式軟件開(kāi)發(fā)的工具非常多,為了更好地幫助讀者選擇開(kāi)發(fā)工具,下面首先對嵌入式軟件開(kāi)發(fā)過(guò)程中所使用的工具做一簡(jiǎn)單歸納。
嵌入式軟件的開(kāi)發(fā)工具根據不同的開(kāi)發(fā)過(guò)程而劃分,比如在需求分析階段,可以選擇IBM的RationalRose等軟件,而在程序開(kāi)發(fā)階段可以采用CodeWarrior(下面要介紹的ADS的一個(gè)工具)等,在調試階段所用的Multi-ICE等。同時(shí),不同的嵌入式操作系統往往會(huì )有配套的開(kāi)發(fā)工具,比如Vxworks有集成開(kāi)發(fā)環(huán)境Tornado,WindowsCE的集成開(kāi)發(fā)環(huán)境WindowsCEPlatform等。此外,不同的處理器可能還有對應的開(kāi)發(fā)工具,比如ARM的常用集成開(kāi)發(fā)工具ADS、IAR和RealView等。在這里,大多數軟件都有比較高的使用費用,但也可以大大加快產(chǎn)品的開(kāi)發(fā)進(jìn)度,用戶(hù)可以根據需求自行選擇。圖4.16是嵌入式開(kāi)發(fā)的不同階段的常用軟件。
圖4.15嵌入式系統開(kāi)發(fā)流程圖
圖4.16嵌入式開(kāi)發(fā)不同階段的常用軟件
嵌入式系統的軟件開(kāi)發(fā)與通常軟件開(kāi)發(fā)的區別主要在于軟件實(shí)現部分,其中又可以分為編譯和調試兩部分,下面分別對這兩部分進(jìn)行講解。
1.交叉編譯
嵌入式軟件開(kāi)發(fā)所采用的編譯為交叉編譯。所謂交叉編譯就是在一個(gè)平臺上生成可以在另一個(gè)平臺上執行的代碼。在第3章中已經(jīng)提到,編譯的最主要的工作就在將程序轉化成運行該程序的CPU所能識別的機器代碼,由于不同的體系結構有不同的指令系統。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同CPU的對應可執行二進(jìn)制文件。要注意的是,編譯器本身也是程序,也要在與之對應的某一個(gè)CPU平臺上運行。嵌入式系統交叉編譯環(huán)境如圖4.17所示。
| 與交叉編譯相對應,平時(shí)常用的編譯稱(chēng)為本地編譯。 |
評論