嵌入式軟件行業(yè)報(bào)告研究分析_第1頁(yè)
嵌入式軟件行業(yè)報(bào)告研究分析_第2頁(yè)
嵌入式軟件行業(yè)報(bào)告研究分析_第3頁(yè)
嵌入式軟件行業(yè)報(bào)告研究分析_第4頁(yè)
嵌入式軟件行業(yè)報(bào)告研究分析_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式軟件行業(yè)報(bào)告研究分析嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第1頁(yè)。嵌入式軟件行業(yè)報(bào)告研究分析嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第1頁(yè)。嵌入式軟件就是嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件,它在產(chǎn)業(yè)中的關(guān)聯(lián)關(guān)系體現(xiàn)為:芯片設(shè)計(jì)制造→嵌入式系統(tǒng)軟件→嵌入式電子設(shè)備開發(fā)、制造。中文名外文名領(lǐng)

域應(yīng)

用嵌入式軟件Embeddedsoftware軟件工程嵌入式開發(fā)目錄1、嵌入式軟件的簡(jiǎn)介2、嵌入式軟件的分類3、嵌入式軟件的特點(diǎn)4、嵌入式軟件開發(fā)流程5、嵌入式軟件的調(diào)試6、嵌入式軟件的測(cè)試方法7、嵌入式軟件的體系結(jié)構(gòu)8、嵌入式軟件的發(fā)展9、嵌入式軟件的市場(chǎng)嵌入式軟件的簡(jiǎn)介:嵌入式軟件與嵌入式系統(tǒng)是密不可分的,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運(yùn)行的裝置”,就是以應(yīng)用為中心,以\o"計(jì)算機(jī)"計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用\o"程序"程序等四個(gè)部分組成,用于實(shí)現(xiàn)對(duì)其他設(shè)備的控制、監(jiān)視或管理等功能。而嵌入式軟件就是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,它也是\o"計(jì)算機(jī)軟件"計(jì)算機(jī)軟件的一種,同樣由程序及其文檔組成,可細(xì)分成系統(tǒng)軟件、支撐軟件、應(yīng)用軟件三類,是嵌入式系統(tǒng)的重要組成部分。嵌入式軟件的分類:2.1.系統(tǒng)軟件系統(tǒng)軟件控制和管理嵌入式系統(tǒng)資源,為嵌入式應(yīng)用提供支持的各種軟件,如\t"/t/30934/2015/1123/_blank"設(shè)備驅(qū)動(dòng)程序、嵌入式操作系統(tǒng)、嵌入式中間件等。2.2.應(yīng)用軟件應(yīng)用軟件是嵌入式系統(tǒng)中的上層軟件,它定義了嵌入式設(shè)備的主要功能和用途,并負(fù)責(zé)與用戶進(jìn)行交互。應(yīng)用軟件是嵌入式系統(tǒng)功能的體現(xiàn),如飛行控制軟件、手機(jī)軟件、MP3播放軟件、電子地圖軟件等,一般面向于特定的應(yīng)用領(lǐng)域。2.3.支撐軟件支撐軟件指輔助軟件開發(fā)的工具軟件,如系統(tǒng)分析設(shè)計(jì)工具、在線仿真工具、交叉編譯器、嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第2頁(yè)。源程序模擬器和配置管理工具等。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第2頁(yè)。在嵌入式系統(tǒng)當(dāng)中,系統(tǒng)軟件和應(yīng)用軟件運(yùn)行在目標(biāo)平臺(tái)的(即嵌入式設(shè)備上),而對(duì)于各種軟件開發(fā)工具來說,它們大部分都運(yùn)行在開發(fā)平臺(tái)(PC機(jī))上,運(yùn)行Windows或Linux操作系統(tǒng)。嵌入式軟件的特點(diǎn):嵌入式軟件除了具有通用軟件的一般特性,同時(shí)還具有一些與嵌入式系統(tǒng)密切相關(guān)的特點(diǎn)。3.1.規(guī)模較小在一般情況下,嵌入式系統(tǒng)的資源多是比較有限的,要求嵌入式軟件必須盡可能地精簡(jiǎn),多數(shù)的嵌入式軟件都在幾MB以內(nèi)。3.2.開發(fā)難度大嵌入式系統(tǒng)由于硬件資源的有限,使得嵌入式軟件在時(shí)間和空間上都受到嚴(yán)格的限制,需要開發(fā)人員對(duì)編程語(yǔ)言、編譯器和操作系統(tǒng)有深刻的了解,才有可能開發(fā)出運(yùn)行速度快、存儲(chǔ)空間少、維護(hù)成本低的軟件。嵌入式軟件一般都要涉及到底層軟件的開發(fā),應(yīng)用軟件的開發(fā)也是直接基于操作系統(tǒng)的,這就要求開發(fā)人員具有扎實(shí)的軟、硬件基礎(chǔ),能靈活運(yùn)用不同的開發(fā)手段和工具,具有較豐富的開發(fā)經(jīng)驗(yàn)。嵌入式軟件的運(yùn)行環(huán)境和開發(fā)環(huán)境比PC機(jī)復(fù)雜,嵌入式軟件是在目標(biāo)系統(tǒng)上運(yùn)行的,而嵌入式軟件的開發(fā)工作則是在另外的開發(fā)系統(tǒng)中進(jìn)行,當(dāng)應(yīng)用軟件調(diào)試無誤后,再把它放到目標(biāo)系統(tǒng)上去。3.3.高實(shí)時(shí)性和可靠性要求具有實(shí)時(shí)處理的能力是許多嵌入式系統(tǒng)的基本要求,實(shí)時(shí)性要求軟件對(duì)外部事件做出反應(yīng)的時(shí)間必須要快,在某些情況下還要求是確定的、可重復(fù)實(shí)現(xiàn)的,不管系統(tǒng)當(dāng)時(shí)的內(nèi)部狀態(tài)如何,都是可以預(yù)測(cè)的。同時(shí),對(duì)于事件的處理一定要在限定的時(shí)間期限之前完成,否則就有可能引起系統(tǒng)的崩潰。在航天控制、核電站、工業(yè)機(jī)器人等實(shí)時(shí)系統(tǒng)對(duì)嵌入式軟件的可靠性要求是非常高的,一旦軟件出了問題,其后果是非常嚴(yán)重的。3.4.軟件固化存儲(chǔ)為了提高系統(tǒng)的啟動(dòng)速度、執(zhí)行速度和可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片或微處理器中。嵌入式軟件開發(fā)流程:4.1.嵌入式系統(tǒng)開發(fā)概述由嵌入式系統(tǒng)本身的特性所影響,嵌入式系統(tǒng)開發(fā)與通用系統(tǒng)的開發(fā)有很大的區(qū)別。嵌入式系統(tǒng)的開發(fā)主要分為系統(tǒng)總體開發(fā)、嵌入式硬件開發(fā)和嵌入式軟件開發(fā)3大部分,其總體流程圖如圖4.15所示。在系統(tǒng)總體開發(fā)中,由于嵌入式系統(tǒng)與硬件依賴非常緊密,往往某些需求只能通過特定的硬件才能實(shí)現(xiàn),因此需要進(jìn)行處理器選型,以更好地滿足產(chǎn)品的需求。另外,對(duì)于有些硬件和軟件都可以實(shí)現(xiàn)的功能,就需要在成本和性能上做出抉擇。往往通過硬件實(shí)現(xiàn)會(huì)增加產(chǎn)品的成品,但能大大提高產(chǎn)品的性能和可靠性。再次,開發(fā)環(huán)境的選擇對(duì)于嵌入式系統(tǒng)的開發(fā)也有很大的影響。這里的開發(fā)環(huán)境包括嵌入式操作系統(tǒng)的選擇以及開發(fā)工具的選擇等。本書在4.1.5節(jié)對(duì)各種不同的嵌入式操作系統(tǒng)進(jìn)行了比較,讀者可以以此為依據(jù)進(jìn)行相關(guān)的選擇。比如,對(duì)開發(fā)成本和進(jìn)度限制較大的產(chǎn)品可以選擇嵌入式Linux,對(duì)實(shí)時(shí)性要求非常高的產(chǎn)品可以選擇Vxworks等。由于本書主要討論嵌入式軟件的應(yīng)用開發(fā),因此對(duì)硬件開發(fā)不做詳細(xì)講解,而主要討論嵌入式軟件開發(fā)的流程。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第3頁(yè)。4.2.嵌入式軟件開發(fā)概述嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第3頁(yè)。嵌入式軟件開發(fā)總體流程為圖4.15中‘軟件設(shè)計(jì)實(shí)現(xiàn)’部分所示,它同通用計(jì)算機(jī)軟件開發(fā)一樣,分為需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)、軟件實(shí)現(xiàn)和軟件測(cè)試。其中嵌入式軟件需求分析與硬件的需求分析合二為一,故沒有分開畫出。由于在嵌入式軟件開發(fā)的工具非常多,為了更好地幫助讀者選擇開發(fā)工具,下面首先對(duì)嵌入式軟件開發(fā)過程中所使用的工具做一簡(jiǎn)單歸納。嵌入式軟件的開發(fā)工具根據(jù)不同的開發(fā)過程而劃分,比如在需求分析階段,可以選擇IBM的RationalRose等軟件,而在程序開發(fā)階段可以采用CodeWarrior(下面要介紹的ADS的一個(gè)工具)等,在調(diào)試階段所用的Multi-ICE等。同時(shí),不同的嵌入式操作系統(tǒng)往往會(huì)有配套的開發(fā)工具,比如Vxworks有集成開發(fā)環(huán)境Tornado,WindowsCE的集成開發(fā)環(huán)境WindowsCEPlatform等。此外,不同的處理器可能還有對(duì)應(yīng)的開發(fā)工具,比如ARM的常用集成開發(fā)工具ADS、IAR和RealView等。在這里,大多數(shù)軟件都有比較高的使用費(fèi)用,但也可以大大加快產(chǎn)品的開發(fā)進(jìn)度,用戶可以根據(jù)需求自行選擇。圖4.16是嵌入式開發(fā)的不同階段的常用軟件。圖4.15嵌入式系統(tǒng)開發(fā)流程圖嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第4頁(yè)。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第4頁(yè)。圖4.16嵌入式開發(fā)不同階段的常用軟件嵌入式系統(tǒng)的軟件開發(fā)與通常軟件開發(fā)的區(qū)別主要在于軟件實(shí)現(xiàn)部分,其中又可以分為編譯和調(diào)試兩部分,下面分別對(duì)這兩部分進(jìn)行講解。4.2.1交叉編譯嵌入式軟件開發(fā)所采用的編譯為交叉編譯。所謂交叉編譯就是在一個(gè)平臺(tái)上生成可以在另一個(gè)平臺(tái)上執(zhí)行的代碼。在第3章中已經(jīng)提到,編譯的最主要的工作就在將程序轉(zhuǎn)化成運(yùn)行該程序的CPU所能識(shí)別的機(jī)器代碼,由于不同的體系結(jié)構(gòu)有不同的指令系統(tǒng)。因此,不同的CPU需要有相應(yīng)的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯成不同CPU的對(duì)應(yīng)可執(zhí)行二進(jìn)制文件。要注意的是,編譯器本身也是程序,也要在與之對(duì)應(yīng)的某一個(gè)CPU平臺(tái)上運(yùn)行。嵌入式系統(tǒng)交叉編譯環(huán)境如圖4.17所示。這里一般將進(jìn)行交叉編譯的主機(jī)稱為宿主機(jī),也就是普通的通用PC,而將程序?qū)嶋H的運(yùn)行環(huán)境稱為目標(biāo)機(jī),也就是嵌入式系統(tǒng)環(huán)境。由于一般通用計(jì)算機(jī)擁有非常豐富的系統(tǒng)資源、使用方便的集成開發(fā)環(huán)境和調(diào)試工具等,而嵌入式系統(tǒng)的系統(tǒng)資源非常緊缺,無法在其上運(yùn)行相關(guān)的編譯工具,因此,嵌入式系統(tǒng)的開發(fā)需要借助宿主機(jī)(通用計(jì)算機(jī))來編譯出目標(biāo)機(jī)的可執(zhí)行代碼。由于編譯的過程包括編譯、鏈接等幾個(gè)階段,因此,嵌入式的交叉編譯也包括交叉編譯、交叉鏈接等過程,通常ARM的交叉編譯器為arm-elf-gcc、arm-linux-gcc等,交叉鏈接器為arm-elf-ld、arm-linux-ld等,交叉編譯過程如圖4.18所示。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第5頁(yè)。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第5頁(yè)。4.2.2交叉調(diào)試嵌入式軟件經(jīng)過編譯和鏈接后即進(jìn)入調(diào)試階段,調(diào)試是軟件開發(fā)過程中必不可少的一個(gè)環(huán)節(jié),嵌入式軟件開發(fā)過程中的交叉調(diào)試與通用軟件開發(fā)過程中的調(diào)試方式有很大的差別。在常見軟件開發(fā)中,調(diào)試器與被調(diào)試的程序往往運(yùn)行在同一臺(tái)計(jì)算機(jī)上,調(diào)試器是一個(gè)單獨(dú)運(yùn)行著的進(jìn)程,它通過操作系統(tǒng)提供的調(diào)試接口來控制被調(diào)試的進(jìn)程。而在嵌入式軟件開發(fā)中,調(diào)試時(shí)采用的是在宿主機(jī)和目標(biāo)機(jī)之間進(jìn)行的交叉調(diào)試,調(diào)試器仍然運(yùn)行在宿主機(jī)的通用操作系統(tǒng)之上,但被調(diào)試的進(jìn)程卻是運(yùn)行在基于特定硬件平臺(tái)的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進(jìn)程通過串口或者網(wǎng)絡(luò)進(jìn)行通信,調(diào)試器可以控制、訪問被調(diào)試進(jìn)程,讀取被調(diào)試進(jìn)程的當(dāng)前狀態(tài),并能夠改變被調(diào)試進(jìn)程的運(yùn)行狀態(tài)。嵌入式系統(tǒng)的交叉調(diào)試有多種方法,主要可分為軟件方式和硬件方式兩種。它們一般都具有如下一些典型特點(diǎn)。n調(diào)試器和被調(diào)試進(jìn)程運(yùn)行在不同的機(jī)器上,調(diào)試器運(yùn)行在PC機(jī)(宿主機(jī)),而被調(diào)試的進(jìn)程則運(yùn)行在各種專業(yè)調(diào)試板上(目標(biāo)板)。n調(diào)試器通過某種通信方式(串口、并口、網(wǎng)絡(luò)、JTAG等)控制被調(diào)試進(jìn)程。n在目標(biāo)機(jī)上一般會(huì)具備某種形式的調(diào)試代理,它負(fù)責(zé)與調(diào)試器共同配合完成對(duì)目標(biāo)機(jī)上運(yùn)行著的進(jìn)程的調(diào)試。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件\t"/t/9642/2016/1123/_blank"設(shè)備,也可能是某些專門的調(diào)試軟件(如gdbserver)。n目標(biāo)機(jī)可能是某種形式的系統(tǒng)仿真器,通過在宿主機(jī)上運(yùn)行目標(biāo)機(jī)的仿真軟件,整個(gè)調(diào)試過程可以在一臺(tái)計(jì)算機(jī)上運(yùn)行。此時(shí)物理上雖然只有一臺(tái)計(jì)算機(jī),但邏輯上仍然存在著宿主機(jī)和目標(biāo)機(jī)的區(qū)別。嵌入式軟件的調(diào)試:5.1.軟件方式軟件調(diào)試主要是通過插入調(diào)試樁的方式來進(jìn)行的。調(diào)試樁方式進(jìn)行調(diào)試是通過目標(biāo)操作系統(tǒng)和調(diào)試器內(nèi)分別加入某些功能模塊,二者互通信息來進(jìn)行調(diào)試。該方式的典型調(diào)試器有g(shù)db調(diào)試器。gdb的交叉調(diào)試器分為GdbServer和GdbClient,其中的GdbServer就作為調(diào)試樁在安裝在目標(biāo)板上,GdbClient就是駐于本地的gdb調(diào)試器。它們的調(diào)試原理圖如圖4.19所示。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第6頁(yè)。gdb調(diào)試的工作流程。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第6頁(yè)。n首先,建立調(diào)試器(本地gdb)與目標(biāo)操作系統(tǒng)的通信連接,可通過串口、網(wǎng)卡、并口等多種方式。n然后,在目標(biāo)機(jī)上開啟GdbServer進(jìn)程,并監(jiān)聽對(duì)應(yīng)端口。n在宿主機(jī)上運(yùn)行調(diào)試器gdb,這時(shí),gdb就會(huì)自動(dòng)尋找遠(yuǎn)端的通信進(jìn)程,也就是GdbServer的所在進(jìn)程。n在宿主機(jī)上的gdb通過GdbServer請(qǐng)求對(duì)目標(biāo)機(jī)上的程序發(fā)出控制命令。這時(shí),GdbServer將請(qǐng)求轉(zhuǎn)化為程序的地址空間或目標(biāo)平臺(tái)的某些寄存器的訪問,這對(duì)于沒有虛擬存儲(chǔ)器的簡(jiǎn)單的嵌入式操作系統(tǒng)而言,是十分容易的。nGdbServer把目標(biāo)操作系統(tǒng)的所有異常處理轉(zhuǎn)向通信模塊,并告知宿主機(jī)上gdb當(dāng)前有異常。n宿主機(jī)上的gdb向用戶顯示被調(diào)試程序產(chǎn)生了哪一類異常。這樣就完成了調(diào)試的整個(gè)過程。這個(gè)方案的實(shí)質(zhì)是用軟件接管目標(biāo)機(jī)的全部異常處理及部分中斷處理,并在其中插入調(diào)試端口通信模塊,與主機(jī)的調(diào)試器進(jìn)行交互。但是它只能在目標(biāo)機(jī)系統(tǒng)初始化完畢、調(diào)試通信端口初始化完成后才能起作用,因此,一般只能用于調(diào)試運(yùn)行于目標(biāo)操作系統(tǒng)之上的應(yīng)用程序,而不宜用來調(diào)試目標(biāo)操作系統(tǒng)的內(nèi)核代碼及啟動(dòng)代碼。而且,它必須改變目標(biāo)操作系統(tǒng),因此,也就多了一個(gè)不用于正式發(fā)布的調(diào)試版。5.2.硬件調(diào)試相對(duì)于軟件調(diào)試而言,使用硬件調(diào)試器可以獲得更強(qiáng)大的調(diào)試功能和更優(yōu)秀的調(diào)試性能。硬件調(diào)試器的基本原理是通過仿真硬件的執(zhí)行過程,讓開發(fā)者在調(diào)試時(shí)可以隨時(shí)了解到系統(tǒng)的當(dāng)前執(zhí)行情況。目前嵌入式系統(tǒng)開發(fā)中最常用到的硬件調(diào)試器是ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。n采用ROMMonitor方式進(jìn)行交叉調(diào)試需要在宿主機(jī)上運(yùn)行調(diào)試器,在宿主機(jī)上運(yùn)行ROM監(jiān)視器(ROMMonitor)和被調(diào)試程序,宿主機(jī)通過調(diào)試器與目標(biāo)機(jī)上的ROM監(jiān)視器遵循遠(yuǎn)程調(diào)試協(xié)議建立通信連接。ROM監(jiān)視器可以是一段運(yùn)行在目標(biāo)機(jī)ROM上的可執(zhí)行程序,也可以是一個(gè)專門的硬件調(diào)試設(shè)備,它負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行情況,能夠與宿主機(jī)端的調(diào)試器一同完成對(duì)應(yīng)用程序的調(diào)試。在使用這種調(diào)試方式時(shí),被調(diào)試程序首先通過ROM監(jiān)視器下載到目標(biāo)機(jī),然后在ROM監(jiān)視器的監(jiān)控下完成調(diào)試。優(yōu)點(diǎn):ROM監(jiān)視器功能強(qiáng)大,能夠完成設(shè)置斷點(diǎn)、單步執(zhí)行、查看寄存器、修改內(nèi)存空間等各項(xiàng)調(diào)試功能。確定:同軟件調(diào)試一樣,使用ROM監(jiān)視器目標(biāo)機(jī)和宿主機(jī)必須建立通信連接。其原理圖如圖4.20所示。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第7頁(yè)。n采用ROMEmulator方式進(jìn)行交叉調(diào)試時(shí)需要使用ROM仿真器,并且它通常被插入到目標(biāo)機(jī)上的ROM插槽中,專門用于仿真目標(biāo)機(jī)上的ROM芯片。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第7頁(yè)。在使用這種調(diào)試方式時(shí),被調(diào)試程序首先下載到ROM仿真器中,因此等效于下載到目標(biāo)機(jī)的ROM芯片上,然后在ROM仿真器中完成對(duì)目標(biāo)程序的調(diào)試。優(yōu)點(diǎn):避免了每次修改程序后都必須重新燒寫到目標(biāo)機(jī)的ROM中。缺點(diǎn):ROM仿真器本身比較昂貴,功能相對(duì)來講又比較單一,只適應(yīng)于某些特定場(chǎng)合。其原理如圖4.21所示。n采用In-CircuitEmulator(ICE)方式進(jìn)行交叉調(diào)試時(shí)需要使用在線仿真器,它是目前最為有效的嵌入式系統(tǒng)的調(diào)試手段。它是仿照目標(biāo)機(jī)上的CPU而專門設(shè)計(jì)的硬件,可以完全仿真處理器芯片的行為。仿真器與目標(biāo)板可以通過仿真頭連接,與宿主機(jī)可以通過串口、并口、網(wǎng)線或USB口等連接方式。由于仿真器自成體系,所以調(diào)試時(shí)既可以連接目標(biāo)板,也可以不連接目標(biāo)板。在線仿真器提供了非常豐富的調(diào)試功能。在使用在線仿真器進(jìn)行調(diào)試的過程中,可以按順序單步執(zhí)行,也可以倒退執(zhí)行,還可以實(shí)時(shí)查看所有需要的數(shù)據(jù),從而給調(diào)試過程帶來了很多的便利。嵌入式系統(tǒng)應(yīng)用的一個(gè)顯著特點(diǎn)是與現(xiàn)實(shí)世界中的硬件直接相關(guān),并存在各種異變和事先未知的變化,從而給微處理器的指令執(zhí)行帶來各種不確定因素,這種不確定性在目前情況下只有通過在線仿真器才有可能發(fā)現(xiàn)。優(yōu)點(diǎn):功能強(qiáng)大,軟硬件都可做到完全實(shí)時(shí)在線調(diào)試。缺點(diǎn):價(jià)格昂貴。其原理如圖4.22所示。n采用In-CircuitDebugger(ICD)方式進(jìn)行交叉調(diào)試時(shí)需要使用在線調(diào)試器。由于ICE的價(jià)格非常昂貴,并且每種CPU都需要一種與之對(duì)應(yīng)的ICE,使得開發(fā)成本非常高。一個(gè)比較好的解決辦法是讓CPU直接在其內(nèi)部實(shí)現(xiàn)調(diào)試功能,并通過在開發(fā)板上引出的調(diào)試端口發(fā)送調(diào)試命令和接收調(diào)試信息,完成調(diào)試過程。如使用非常廣泛的ARM處理器的JTAG端口技術(shù)就是由此而誕生的。JTAG是1985年指定的檢測(cè)PCB和IC芯片的一個(gè)標(biāo)準(zhǔn)。1990年被修改成為IEEE的一個(gè)標(biāo)準(zhǔn),即IEEE1149.1。JTAG標(biāo)準(zhǔn)所采用的主要技術(shù)為邊界掃描技術(shù),它的基本思想就是在靠近芯片嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第8頁(yè)。的輸入輸出管腳上增加一個(gè)移位寄存器單元。因?yàn)檫@些移位寄存器單元都分布在芯片的邊界上(周圍),所以被稱為邊界掃描寄存器(Boundary-ScanRegisterCell)。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第8頁(yè)。當(dāng)芯片處于調(diào)試狀態(tài)時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察和控制。對(duì)于芯片的輸入管腳,可通過與之相連的邊界掃描寄存器單元把信號(hào)(數(shù)據(jù))加載到該管腳中去;對(duì)于芯片的輸出管腳,可以通過與之相連的邊界掃描寄存器單元‘捕獲’(CAPTURE)該管腳的輸出信號(hào)。這樣,邊界掃描寄存器提供了一個(gè)便捷的方式用于觀測(cè)和控制所需要調(diào)試的芯片?,F(xiàn)在較為高檔的微處理器都帶有JTAG接口,包括ARM7、ARM9、StrongARM、DSP等,通過JTAG接口可以方便地對(duì)目標(biāo)系統(tǒng)進(jìn)行測(cè)試,同時(shí),還可以實(shí)現(xiàn)Flash編程,這是非常受歡迎的。優(yōu)點(diǎn):連接簡(jiǎn)單,成本低。缺點(diǎn):特性受制于芯片廠商。其原理如圖4.23所示。嵌入式軟件的測(cè)試方法:隨著制造行業(yè)的再一次崛起,嵌入式軟件目前在軟件行業(yè)中越來越多,2004年軟件行業(yè)最火爆的三個(gè)項(xiàng)目是:嵌入式開發(fā),軟件培訓(xùn)以及軟件外包。由于嵌入式軟件與其他產(chǎn)品息息相關(guān),這給嵌入式軟件的測(cè)試工作帶來了極大的困難,軟件的測(cè)試工作不能夠等程序燒到或者固化到芯片中才開始進(jìn)行測(cè)試,這就太晚了,本文結(jié)合自己的一些經(jīng)驗(yàn)提出自己的看法,希望大家一起討論。6.1.搞好開發(fā)前的原型設(shè)計(jì)原型開發(fā)目前在開放流程中受到了更多的重視,同樣嵌入式軟件也是非常需要的。比如說一個(gè)錄音機(jī)版面的設(shè)計(jì),可以定義好版面上面的按鍵以及每個(gè)按鍵的功能。然后畫出狀態(tài)轉(zhuǎn)化圖,寫清楚每個(gè)按鍵何時(shí)可以觸發(fā),觸發(fā)后由哪個(gè)狀態(tài)轉(zhuǎn)入別的其他狀態(tài)。原型設(shè)計(jì)好了,組織專家,工程師進(jìn)行評(píng)審,盡可能多的找出原型中不合理需要改進(jìn)的地方;改進(jìn)以后,有必要可以進(jìn)行再一次的評(píng)審工作。每一次評(píng)審工作需要記錄評(píng)審建議是否需要解決?如何解決以及實(shí)際解決情況。6.2.進(jìn)行設(shè)計(jì)和開發(fā)工作設(shè)計(jì)和開發(fā)工作需要設(shè)立里程碑。每個(gè)里程碑結(jié)束前都需要進(jìn)行評(píng)審工作。由于嵌入式軟件的運(yùn)行環(huán)境不同,受到很大的限制,所以在進(jìn)行開發(fā)之前需要進(jìn)行編程規(guī)范工作,編碼的時(shí)候需要嚴(yán)格按照編碼要求進(jìn)行工作,每一個(gè)條款都需要認(rèn)真執(zhí)行和審查?,F(xiàn)在業(yè)界提供許多關(guān)于嵌入式軟件開發(fā)的標(biāo)準(zhǔn),大家可以通過網(wǎng)站搜索,最好能夠購(gòu)買業(yè)界一些比較著名的標(biāo)準(zhǔn)。目前市場(chǎng)上也提供許多關(guān)于代碼檢驗(yàn)的工具。為什么一直提出代碼編碼規(guī)范?這是因?yàn)榍度胧杰浖馁|(zhì)量與代碼規(guī)范是十分重要的。舉個(gè)例子,著名的阿里亞火箭失事,專家進(jìn)行詳細(xì)嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第9頁(yè)。的調(diào)查工作,最后發(fā)現(xiàn)問題出在代碼上。代碼是符合標(biāo)準(zhǔn)C語(yǔ)言的,但是在運(yùn)行過程中由于程序員將一個(gè)長(zhǎng)整形變量賦給了一個(gè)短整形變量,造成內(nèi)存溢出,這是導(dǎo)致火箭失事的關(guān)鍵所在。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第9頁(yè)。(int8a;int32b;…a=b;)6.3.代碼測(cè)試當(dāng)程序開發(fā)完畢,需要進(jìn)行測(cè)試工作,但是在程序燒入或固化芯片之前如何進(jìn)行測(cè)試呢?這里介紹一種方法:比如程序時(shí)使用C語(yǔ)言進(jìn)行開發(fā)的,請(qǐng)將所有的操作都封入在函數(shù)中,函數(shù)的定義都在相應(yīng)的頭文件中定義(。h),然后設(shè)計(jì)測(cè)試用例,書寫測(cè)試代碼,測(cè)試代碼包含相應(yīng)頭文件,可以對(duì)函數(shù)進(jìn)行檢測(cè)。測(cè)試案例往往分為兩類:一種是功能測(cè)試,主要測(cè)試函數(shù)的功能;另外一種是錯(cuò)誤參數(shù)測(cè)試,主要檢查程序?qū)M(jìn)行錯(cuò)誤參數(shù)進(jìn)行檢驗(yàn)。6.4.功能測(cè)試這種測(cè)試的運(yùn)行往往需要通過仿真器輔助完成,比如類似錄音機(jī)軟件程序,分別測(cè)試播放,加大(減小)音量,停止,暫停(取消暫停),快速前進(jìn),快速后退,錄音對(duì)應(yīng)的功能是否能夠正常運(yùn)行。6.5.錯(cuò)誤測(cè)試主要測(cè)試函數(shù)在調(diào)用參數(shù)無效的時(shí)候,系統(tǒng)是否會(huì)按照規(guī)定返回正確的錯(cuò)誤代碼。比如functiontest(intTid)測(cè)試的時(shí)候給出一個(gè)錯(cuò)誤的序列號(hào)(Tid),看程序是否返回正確的錯(cuò)誤代碼。對(duì)于函數(shù)functiontest1(intt)需要進(jìn)行特出的處理t定義為1-100我們可以按照邊界值法和等價(jià)分類法進(jìn)行測(cè)試上邊界:-1,0,1下邊界:99,100,101中邊界:50所以測(cè)試用例集合為(-1,0,1,50,99,100,101),其中-1,101為錯(cuò)誤測(cè)試用例,其他為正確測(cè)試用例6.6.功能組合測(cè)試在進(jìn)行完功能測(cè)試后,我們可以進(jìn)行功能組和測(cè)試,還是拿錄音機(jī)程序做個(gè)例子。我們可以定義將音量增加到10,快速前進(jìn),檢查音量,看是否還是為10;播放,暫停,試圖調(diào)整音量,檢查調(diào)整音量的功能是否可以被成功執(zhí)行。6.7.燒入固化測(cè)試當(dāng)以上測(cè)試都通過后可以將程序燒入芯片或者固化,進(jìn)行最后在實(shí)際環(huán)境中進(jìn)行測(cè)試工作。嵌入式軟件的體系結(jié)構(gòu):嵌入式軟件的體系結(jié)構(gòu)圖如圖所示,最底層的是嵌入式硬件系統(tǒng),包括嵌入式微處理器、存儲(chǔ)器、鍵盤、LCD顯示器等輸入/輸出設(shè)備。在硬件層之上的是設(shè)備驅(qū)動(dòng)層,它負(fù)責(zé)與硬件直接打交道,并為操作系統(tǒng)層軟件提供所需的驅(qū)動(dòng)支持。操作系統(tǒng)層可以分為基本部分和擴(kuò)展部分,基本部分是操作系統(tǒng)的核心,負(fù)責(zé)整個(gè)系統(tǒng)的任務(wù)調(diào)度、存儲(chǔ)管理、時(shí)鐘管理和中斷管理等功能;擴(kuò)展部分為用戶提供網(wǎng)絡(luò)、文件系統(tǒng)、圖形用戶界面GUI、數(shù)據(jù)庫(kù)等擴(kuò)展功能,擴(kuò)展部分的內(nèi)容可以根據(jù)系統(tǒng)的需要來進(jìn)行剪裁。在操作系統(tǒng)的上面是一些中間件軟件。最上層是網(wǎng)絡(luò)瀏覽器、MP3播放器、文本編輯器、電子郵件客戶端、電子游戲等各種應(yīng)用軟件,實(shí)現(xiàn)嵌入式系統(tǒng)的功能。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第10頁(yè)。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第10頁(yè)。嵌入式軟件的發(fā)展:進(jìn)入90年代以來,以計(jì)算機(jī)技術(shù)、通信技術(shù)和軟件技術(shù)為核心的信息技術(shù)取得了更加迅猛的發(fā)展,各種裝備與設(shè)備上嵌入式計(jì)算與系統(tǒng)的廣泛應(yīng)用大大地推動(dòng)了行業(yè)的滲透性應(yīng)用。嵌入式系統(tǒng)被描述為:“以應(yīng)用為中心、軟件硬件可裁剪的、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格綜合性要求的專用計(jì)算機(jī)系統(tǒng)”,由嵌入式硬件和嵌入式軟件兩部分組成。硬件是支撐,軟件是靈魂,幾乎所有的嵌入式產(chǎn)品中都需要嵌入式軟件來提供靈活多樣、而且應(yīng)用特制的功能。由于嵌入式系統(tǒng)應(yīng)用廣泛,嵌入式軟件在整個(gè)軟件產(chǎn)業(yè)中占據(jù)了重要地位,并受到世界各國(guó)的廣泛關(guān)注;如今已成為信息產(chǎn)業(yè)中最為耀眼的“明星”之一。嵌入式軟件產(chǎn)業(yè)發(fā)展迅猛,已成為軟件體系的重要組成部分。嵌入式系統(tǒng)產(chǎn)品正不斷滲透各個(gè)行業(yè),嵌入式軟件作為包含在這些硬件產(chǎn)品中的特殊軟件形態(tài),其產(chǎn)業(yè)增幅不斷加大,而且在整個(gè)軟件產(chǎn)業(yè)的比重日趨提高。2003年全球嵌入式軟件市場(chǎng)規(guī)模達(dá)到346億美元,2003年中國(guó)市場(chǎng)規(guī)模達(dá)到188億元,預(yù)計(jì)到2006年嵌入式軟件市場(chǎng)規(guī)模將突破400億元大關(guān),2003-2006年均復(fù)合增長(zhǎng)率將達(dá)到30%。新一輪汽車、通訊、信息電器、醫(yī)療、軍事等行業(yè)的巨大的智能化裝備需求拉動(dòng)了嵌入式軟件及系統(tǒng)的發(fā)展。同傳統(tǒng)的通用計(jì)算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)面向特定應(yīng)用領(lǐng)域,根據(jù)應(yīng)用需求定制開發(fā),并隨著智能化產(chǎn)品的普遍需求滲透到各行各業(yè)。隨著硬件技術(shù)的不斷革新,硬件平臺(tái)的處理能力不斷增強(qiáng),硬件成本不斷下降,嵌入式軟件已成為產(chǎn)品的數(shù)字化改造、智能化增值的關(guān)鍵性、帶動(dòng)性技術(shù)。SOC技術(shù)是微電子技術(shù)發(fā)展的一個(gè)新的里程碑,并已成為當(dāng)今超大規(guī)模IC的發(fā)展趨勢(shì),為IC產(chǎn)業(yè)提供前所未有的廣闊市場(chǎng)和難得的發(fā)展機(jī)遇。迅猛發(fā)展的SOC工業(yè)再次地推進(jìn)了嵌入式軟件與硬件系統(tǒng)進(jìn)一步融合嵌入,嵌入式軟件是其靈魂與核心。SOC技術(shù)的出現(xiàn),改變了傳統(tǒng)嵌入式系統(tǒng)的設(shè)計(jì)觀念,基于IP構(gòu)件庫(kù)的設(shè)計(jì)技術(shù)將成為嵌入式系統(tǒng)設(shè)計(jì)的主流;IP構(gòu)件庫(kù)技術(shù)正在造就一個(gè)新興的軟件行業(yè)。目前的因特網(wǎng)技術(shù)只聯(lián)接了5%左右的計(jì)算裝置,大量的嵌入式設(shè)備急需網(wǎng)絡(luò)連接來提升其服務(wù)能力和應(yīng)用價(jià)值。同時(shí),以人為中心的普適計(jì)算技術(shù)正推動(dòng)新一輪的信息技術(shù)的革命。計(jì)算無所不在,嵌入式設(shè)備將以各種形態(tài)分布在人類的生存環(huán)境中,提供更加人性化、自然化的服務(wù)。互聯(lián)網(wǎng)的"深度"聯(lián)網(wǎng)和普適計(jì)算"縱向"普及所帶來的計(jì)算挑戰(zhàn),將推動(dòng)嵌入式軟件技術(shù)向"縱深"發(fā)展,催生了新型嵌入式軟件技術(shù)。近十年來,嵌入式操作系統(tǒng)得到飛速的發(fā)展:微處理器從8位到16位、32位甚至64位;嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第11頁(yè)。從支持單一品種的CPU芯片到支持多品種的;從單一內(nèi)核到除了內(nèi)核外還提供其他功能模塊,如文件系統(tǒng),TCP/IP網(wǎng)絡(luò)系統(tǒng),窗口圖形系統(tǒng)等;并形成包括嵌入式操作系統(tǒng)、中間平臺(tái)軟件在內(nèi)的嵌入式軟件體系。硬件技術(shù)的進(jìn)步,推動(dòng)了嵌入式系統(tǒng)軟件向運(yùn)行速度更快、支持功能更強(qiáng)、應(yīng)用開發(fā)更便捷的方向不斷發(fā)展。嵌入式軟件行業(yè)報(bào)告研究分析全文共12頁(yè),當(dāng)前為第11頁(yè)。隨著嵌入式系統(tǒng)應(yīng)用的不斷深入和產(chǎn)業(yè)化程度的不斷提升,新的應(yīng)用環(huán)境和產(chǎn)業(yè)化需求對(duì)嵌入式系統(tǒng)軟件提出了更加嚴(yán)格的要求。在新需求的推動(dòng)下,嵌入式操作系統(tǒng)內(nèi)核不僅需要具有微型化、高實(shí)時(shí)性等基本特征,還將向高可信性、自適應(yīng)性、構(gòu)件組件化方向發(fā)展;支撐開發(fā)環(huán)境將更加集成化、自動(dòng)化、人性化;系統(tǒng)軟件對(duì)無線通信和能源管理的功能支持將日益重要。行業(yè)性開放系統(tǒng)正日趨流行。統(tǒng)一的行業(yè)標(biāo)準(zhǔn)具有開放、設(shè)計(jì)技術(shù)共享、軟硬件嵌

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論