嵌入式軟件開發(fā)教程第二章課件.ppt_第1頁
嵌入式軟件開發(fā)教程第二章課件.ppt_第2頁
嵌入式軟件開發(fā)教程第二章課件.ppt_第3頁
嵌入式軟件開發(fā)教程第二章課件.ppt_第4頁
嵌入式軟件開發(fā)教程第二章課件.ppt_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 嵌入式系統(tǒng)的設(shè)計方法,2.1 嵌入式系統(tǒng)的一般設(shè)計流程,一、單片機系統(tǒng),圖2.1 單片機系統(tǒng)的開發(fā)流程,單片機系統(tǒng)主要用于實現(xiàn)相對簡單的控制,因此系統(tǒng)核心部件集成在一塊芯片單片機上,再在單片機的外圍加入一些接口電路即可。 單片機系統(tǒng)設(shè)計相對比較簡單,軟件部分不需要嵌入式操作系統(tǒng)的支持,只需采用匯編語言編寫針對特定應(yīng)用的程序即可。,二、嵌入式處理器系統(tǒng),圖2.2 嵌入式處理器系統(tǒng)開發(fā)流程,嵌入式處理器系統(tǒng)往往包含CPU、內(nèi)存和豐富的外部接口,其開發(fā)過程類似在PC機上開發(fā)應(yīng)用程序。 開發(fā)流程的第一步是選擇嵌入式處理器和硬件平臺。 軟件部分一般包含操作系統(tǒng),開發(fā)人員基于此編寫相應(yīng)的應(yīng)用程序即

2、可,這可大大地簡化開發(fā)過程,提高系統(tǒng)的穩(wěn)定性。,二、嵌入式處理器系統(tǒng),開發(fā)方式,嵌入式處理器系統(tǒng)的開發(fā)過程一般包括以下幾個步驟: 源代碼編寫:編寫源C/C+及匯編程序; 程序編譯:通過專用編譯器編譯程序; 軟件仿真調(diào)試:在SDK中仿真軟件運行情況; 程序下載:通過JTAG/USB/UART等方式下載到目標機; 軟硬件測試、調(diào)試:通過JTAG等方式聯(lián)合調(diào)試程序; 下載固化:程序無誤,下載到目標板。,二、嵌入式處理器系統(tǒng),嵌入式處理器系統(tǒng)設(shè)計的關(guān)鍵問題,(1)嵌入式處理器的選型,夠用 適用 成本 功耗 軟件開發(fā)工具 是否內(nèi)置調(diào)試工具 是否提供評估板,處理器的選型直接影響存儲器、外設(shè)的選擇。一般從以

3、下幾個因素考慮:,(2)操作系統(tǒng)的選擇,操作系統(tǒng)的移植 操作系統(tǒng)的內(nèi)存要求 操作系統(tǒng)的實時性 支持的開發(fā)工具 操作系統(tǒng)的可裁剪性 開發(fā)人員是否熟悉此操作系統(tǒng)及其提供的API 操作系統(tǒng)是否提供硬件的驅(qū)動程序,如網(wǎng)卡等,從八十年代起,國際上就有一些IT組織、公司,開始致力于嵌入式操作系統(tǒng)的研發(fā),現(xiàn)已涌現(xiàn)了一批優(yōu)秀的操作系統(tǒng)。如何從眾多的嵌入式操作系統(tǒng)中選取合適的操作系統(tǒng)?可以考查以下幾個方面:,人們在選擇編程語言時往往具有很大的隨意性。對價格、獲取方便性等因素考慮較多,而對語言本身的技術(shù)因素考慮較少。在此就目前應(yīng)用廣泛幾種高級語言:Ada、C/C+、Modula-2和JAVA等進行簡單的分析比較。

4、 Ada語言定義嚴格,易讀易懂,有較豐富的庫程序支持,由于它和運行環(huán)境聯(lián)系較少,因此其運行特性比較出色。 C語言具有廣泛的庫程序支持,現(xiàn)在是嵌入式系統(tǒng)設(shè)計中應(yīng)用最廣泛的語言。 C+是一種面向?qū)ο蟮木幊陶Z言,應(yīng)用也很多,但與C語言相比,C+編寫的程序目標代碼往往比較龐大和復(fù)雜。 Modula-2定義清楚,支持豐富,具備較好的模塊化結(jié)構(gòu),在教學科研方面有較廣泛的應(yīng)用。 Java語言相對年輕,但有很強的跨平臺特性,現(xiàn)在發(fā)展勢頭較為強勁。,(3)編程語言的選取,2.2 傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法,圖2.4 傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法,傳統(tǒng)設(shè)計方法存在的缺陷,傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法雖然簡單,但存在一些不可

5、避免的缺陷: 1)設(shè)計方法缺乏統(tǒng)一的軟硬件協(xié)同表示方法,軟硬件劃分完全由設(shè)計者憑經(jīng)驗完成,無法從系統(tǒng)級驗證劃分的合理性,且不易發(fā)現(xiàn)軟硬件之間存在的接口問題。 2)在實際的設(shè)計過程中,通常采用“硬件優(yōu)先的原則”,因此軟件的測試必須在硬件全部完成之后才能進行,這樣設(shè)計周期可能很長。 3)由于硬件設(shè)計在粗略估計軟件任務(wù)需求的情況下進行,缺乏對軟件構(gòu)架和實現(xiàn)機制的清晰了解,硬件設(shè)計工作帶有一定的盲目性。 4)整個系統(tǒng)的優(yōu)化由于受設(shè)計空間的限制,只能改善硬件和軟件各自的性能,不可能對系統(tǒng)做出較好的綜合優(yōu)化,難以適應(yīng)現(xiàn)代復(fù)雜的、大規(guī)模的系統(tǒng)設(shè)計需要。,圖2.5 嵌入式系統(tǒng)的軟硬件協(xié)同設(shè)計流程,2.3 嵌入

6、式系統(tǒng)的軟硬件協(xié)同設(shè)計方法,嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計流程,設(shè)計流程總體上可分為系統(tǒng)描述、軟硬件劃分、協(xié)同綜合、協(xié)同仿真與驗證、系統(tǒng)集成幾個過程。,(1)系統(tǒng)描述 系統(tǒng)描述是采用一種或多種系統(tǒng)級描述語言對所需設(shè)計的嵌入式系統(tǒng)的功能和性能進行全面的描述,是建立系統(tǒng)軟硬件模型的過程。 系統(tǒng)建??梢杂稍O(shè)計者用非正式語言,甚至是自然語言手工完成,但手工完成容易導(dǎo)致系統(tǒng)描述不準確,而選用合適的建模語言將對設(shè)計起到事半功倍的效果。 UML(Unified Modeling Language)語言是一種功能強大的可視化建模語言。它將模型中的信息用標準圖形元素直觀地顯示,使具有不同技術(shù)背景的開發(fā)人員和設(shè)計師可以

7、較好地交流。,(2)軟硬件劃分 軟硬件功能劃分就是要確定哪些系統(tǒng)功能由硬件實現(xiàn),哪些功能由軟件實現(xiàn)。 從理論上講,每個應(yīng)用系統(tǒng)都存在一個適合于該軟硬件功能的最佳組合,但如何從系統(tǒng)需求出發(fā),依據(jù)一定的指導(dǎo)原則和分配算法對硬件/軟件功能進行合理劃分,從而使系統(tǒng)的整體性能達到最佳,是軟硬件劃分的目標所在。 (3)協(xié)同綜合 軟硬件協(xié)同綜合是根據(jù)系統(tǒng)描述和軟硬件劃分的結(jié)果,在已有的設(shè)計規(guī)則和既定的設(shè)計目標前提下,決定系統(tǒng)中軟件和硬件部分以及其接口的具體實現(xiàn)方法,并將其集成。,(4)協(xié)同仿真與驗證 協(xié)同仿真驗證是檢驗系統(tǒng)設(shè)計正確性的過程。它對設(shè)計結(jié)果的正確性進行評估,以避免在系統(tǒng)實現(xiàn)過程中發(fā)現(xiàn)問題再進行反

8、復(fù)修改。 由于系統(tǒng)仿真驗證的過程中,模擬的工作環(huán)境與實際使用環(huán)境相差甚遠,軟硬件之間的相互作用方式及作用效果也就不同,這就難以保證系統(tǒng)在真實環(huán)境下工作的可靠性,因此系統(tǒng)仿真的有效性是有限的。,目前,軟硬件協(xié)同設(shè)計領(lǐng)域的研究十分活躍,Berkeley, Princeton等著名大學有專門的研究小組進行相關(guān)研究,電子設(shè)計領(lǐng)域權(quán)威的學術(shù)會議DAC上每年都有相當篇幅的論文涉及軟硬件協(xié)同設(shè)計,每年ACM還召開軟硬件協(xié)同設(shè)計的專門會議CODES。主要EDA廠家(Cadence,Synopsys)目前己經(jīng)推出部分支持軟硬件協(xié)同設(shè)計的工具,并將軟硬件協(xié)同設(shè)計作為下一代的系統(tǒng)級EDA工具的關(guān)鍵技術(shù)。,軟硬件協(xié)同

9、設(shè)計的特點,(1)軟硬件協(xié)同設(shè)計采用統(tǒng)一的工具描述,可合理劃分系統(tǒng)軟硬件,分配系統(tǒng)功能,在性能、成本、功耗等方面進行權(quán)衡折衷,獲取更優(yōu)化的設(shè)計。 (2)軟硬件協(xié)同設(shè)計方法采用并行設(shè)計和協(xié)同設(shè)計的思想,提高了設(shè)計效率,縮短了設(shè)計周期。 (3)在系統(tǒng)級設(shè)計中,對軟硬件部分使用統(tǒng)一描述語言和工具進行集成開發(fā),具有跨越軟硬件界限進行系統(tǒng)優(yōu)化的能力。 (4)支持多領(lǐng)域?qū)<业膮f(xié)同開發(fā)。它的核心思想是溝通軟件設(shè)計和硬件設(shè)計,避免系統(tǒng)中關(guān)系密切的兩部分設(shè)計過早獨立。同傳統(tǒng)設(shè)計方法相比,軟硬件協(xié)同設(shè)計提高了設(shè)計抽象的層次,拓展了設(shè)計的覆蓋范圍,采用軟硬件協(xié)同設(shè)計技術(shù)可以使嵌入式系統(tǒng)設(shè)計更好和更快。,2.4 嵌入

10、式系統(tǒng)的測試技術(shù),嵌入式系統(tǒng)測試也叫交叉測試(cross-test),它與PC機的軟件測試有相似之處。目前,在嵌入式系統(tǒng)設(shè)計中軟件正越來越多地取代硬件,以降低系統(tǒng)成本,獲得更大的靈活性,這就需要使用更好的測試方法和工具進行嵌入式實時軟件的測試。,一、嵌入式軟件的測試方法,(1)白盒測試與黑盒測試,白盒測試檢查程序的內(nèi)部設(shè)計,它要求根據(jù)源代碼的組織結(jié)構(gòu)查找軟件缺陷。 由于嵌入式系統(tǒng)高可靠性的要求,嵌入式軟件測試與普通軟件測試相比,通常要求有更高的代碼覆蓋率。 黑盒測試根據(jù)軟件的用途和外部特征查找軟件缺陷。 嵌入式軟件的黑盒測試要把系統(tǒng)的預(yù)期用途作為重要依據(jù),根據(jù)需求中對負載、定時、性能的要求,判

11、斷軟件是否滿足這些需求規(guī)范。為了保證正確地測試,還須要檢驗軟硬件之間的接口。,(2)目標環(huán)境測試和宿主環(huán)境測試,在嵌入式軟件測試中,常常要在基于目標的測試和基于宿主的測試之間作出折衷。基于目標的測試消耗較多的經(jīng)費和時間,而基于宿主的測試代價較小,目前的趨勢是把更多的測試轉(zhuǎn)移到宿主環(huán)境中進行。 在宿主環(huán)境中,可以進行邏輯或界面的測試、以及與硬件無關(guān)的測試。 在目標環(huán)境中,則進行與定時問題有關(guān)的白盒測試、中斷測試、硬件接口測試。,二、嵌入式軟件的測試工具,(1)內(nèi)存分析工具,內(nèi)存分析工具用來處理在動態(tài)內(nèi)存分配中存在的缺陷。 目前有兩類內(nèi)存分析工具軟件和硬件的?;谲浖膬?nèi)存分析工具可能會對代碼的性

12、能造成很大影響,從而嚴重影響實時操作;基于硬件的內(nèi)存分析工具價格昂貴,而且只能在工具所限定的運行環(huán)境中使用。,(2)性能分析工具,性能分析工具會提供有關(guān)的數(shù)據(jù),說明執(zhí)行時間是如何消耗的,是什么時候消耗的,以及每個例程所用的時間。,(3)GUI測試工具,GUI測試工具可以作為腳本工具在開發(fā)環(huán)境中運行測試用例,其功能包括對操作的記錄和回放、抓取屏幕顯示供以后分析和比較、設(shè)置和管理測試過程。 有些嵌入式設(shè)備沒有GUI,但常常可以對該設(shè)備進行插裝來運行GUI測試腳本,雖然這種方式可能要求對被測代碼進行更改,但是節(jié)省了功能測試和回歸測試的時間。,(4)覆蓋分析工具,在進行白盒測試時,可以使用代碼覆蓋分析工具追蹤哪些代碼被執(zhí)行過。 覆蓋分析工具一般會提供有關(guān)功能覆蓋、分支覆蓋、條件覆蓋的信息。,三、嵌入式系統(tǒng)的測試策略,嵌入式軟件測試的

溫馨提示

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

評論

0/150

提交評論