




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2023/9/2華中科技大學計算機學院1第2章嵌入式系統(tǒng)開發(fā)技術(shù)
嵌入式系統(tǒng)的設(shè)計開發(fā)與一般計算機系統(tǒng)硬軟件設(shè)計方法有很大不同.知識面同時覆蓋硬件,軟件,應(yīng)用對象的特性(如機械方面,電機傳動方面等).本章討論下面問題: 1.嵌入式系統(tǒng)的結(jié)構(gòu)分析
2.嵌入式系統(tǒng)的設(shè)計方法
3.嵌入式系統(tǒng)開發(fā)技術(shù)
4.嵌入式系統(tǒng)的調(diào)試技術(shù)
5.嵌入式系統(tǒng)的開發(fā)技術(shù)的發(fā)展趨勢及其挑戰(zhàn)2023/9/2華中科技大學計算機學院22.1嵌入式系統(tǒng)的結(jié)構(gòu)分析一個嵌入式系統(tǒng)一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置(被控對象)組成.見P16圖2-1而嵌入式計算機系統(tǒng)一般包括:硬件層,中間層,(系統(tǒng))軟件層,應(yīng)用軟件層(功能層)執(zhí)行裝置也稱為被控對象,它接受系統(tǒng)發(fā)出的控制命令,執(zhí)行規(guī)定的操作或任務(wù).如手機中的微型電機,機床等設(shè)備中的伺服電機,冶煉中的熱電耦,石油化工企業(yè)用的流量計,鐵路信號連鎖控制器等.本章分別介紹嵌入式計算機系統(tǒng)中的1.硬件層;2.中間層;3.系統(tǒng)軟件層;以及4.應(yīng)用軟件層2023/9/2華中科技大學計算機學院3圖2-1嵌入式系統(tǒng)的組成結(jié)構(gòu)玻璃配料:參考資料\GLASSBATCHING.doc2023/9/2華中科技大學計算機學院42.1.1硬件層硬件層主要由嵌入式微處理器,存儲器SDRAM、ROM、Flash等,電源電路、時鐘電路、復(fù)位電路、存儲器控制電路組成嵌入式基本系統(tǒng).根據(jù)需要選定通用設(shè)備接口和I/O接口(A/D、D/A、開關(guān)、鍵盤按鈕、傳感器、LED/LCD等)等組成.形成完整的嵌入式系統(tǒng).專用集成電路芯片(ASIC,ApplicationSpecificIntegratedCircuit),如打印機控制器,硬盤控制器等.可編程陣列芯片(FPGA和CPLD)FPGA(FieldProgrammableGateArray),即現(xiàn)場可編程門陣列2023/9/2華中科技大學計算機學院52.1.1硬件層-可編程芯片(FPGA)FPGA(Field-ProgrammableGateArray),即現(xiàn)場可編程門陣列.FPGA以硬件描述語言(Verilog或VHDL)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至FPGA上進行測試,是現(xiàn)代IC設(shè)計驗證的技術(shù)主流。FPGA中的可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flip-flop)或者其他更加完整的記憶塊。進一步閱讀資料:參考資料\CPLD、FPGA、及IP核參考文獻\FPGA介紹.doc2023/9/2華中科技大學計算機學院62.1.1硬件層-可編程芯片(CPLD)CPLD(ComplexProgrammableLogicDevice)復(fù)雜可編程邏輯器件,屬于規(guī)模大,結(jié)構(gòu)復(fù)雜的大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。CPLD的基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng).CPLD主要是由可編程邏輯宏單元(MC,MacroCell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點。進一步閱讀:參考資料\CPLD、FPGA、及IP核參考文獻\CPLD介紹.doc2023/9/2華中科技大學計算機學院72.1.2中間層硬件層與軟件層之間為中間層,也稱為硬件抽象層(HardwareAbstractLayer,HAL)或板級支持包(BoardSupportPackage,BSP)。中間層將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關(guān),上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP層提供的接口即可進行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置功能。BSP具有以下兩個特點。硬件相關(guān)性:因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應(yīng)用相關(guān)性,而作為上層軟件與硬件平臺之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法。操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設(shè)計一個完整的BSP需要完成兩部分工作:嵌入式系統(tǒng)的硬件初始化以及BSP功能,設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。2023/9/2華中科技大學計算機學院82.1.2中間層-嵌入式系統(tǒng)硬件初始化
系統(tǒng)初始化可以分為3個主要環(huán)節(jié),依次為:片級初始化、板級初始化和系統(tǒng)級初始化。片級初始化:完成嵌入式微處理器的初始化,包括設(shè)置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。這是一個純硬件的初始化過程。(F28XXDSP,內(nèi)核先上電,外圍后上電)板級初始化:完成嵌入式微處理器以外的其他硬件設(shè)備的初始化。另外,還需設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級初始化和應(yīng)用程序的運行建立硬件和軟件環(huán)境。這是一個同時包含軟硬件兩部分在內(nèi)的初始化過程。系統(tǒng)初始化:該初始化過程以軟件初始化為主,主要進行操作系統(tǒng)的初始化。BSP將對嵌入式微處理器的控制權(quán)轉(zhuǎn)交給嵌入式操作系統(tǒng),由操作系統(tǒng)完成余下的初始化操作,包含加載和初始化與硬件無關(guān)的設(shè)備驅(qū)動程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等。最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境,并將控制權(quán)交給應(yīng)用程序的入口。2023/9/2華中科技大學計算機學院92.1.2中間層-硬件相關(guān)的設(shè)備驅(qū)動程序
BSP的另一個主要功能是硬件相關(guān)的設(shè)備驅(qū)動。硬件相關(guān)的設(shè)備驅(qū)動程序的初始化通常是一個從高到低的過程。盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動程序,但是這些設(shè)備驅(qū)動程序通常不直接由BSP使用,而是在系統(tǒng)初始化過程中由BSP將它們與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作。與硬件相關(guān)的驅(qū)動程序是BSP設(shè)計與開發(fā)中另一個非常關(guān)鍵的環(huán)節(jié)。
參考資料\BSP\嵌入式系統(tǒng)中BSP的作用及其相關(guān)聯(lián)環(huán)節(jié)的分析.pdf2023/9/2華中科技大學計算機學院102.1.3系統(tǒng)軟件層系統(tǒng)軟件層由實時多任務(wù)操作系統(tǒng)(Real-timeOperationSystem,RTOS)、文件系統(tǒng)、圖形用戶接口(GraphicUserInterface,GUI)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。RTOS負責嵌人系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動;它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。RTOS在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點。
RTOS是相對于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機制、中斷處理、文件功能等外,還有以下特點:
(1)可裝卸性。開放性、可伸縮性的體系結(jié)構(gòu)。(2)強實時性。
(3)統(tǒng)一的接口。提供各種設(shè)備驅(qū)動接日.(4)操作方便、簡單、提供友好的圖形GUI,(5)提供強大的網(wǎng)絡(luò)功能,(6)強穩(wěn)定性,弱交互性。(7)固化代碼。嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計算機的ROM中。(8)良好的移植性.
2023/9/2華中科技大學計算機學院112.1.4應(yīng)用軟件層應(yīng)用軟件層也成為功能層.主要由基于RTOS開發(fā)的應(yīng)用程序組成,完成對被控對象的控制功能.該層為方便用戶操作,往往需要提供一個友好的人機界面.對復(fù)雜系統(tǒng),要對系統(tǒng)進行需求分析,確定系統(tǒng)的功能.然后將其映射到整個系統(tǒng)的硬件,軟件和執(zhí)行裝置的設(shè)計過程中.該過程稱為系統(tǒng)的功能實現(xiàn).2023/9/2華中科技大學計算機學院122.2嵌入式系統(tǒng)的設(shè)計方法
本節(jié)介紹如下三個方面的內(nèi)容: 1.嵌入式系統(tǒng)的設(shè)計流程
2.嵌入式系統(tǒng)的一般設(shè)計方法
3.嵌入式系統(tǒng)的軟、硬件協(xié)同設(shè)計技術(shù)2023/9/2華中科技大學計算機學院132.2.1嵌入式系統(tǒng)的設(shè)計流程如圖2.2所示,嵌入式系統(tǒng)設(shè)計一般由5個階段構(gòu)成:需求分析;體系結(jié)構(gòu)設(shè)計;硬件,軟件設(shè)計;系統(tǒng)集成;系統(tǒng)測試。各個階段之間往往要求不斷的反復(fù)和修改,直至完成最終設(shè)計目標。2023/9/2華中科技大學計算機學院14圖2.2嵌入式系統(tǒng)的設(shè)計流程2023/9/2華中科技大學計算機學院151.系統(tǒng)需求分析
確定設(shè)計任務(wù)和設(shè)計目標,并提煉出設(shè)計規(guī)格說明書。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量、等因素。2.體系結(jié)構(gòu)設(shè)計
對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個好的體系結(jié)構(gòu)是設(shè)計成功與否的關(guān)鍵。3.硬件,軟件設(shè)計
基于體系結(jié)構(gòu),對系統(tǒng)的軟件、硬件進行詳細設(shè)計。為了縮短產(chǎn)品開發(fā)周期,設(shè)計往往是并行的。應(yīng)該說,嵌入式系統(tǒng)設(shè)計的工作大部分都集中在軟件設(shè)計上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計是現(xiàn)代軟件工程經(jīng)常采用的方法。4.系統(tǒng)集成
把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調(diào)試,發(fā)現(xiàn)并改進單元設(shè)計過程中的錯誤。5.系統(tǒng)測試
對設(shè)計好的系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求。針對系統(tǒng)的不同的復(fù)雜程度,目前有一些常用的系統(tǒng)設(shè)計方法,如自頂向下的設(shè)計方法、自下向上的設(shè)計方法、逐步細化設(shè)計方法和并行設(shè)計方法等。2023/9/2華中科技大學計算機學院162.2.2嵌入式系統(tǒng)的一般設(shè)計方法通常在單片機系統(tǒng)的開發(fā)和應(yīng)用中,按照下面圖2.3所示的流程進行。
圖2-3單片機系統(tǒng)的開發(fā)流程
用戶需求選擇處理器設(shè)計硬件平臺按照設(shè)計的硬件平臺編寫軟件遇到硬件問題?是修改硬件平臺軟件測試是否通過?整個系統(tǒng)測試開發(fā)結(jié)束否是否2023/9/2華中科技大學計算機學院172.2.2嵌入式系統(tǒng)的一般設(shè)計方法在嵌入式系統(tǒng)的應(yīng)用開發(fā)中,開發(fā)過程將改變?yōu)槿鐖D2.4所示的過程。用戶需求選擇嵌入式處理器及硬件平臺選擇合適的嵌入式操作系統(tǒng)應(yīng)用程序測試通過?整個系統(tǒng)測試開發(fā)結(jié)束是在操作系統(tǒng)上開發(fā)應(yīng)用程序否圖2-4嵌入式系統(tǒng)的開發(fā)流程2023/9/2華中科技大學計算機學院182.2.2嵌入式系統(tǒng)的一般設(shè)計方法在應(yīng)用嵌入式系統(tǒng)開發(fā)的過程中,因為對應(yīng)于每一個處理器的硬件平臺都是通用的、固定的、成熟的。所以,在開發(fā)過程中減少了硬件系統(tǒng)錯誤的引入機會;同時,因為嵌入式操作系統(tǒng)屏蔽掉了底層硬件的很多復(fù)雜信息,使得開發(fā)者通過操作系統(tǒng)提供的API函數(shù)可以完成大部分工作,大大地簡化了開發(fā)過程,提高了系統(tǒng)的穩(wěn)定性。綜上所述,嵌入式系統(tǒng)的開發(fā)可以說是把開發(fā)者從反復(fù)進行硬件平臺的設(shè)計過程中解放出來,從而可以把主要的精力放在編寫特定的應(yīng)用程序上。這個過程更類似于在系統(tǒng)機(如PC機)上的某個操作系統(tǒng)下開發(fā)應(yīng)用程序。(硬件平臺的設(shè)計過程更加具有挑戰(zhàn)性!)2023/9/2華中科技大學計算機學院192.2.3嵌入式系統(tǒng)的軟、硬件協(xié)同設(shè)計技術(shù)傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法如圖2-5所示.硬件和軟件分為兩個獨立的部分,由硬件工程師和軟件工程師按照擬定的設(shè)計流程分別完成。這種設(shè)計方法只能改善硬件/軟件各自的性能,而有限的設(shè)計空間不可能對系統(tǒng)做出較好的性能綜合優(yōu)化。2023/9/2華中科技大學計算機學院20需求分析、總體設(shè)計嵌入式硬件開發(fā)嵌入式軟件開發(fā)嵌入式系統(tǒng)集成、測試、驗證圖2-5嵌入式系統(tǒng)的一般設(shè)計方法2023/9/2華中科技大學計算機學院212.2.3嵌入式系統(tǒng)的軟、硬件協(xié)同設(shè)計技術(shù)從理論上來說,每一個應(yīng)用系統(tǒng),都存在一個適合于該系統(tǒng)的硬件、軟件功能的最佳組合。如何從應(yīng)用系統(tǒng)需求出發(fā),依據(jù)一定的指導(dǎo)原則和分配算法對硬件/軟件功能進行分析及合理的劃分,從而使系統(tǒng)的整體性能、運行時間、能量耗損、存儲能量達到最佳狀態(tài),已成為硬件/軟件協(xié)同設(shè)計的重要研究內(nèi)容之一。應(yīng)用系統(tǒng)的多樣性和復(fù)雜性,使硬件/軟件的功能劃分、資源調(diào)度與分配、系統(tǒng)優(yōu)化、系統(tǒng)綜合、模擬仿真存在許多需要研究解決的問題,因而使國際上協(xié)同設(shè)計領(lǐng)域的研究日益活躍。系統(tǒng)協(xié)同設(shè)計與傳統(tǒng)設(shè)計相比有兩個顯著的特點:
(1)描述硬件和軟件使用統(tǒng)一的表示形式;
(2)硬件,軟件劃分可以選擇多種方案,直到滿足要求。2023/9/2華中科技大學計算機學院222.2.3嵌入式系統(tǒng)的軟、硬件協(xié)同設(shè)計技術(shù)傳統(tǒng)的嵌入式系統(tǒng)開發(fā)采用的是軟件開發(fā)與硬件開發(fā)分離的方式,其過程可描述如下:
(1)需求分析:
(2)軟硬件分別設(shè)計、開發(fā)、調(diào)試、測試:
(3)系統(tǒng)集成:軟硬件集成;
(4)集成測試:
(5)若系統(tǒng)正確,則結(jié)束,否則繼續(xù)進行;
(6)若出現(xiàn)錯誤,需要對軟、硬件分別驗證和修改:
(7)返回(3),繼續(xù)進行集成測試。雖然在系統(tǒng)設(shè)計的初始階段考慮了軟硬件的接口問題,但由于軟硬件分別開發(fā),各自部分的修改和缺陷很容易導(dǎo)致系統(tǒng)集成出現(xiàn)錯誤。由于設(shè)計方法的限制,這些錯誤不但難于定位,而且更重要的是,對它們的修改往往會涉及整個軟件結(jié)構(gòu)或硬件配置的改動。2023/9/2華中科技大學計算機學院232.2.3軟、硬件協(xié)同設(shè)計技術(shù)軟硬件協(xié)同設(shè)計方法。一個典型的硬件/軟件協(xié)同設(shè)計過程如圖2-6所示。首先,應(yīng)用獨立于任何硬件和軟件的功能性規(guī)格方法對系統(tǒng)進行描述,采用的方法包括:有限態(tài)自動機(FSM)、統(tǒng)一化的規(guī)格語言(CSP、VHDL)或其他基于圖形的表示工具,其作用是對硬件/軟件統(tǒng)一表示,便于功能的劃分和綜合;(VHDL使用最多?。┤缓螅诖嘶A(chǔ)上對硬件/軟件進行劃分,即對硬件,軟件的功能模塊進行分配。但是,這種功能分配不是隨意的,而是從系統(tǒng)功能要求和限制條件出發(fā),依據(jù)算法進行的。完成硬件/軟件功能劃分之后,需要對劃分結(jié)果做出評估。方法之一是性能評估,另一種方法是對硬件、軟件綜合之后的系統(tǒng)依據(jù)指令級評價參數(shù)做出評估。如果評估結(jié)果不滿足要求,說明劃分方案選擇不合理,需要重新劃分硬件/軟件模塊,以上過程重復(fù)直到系統(tǒng)獲得一個滿意的硬件/軟件實現(xiàn)為止。2023/9/2華中科技大學計算機學院24系統(tǒng)描述軟硬件劃分接口綜合設(shè)計驗證設(shè)計實現(xiàn)硬件綜合軟件綜合圖2-6嵌入式系統(tǒng)的軟硬件協(xié)同設(shè)計2023/9/2華中科技大學計算機學院252.2.3嵌入式系統(tǒng)的軟、硬件協(xié)同設(shè)計技術(shù)軟硬件協(xié)同設(shè)計過程可歸納為:
(1)需求分析;
(2)軟硬件協(xié)同設(shè)計;
(3)軟硬件實現(xiàn);
(4)軟硬件協(xié)同測試和驗證。這種方法的特點是在協(xié)同設(shè)計(co-design)、協(xié)同測試(c0-test)和協(xié)同驗證(Co-verification)上,充分考慮了軟硬件的關(guān)系,并在設(shè)計的每個層次上給以測試驗證,使得盡早發(fā)現(xiàn)和解決問題,避免災(zāi)難性錯誤的出現(xiàn)。進一步閱讀:參考資料\嵌入式系統(tǒng)的開發(fā)技術(shù)與設(shè)計方法參考文獻\嵌入式系統(tǒng)的設(shè)計流程和一般設(shè)計方法.doc2023/9/2華中科技大學計算機學院262.3嵌入式系統(tǒng)開發(fā)技術(shù)
嵌入式系統(tǒng)開發(fā)技術(shù)方面主要介紹如下4個方面的內(nèi)容: 1.需求分析
2.詳細設(shè)計
3.系統(tǒng)實現(xiàn)
4.系統(tǒng)測試2023/9/2華中科技大學計算機學院272.3.1需求分析需求分析是在項目開始時了解項目的情況,解決用戶需要做什么、需要完成什么功能和任務(wù)等問題,這一階段主要包括:分析用戶的需求、初步確定硬件和軟件、檢查需求分析的結(jié)果、確定項目的約束條件、概要設(shè)計等幾個方面。2023/9/2華中科技大學計算機學院281、分析需求1)分析需求通過與客戶交流,了解用戶的需求、用戶意圖等,明確客戶到底需要開發(fā)什么樣的產(chǎn)品,包括產(chǎn)品的功能需求和非功能需求。通常,描述產(chǎn)品需求的文檔是由嵌入式系統(tǒng)分析師從用戶的視角來寫的,由一系列的用戶需求組成,以文字、圖表等方式描述客戶需求。再從客戶的需求中獲取一組一致性的需求,并整理成正式的規(guī)格說明書。2023/9/2華中科技大學計算機學院292)確認需求一般來說,客戶對產(chǎn)品的需求主要包括功能、性能、價格、尺寸和重量、功耗等。
性能:主要指系統(tǒng)的性能,最重要的就是系統(tǒng)的處理速度,系統(tǒng)的處理速度通常是該系統(tǒng)的實用性和最終成本的主要決定因素(不一定!井下儀表,無線傳感器網(wǎng)絡(luò)等能耗最重要!)。
價格:產(chǎn)品最終的成本或者銷售價格也是一個主要的考慮因素。產(chǎn)品的成本包含生產(chǎn)成本和不可再生工程成本(比如人力成本和設(shè)計系統(tǒng)的其他花費)(民用系統(tǒng)價格非常重要,國防系統(tǒng)性能第一!)。2023/9/2華中科技大學計算機學院30
系統(tǒng)的尺寸和重量:最終產(chǎn)品的物理特性會因為使用的領(lǐng)域不同而大不相同。手持設(shè)備對系統(tǒng)的尺寸和重量就有很嚴格的限制。國防上星、上機、上艦裝備對尺寸、載荷有嚴格要求。
功耗:比如那些靠電池來供電的系統(tǒng)以及其他一些電器來說,功耗是十分重要的。如:油井的井下儀器儀表。在一些非電池供電的場合,如工業(yè)防爆現(xiàn)場(礦井、化工等),對電源也有嚴格的要求,以保證應(yīng)用環(huán)境的安全。電源問題在需求階段可以以電池壽命的方式(通常mAh,毫安小時)提出,也可以以系統(tǒng)的供電電流要求數(shù)值提出。2023/9/2華中科技大學計算機學院313)羅列需求下面列舉的是一些能讓設(shè)計者的思維細致化的問題,當然,并不是列出的每個問題都適合所有的嵌入式系統(tǒng)項目。(1)系統(tǒng)任務(wù)是什么?(2)系統(tǒng)輸入是什么?(3)系統(tǒng)輸出是什么?(4)用戶接口如何,如何交互?(5)系統(tǒng)的重量和體積如何,尺寸如何?(6)系統(tǒng)需連接哪些或哪類外設(shè)?(7)系統(tǒng)是否需要其他軟件?(8)系統(tǒng)處理的數(shù)據(jù)類型?(9)系統(tǒng)與其他系統(tǒng)的通信方式?2023/9/2華中科技大學計算機學院32(10)系統(tǒng)是單機系統(tǒng)還是網(wǎng)絡(luò)系統(tǒng)?(11)系統(tǒng)的響應(yīng)時間是多少?(12)系統(tǒng)的安全措施?(13)系統(tǒng)的運行環(huán)境?(14)系統(tǒng)存儲器類型、容量?(15)系統(tǒng)的可拆裝性、可靠性和牢固性?(16)系統(tǒng)的供電模式?(17)系統(tǒng)故障處理方式、方法以及用戶如何處理故 障?(18)是否需要任何手動或機械代用裝置?(19)系統(tǒng)是否將具有遠程診斷或更正問題的功能?(20)其他問題。2023/9/2華中科技大學計算機學院334)需求表格如表2—1所示為一個需求表格的樣本,這個表格在工程開始時填寫。在考慮系統(tǒng)基本特征時可以將這個表格作為檢查表。表2-1需求樣本名稱目的輸入輸出功能生產(chǎn)成本功耗性能物理尺寸和質(zhì)量5)需求的內(nèi)部一致性寫完需求以后,應(yīng)該對它們的內(nèi)部一致性進行檢查。2023/9/2華中科技大學計算機學院342、確定軟硬件系統(tǒng)分析階段需要考慮的一些項目如下。
處理器:首先選擇處理器的速度(暫時可以不選擇處理器的型號,處理器的速度一般以MIPS為度量標準)
總線吞吐量:總線的吞吐量在大量的數(shù)據(jù)傳輸應(yīng)用(如多媒體應(yīng)用)中非常重要。
操作系統(tǒng):選擇將使用的操作系統(tǒng)是另一個關(guān)鍵的決定。也許,做出這個決定可能為時過早,但可定下設(shè)計所需的操作系統(tǒng)的類型。2023/9/2華中科技大學計算機學院35
編程語言:選擇系統(tǒng)開發(fā)語言,這一過程比較簡單,目前在嵌入式系統(tǒng)開發(fā)中,使用比較多的語言是C語言,或C語言與匯編語言的混合;其次是Java、嵌式入C++等。
編譯器選擇:關(guān)于選擇編譯器方面,目前的選擇比較多,一般分成商用和免費兩種。目前的商用編譯器一般以集成開發(fā)環(huán)境工具包的方式提供,其優(yōu)點是代碼優(yōu)化比較好、效率高,缺點是價格貴;免費的工具使用最多的是GNU系列工具,如GCC編譯器、GDB調(diào)試器,免費工具已經(jīng)被移植到了許多常用的處理器上了,如ARM系列、PowerPC系列、MIPS系列等,但是它們的編譯效率不高。2023/9/2華中科技大學計算機學院36
選擇硬件:設(shè)計嵌入式系統(tǒng)硬件通常有兩種方法。一種方案是使用第三方的硬件模塊,典型的如PC104模塊,用戶只需要選擇I/O模塊,就可以很快地開發(fā)出嵌入式系統(tǒng)產(chǎn)品的原型。另一種方案是自己設(shè)計(上水平,完全自主。真正高精尖的產(chǎn)品必須采用自己設(shè)計方案)。一般地,商品化模塊的成本比較高,如果開發(fā)的產(chǎn)品數(shù)量比較大,盡量采用自己設(shè)計的方案,可以降低成本。但是在開發(fā)階段,可以使用第三方提供的開發(fā)板、評估板等縮短開發(fā)時間。2023/9/2華中科技大學計算機學院373、審視需求分析的結(jié)果(略)1)原因在嵌入式系統(tǒng)分析階段可能會發(fā)生許多錯誤。一般地,在嵌入式系統(tǒng)項目中,超過一半的錯誤是在寫系統(tǒng)需求和技術(shù)指標時出現(xiàn)的。審查系統(tǒng)需求分析階段建立的資料的完整性和正確性是有利于提高開發(fā)效率。2)目的分析階段審視的目的就是要確定在此階段建立的資料是否全面,調(diào)研工作是否細致,是否清楚地描述系統(tǒng)將做什么。3)方法和內(nèi)容《軟件工程、方法與管理》一書建議使用下面的判據(jù)來審查需求分析資料:(1)噪聲:不相干的信息。(2)只字不提:漏掉的信息。(3)超前規(guī)定說明:一些本應(yīng)在設(shè)計階段才能提出來 的信息。2023/9/2華中科技大學計算機學院38(4)矛盾:不相容的技術(shù)指標和約束。(略)(5)模棱兩可:一個技術(shù)指標或約束條件可有多種解 釋。(6)超前引用:某種性質(zhì)特點在被明確定義說明前就 被引用到資料中。(7)一廂情愿:說明了某一要求,但對該要求沒法 一種方法去實現(xiàn)。審視需求分析資料的最有效的方法是讓對該項目有不同看法的人來評論你的資料。請用戶、客戶、技術(shù)人員和其他人按上述判據(jù)來檢查你在分析階段建立的資料??捶ń嵌炔煌娜四苷页霾煌腻e誤,而且多個人來看一個文件可降低錯誤遺漏的可能性。根據(jù)最后的審查結(jié)果,確定是接著進行設(shè)計階段,還是對分析的某些部分重新改造。2023/9/2華中科技大學計算機學院39對于任何一個項目,都存在一定的約束條件,有的約束是人為造成的,有的是客觀條件造成的,因此,對嵌入式系統(tǒng)項目而言,同樣也存在約束條件。約束條件屬于項目實施過程中的不利因素,指的是項目實施過程中限制項目按時圓滿完成的內(nèi)部和外部因素之總和。在項目實施之前,必須把約束條件找出來,考慮解決的辦法。尋找約束條件思路要廣,盡量找到將可能加到項目上的所有約束條件。不管約束是項目內(nèi)部的還是外部的,是人為的還是客觀存在的,都一一給列舉出來。并在項目開發(fā)時牢記心中。4、項目約束(略)2023/9/2華中科技大學計算機學院40以下是可能的一些約束條件。(略)(1)階段性和工期限制;(2)項目預(yù)算能否滿足開發(fā)要求;(3)項目組人員結(jié)構(gòu)、技術(shù)水平、經(jīng)驗等;(4)員工投入時間是多少;(5)員工對項目的熟悉程度;(6)項目采用的軟硬件資源;(7)項目組人員到位時間;(8)項目管理、是否依賴某固定的供應(yīng)商。2023/9/2華中科技大學計算機學院411)建立系統(tǒng)結(jié)構(gòu)模型的方式概要設(shè)計主要是對系統(tǒng)的初步功能進行設(shè)計。這種設(shè)計是粗糙的、不具體的和不詳細的,但又是嵌入式系統(tǒng)開發(fā)中十分重要的階段。在需求分析建立之后,就需要建立完整的功能模型,并根據(jù)現(xiàn)有的系統(tǒng)結(jié)構(gòu)庫對系統(tǒng)模型進行設(shè)計。一般而言,在系統(tǒng)結(jié)構(gòu)模型和系統(tǒng)功能模型之間可以通過建立一個映射層,來完成從功能需求到結(jié)構(gòu)模型之間的轉(zhuǎn)化。在映射層上完成的任務(wù)主要是選擇映射的方式,考慮在性能和應(yīng)用需求環(huán)境方面的因素。如圖2—7所示描述了在功能層、映射層和模型層之間的關(guān)系。在完成需求分析后就要建立功能需求庫,功能需求庫是需求分析的結(jié)果。5、概要設(shè)計2023/9/2華中科技大學計算機學院42功能需求庫功能需求庫將功能轉(zhuǎn)換為結(jié)構(gòu)驗證性能和應(yīng)用需求將功能轉(zhuǎn)換為結(jié)構(gòu)將功能轉(zhuǎn)換為結(jié)構(gòu)功能層(略)映射層模型層圖2-7系統(tǒng)結(jié)構(gòu)模型建立方式2023/9/2華中科技大學計算機學院432)系統(tǒng)結(jié)構(gòu)模型建立系統(tǒng)結(jié)構(gòu)模型包括硬件和軟件兩個部分,在系統(tǒng)結(jié)構(gòu)的實現(xiàn)中采用硬件/軟件協(xié)同設(shè)計(Hardware/SoftwareCo-design)方式完成。如圖2-8所示是一個典型的從上至下的設(shè)計、實現(xiàn)過程。不必完全照搬硬件/軟件協(xié)同設(shè)計,有時單片機方式更實在!2023/9/2華中科技大學計算機學院44系統(tǒng)結(jié)構(gòu)模型功能設(shè)計任務(wù)寄存器傳輸設(shè)計模塊高層語言邏輯門級設(shè)計物理設(shè)計目標代碼系統(tǒng)集成通信進程結(jié)構(gòu)化描述詳細邏輯設(shè)計系統(tǒng)測試圖2-8軟硬件協(xié)同設(shè)計的結(jié)構(gòu)模型這實際是FPGA開發(fā)方式!2023/9/2華中科技大學計算機學院45硬件設(shè)計包括以下三個部分:(1)功能性設(shè)計:根據(jù)模型確定硬件需要實現(xiàn)的功能。(2)結(jié)構(gòu)化設(shè)計:確定硬件的組成,并確定數(shù)據(jù)的控 制流程。(3)物理設(shè)計與實現(xiàn):硬件邏輯設(shè)計,包括硬件電路 圖的設(shè)計,最后是物理硬件實現(xiàn),以開發(fā)板的形式出現(xiàn)。軟件設(shè)計包括以下三個部分:(1)功能分析和設(shè)計:分析系統(tǒng)需要實現(xiàn)的任務(wù)。(2)軟件模塊劃分:根據(jù)任務(wù)劃分使用的模塊。(3)模塊開發(fā)與實現(xiàn):通過編程語言實現(xiàn)各個高層模 塊,并通過交叉開發(fā)環(huán)境實現(xiàn)目標代碼。在系統(tǒng)集成時,需要實現(xiàn)硬件底層代碼(包括板級支持包代碼和硬件抽象層代碼),完成軟、硬件的集成任務(wù)。然后進行系統(tǒng)測試。2023/9/2華中科技大學計算機學院46詳細設(shè)計階段是利用需求分析的結(jié)果,設(shè)計滿足用戶需求的嵌入式系統(tǒng)產(chǎn)品的階段。這一階段主要工作是審查需求分析獲得的資料,進行體系結(jié)構(gòu)設(shè)計、硬件和軟件功能的劃分、硬件和軟件的設(shè)計、檢查設(shè)計等。1、審查需求分析資料
審查分析資料:在著手設(shè)計系統(tǒng)前,應(yīng)仔細審查問題陳述和用戶要求。著手某個項目前,應(yīng)該時刻記住系統(tǒng)實現(xiàn)的目標。因此,必須通過審查那些定義等待解決的問題和需達到的目標的文檔資料來整理一下自己的記憶。2.4.2詳細設(shè)計2023/9/2華中科技大學計算機學院47審查約束條件:約束條件將決定可做何選擇以及如何建立系統(tǒng)。例如,系統(tǒng)要求浮點運算,但預(yù)算不允許處理器中含一個浮點運算協(xié)處理器。這就意味著設(shè)計必須規(guī)定浮點運算將由軟件來完成。也意味著必須寫一個浮點函數(shù)庫或買一個第三方產(chǎn)品。2、體系結(jié)構(gòu)設(shè)計體系結(jié)構(gòu)設(shè)計的目的是描述系統(tǒng)的功能應(yīng)如何實現(xiàn)。體系結(jié)構(gòu)是系統(tǒng)整體結(jié)構(gòu)的一個計劃。系統(tǒng)的體系結(jié)構(gòu)取決于如下因素。1)系統(tǒng)實時方案系統(tǒng)實時方案是指客戶要求系統(tǒng)具有實時性時,應(yīng)該選擇什么樣的實時方案,是選擇硬實時系統(tǒng)還是軟實時系統(tǒng)。比如在硬實時系統(tǒng)的情況下,對定時的要求非常嚴格(如實時工業(yè)控制),因此,需要詳細地進行定時分析。2023/9/2華中科技大學計算機學院482)操作系統(tǒng)方案在嵌入式系統(tǒng)項目中,根據(jù)客戶需求來分析是否需要嵌入式實時操作系統(tǒng),如果客戶的應(yīng)用非常簡單或只有一項或少數(shù)的任務(wù),就不需要選擇操作系統(tǒng),要不然,就必須考慮嵌入式操作系統(tǒng)的選擇問題。3)非功能要求是否重要非功能性需求主要是指嵌入式系統(tǒng)產(chǎn)品的重量、物理尺寸等方面。如果是消費類電子產(chǎn)品,航空航天產(chǎn)品,傳感器網(wǎng)絡(luò)產(chǎn)品等,則這些因素就是非常關(guān)鍵的。2023/9/2華中科技大學計算機學院494)硬件方案在硬件方案選擇時,主要是選擇處理器和相關(guān)的硬件部分。使用比較多的處理器主要有微控制器、微處理器和DSP。對于小型應(yīng)用系統(tǒng),選擇微控制器就足夠了,否則,需要一個微處理器,如果應(yīng)用涉及到信號處理,比如音頻或視頻處理,就需要選擇DSP了。如果應(yīng)用系統(tǒng)是一個多功能的系統(tǒng),就可以選擇包含一個微控制器或微處理器和一個DSP,來滿足不同的功能。3、確定系統(tǒng)的軟硬件界線從嵌入式系統(tǒng)概念可知,嵌入式系統(tǒng)本身就是軟硬件的統(tǒng)一體、綜合體,也許軟件和硬件之間沒有明顯的界線,但是,在進行嵌入式系統(tǒng)設(shè)計時,必須對硬件與軟件進行定界,設(shè)計人員必須決定問題的哪一部分在硬件中解決,哪一部分在軟件中解決,這種選擇稱為軟硬件定界或稱為軟硬件劃分決策。2023/9/2華中科技大學計算機學院50在嵌入式系統(tǒng)設(shè)計中,到底是先設(shè)計硬件還是先設(shè)計軟件,或是軟硬件同時進行設(shè)計,這在嵌入式系統(tǒng)設(shè)計中沒有設(shè)計次序的限制,有的系統(tǒng)可以先設(shè)計硬件,也可以先設(shè)計軟件,也可以同時進行,具體可根據(jù)項目的要求、進度和約束條件來確定設(shè)計次序。4、確定軟硬件設(shè)計次序2023/9/2華中科技大學計算機學院515、硬件設(shè)計1)設(shè)計硬件子系統(tǒng)硬件設(shè)計的方法很多,主要有自頂向下(Top-Down)、自底向上、模塊設(shè)計方法和硬件設(shè)計外包等。但硬件設(shè)計中,最常用的方法是自頂向下(Top-Down)設(shè)計法。用自頂向下(Top-Down)方法:先將硬件分成各部件或模塊,并畫出一張或多張硬件部件的框圖。用一個框圖表示一個單獨的電路板或電路板的一部分(比如處理器子系統(tǒng)、存儲器子系統(tǒng)可以作為一個模塊,數(shù)據(jù)采集電路和現(xiàn)場驅(qū)動電路可以作為輸入/輸出電路的一部分。在某些情況下,還可將框圖用于一個或多個電路板。把電路邏輯分割成大致對應(yīng)于各功能的一些部件,這些功能將由某個成品芯片,某個需要制備的PAL(可編程陣列邏輯)芯片等提供。參考資料\電路原理圖\EB44B0_Sch.pdf框圖提供了一個快速直觀的參考,框圖給出如何同硬件通信,硬件各部件如何互連,而且,框圖幫助設(shè)計者在頭腦中構(gòu)建出一個高級的系統(tǒng)框架。2023/9/2華中科技大學計算機學院52在硬件設(shè)計階段,定義專門的接口電路和接口軟件;而接口的設(shè)計是硬件設(shè)計者和軟件設(shè)計者協(xié)同工作才能完成。硬件接口的定義和設(shè)計主要對I/O端口、硬件寄存器、內(nèi)存的共享與映射、硬件中斷的中斷號及分配、處理器指標等進行定義和設(shè)計。對硬件接口的定義和設(shè)計的基本要求是盡可能多的信息提供給軟件開發(fā)者,便于進行軟件設(shè)計和編程。2)硬件接口的定義和設(shè)計2023/9/2華中科技大學計算機學院531)設(shè)計軟件子系統(tǒng)在進行軟件設(shè)計時,先設(shè)計軟件的體系結(jié)構(gòu)。在嵌入式系統(tǒng)中比較普遍的體系結(jié)構(gòu)有:層次結(jié)構(gòu)、動態(tài)層次結(jié)構(gòu)、正交體系結(jié)構(gòu)靜態(tài)模塊結(jié)構(gòu)等。對于小的應(yīng)用系統(tǒng),一般使用層次結(jié)構(gòu)即可;對于大的應(yīng)用系統(tǒng)軟件設(shè)計,就應(yīng)該使用多種體系結(jié)構(gòu),才能更好的完成設(shè)計任務(wù)。6、軟件設(shè)計2023/9/2華中科技大學計算機學院54在設(shè)計好系統(tǒng)的軟件體系結(jié)構(gòu)后,就應(yīng)該選擇一種適合應(yīng)用開發(fā)需求的軟件設(shè)計方法。軟件設(shè)計的方法很多,主要有原型法、結(jié)構(gòu)化設(shè)計方法、面向?qū)ο笤O(shè)計方法、自低向上、自頂向下等。軟件設(shè)計一般采用自頂向下(Top-Down)的設(shè)計方法,在定義了硬件接口后,將系統(tǒng)的軟件分解成一些適當定義好的子系統(tǒng)或模塊。自頂向下設(shè)計方法的目的是找出自成一體的模塊或子系統(tǒng),考慮這些模塊或子系統(tǒng)之間的關(guān)系比整個系統(tǒng)考慮和討論起來更容易些;并且分離出的軟件模塊可以并行開發(fā),然后進行組裝。例如設(shè)計一個嵌入式系統(tǒng),包括LCD顯示、UART通信端口、以太網(wǎng)端口。設(shè)計時把這些模塊分開,分別進行設(shè)計和實現(xiàn),將會大大加快項目的進展。2023/9/2華中科技大學計算機學院55將模塊進行分解,分解后獨立開發(fā),就可以復(fù)用以前的設(shè)計工作,避免重復(fù)開發(fā)每一個子系統(tǒng)。也許可以購買注冊第三方的軟件(如開發(fā)網(wǎng)絡(luò)設(shè)備),購買商品化的TCP/IP協(xié)議棧會縮短產(chǎn)品上市的時間。然后就是詳盡描述各個子系統(tǒng)和模塊的功能。其實在找出子系統(tǒng)時,設(shè)計者已經(jīng)開始做這種工作了,因為這個任務(wù)本身就需要理解各個子系統(tǒng)的功能。軟件設(shè)計者需要加強對各子系統(tǒng)的了解,如各子系統(tǒng)做什么用,它能提供什么服務(wù)和需要別的哪個子系統(tǒng)提供什么服務(wù)。這些子系統(tǒng)的功能描述應(yīng)該以設(shè)計文檔的形式提供。需要說明的是,在設(shè)計嵌入式軟件模塊時,設(shè)計者必須用專業(yè)技能和專業(yè)知識確保系統(tǒng)實時性良好并且在允許的范圍內(nèi)不占用更多的存儲空間。2023/9/2華中科技大學計算機學院56軟件接口定義的主要任務(wù)是規(guī)定各個子系統(tǒng)的軟件接口和詳細的API(應(yīng)用程序編程接口),如規(guī)定函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)以及各子系統(tǒng)接口用到的全局數(shù)據(jù)。該部分采用函數(shù)原型、數(shù)據(jù)結(jié)構(gòu)聲明、類聲明等建立頭文件實現(xiàn)軟件接口定義。軟件系統(tǒng)的總設(shè)計師還應(yīng)該給出模塊之間的依賴關(guān)系,如果給出函數(shù)之間的依賴關(guān)系,那么設(shè)計就很詳細了。通常在較大的系統(tǒng)設(shè)計時,給出函數(shù)之間的依賴關(guān)系比較困難,一般只給到模塊之間的依賴關(guān)系就足夠了,函數(shù)之間的依賴關(guān)系留給各個模塊的實現(xiàn)部門來解決。2)軟件接口的定義2023/9/2華中科技大學計算機學院573)規(guī)定系統(tǒng)啟停過程規(guī)定系統(tǒng)啟停過程就是說明系統(tǒng)啟動和關(guān)閉過程中事件發(fā)生的順序。對于啟動,說明硬件和軟件子系統(tǒng)初始化的細節(jié),以及初始化的順序。4)定義出錯處理方案某些嵌入式系統(tǒng)需要連續(xù)數(shù)日或數(shù)周地無人值守運行,因此出錯處理在一個嵌入系統(tǒng)中是很關(guān)鍵的。比如無人值守的鐵路道口可知系統(tǒng),就是一個典型的嵌入式系統(tǒng)設(shè)備作為道口控制的核心,如果不規(guī)定或定義錯誤處理方案,就完全可能出現(xiàn)重大交通安全事故,甚至出現(xiàn)人身傷亡。在設(shè)計階段建立出錯處理策略是非常重要的。盡早定義出錯處理程序有助于確保程序員在設(shè)計一開始就納入出錯處理代碼,而不會在實現(xiàn)過程中,因出錯處理功能的定義工作還沒到位而忽略出錯條件。2023/9/2華中科技大學計算機學院585)看門狗計時器看門狗計時器(Watchdog)涉及到硬件和軟件的內(nèi)容,在后面的章節(jié)中還要詳細討論。有些的嵌入系統(tǒng)被部署在惡劣環(huán)境中工作,在這樣的環(huán)境中,任何事都有可能發(fā)生。設(shè)計人員必須有所準備,以應(yīng)付系統(tǒng)嚴重失敗而導(dǎo)致的崩潰,而且還必須想法從崩潰中完美地恢復(fù)系統(tǒng)。系統(tǒng)的這種恢復(fù)是借助看門狗計時器(Watchdog)完成的??撮T狗計時器是一個設(shè)計者建在某種CPU中的小報警時鐘。當CPU通電后,軟件打開它的監(jiān)視計時器,在正常運行期間軟件定期地對監(jiān)視計時器復(fù)位。監(jiān)視計時器始終不會數(shù)到零,即沒什么事發(fā)生。然而如果發(fā)生了某些問題,以致于軟件不能對監(jiān)視計時器復(fù)位,監(jiān)視計時器將重新啟動整個系統(tǒng)。有些具有監(jiān)視功能的CPU甚至提供一種方法,用這種方法,正在經(jīng)歷初始化的軟件能夠確定系統(tǒng)只是在通電,還是在從監(jiān)視器誘發(fā)的復(fù)位中恢復(fù)。如果是后者,軟件可檢查環(huán)境并試著判斷是什么導(dǎo)致了崩潰。2023/9/2華中科技大學計算機學院59在需求分析階段需要檢查的是完成資料的質(zhì)量和完整性,而設(shè)計階段需要檢查的是系統(tǒng)設(shè)計的正確性、準確性。在小的嵌入式系統(tǒng)項目,可以按噪聲、只字不提、超前規(guī)定、矛盾、模棱兩可、超前引用和一廂情愿7個判據(jù)來審查設(shè)計文檔。中等規(guī)模的項目中,要按一種非正式的排練方式來審查設(shè)計文檔,這個任務(wù)可以很簡單,如拿給同事朋友并向他們解釋你的設(shè)計,在解釋你的設(shè)計時,讓同事們用那7條判據(jù)夾檢查。大型嵌入式系統(tǒng)項目中,設(shè)計者應(yīng)作一個更正式的報告。召開一個設(shè)計審查會,成員主要由工程師組成,并盡可能包括一些對項目有不同看法角度的成員,如做市場的人員、最終用戶,向其解釋他們要借以評判本設(shè)計的7條判據(jù),然后向他們講解你的設(shè)計。雖然向那些非技術(shù)人員解釋技術(shù)性問題有困難,但你會發(fā)現(xiàn),他們往往會發(fā)現(xiàn)一些被設(shè)計者忽視的錯誤。7、檢查設(shè)計(略)2023/9/2華中科技大學計算機學院608、嵌入式系統(tǒng)設(shè)計的自動化(略)嵌入式系統(tǒng)的設(shè)計工作是一個涉及到多個方面的復(fù)雜工程,完成一個嵌入式系統(tǒng)的設(shè)計項目,包括需求分析、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)、系統(tǒng)測試等階段。系統(tǒng)設(shè)計階段是依據(jù)需求分析的資料,完成符合客戶需求的系統(tǒng)設(shè)計,然后將設(shè)計方案提交給開發(fā)部門,開發(fā)部門完全按照設(shè)計方案進行實現(xiàn)(主要包括硬件設(shè)計、軟件設(shè)計和編碼等)。由此可見,系統(tǒng)設(shè)計是整個嵌入式系統(tǒng)工程中至關(guān)重要的一個環(huán)節(jié),系統(tǒng)設(shè)計的缺陷會嚴重影響開發(fā)工作,而且,完善的系統(tǒng)設(shè)計會花費大量的時間。為減少設(shè)計開銷并提高性能和設(shè)計效率,人們一直在強調(diào)嵌入式系統(tǒng)設(shè)計過程的自動化。設(shè)計嵌入式系統(tǒng)的設(shè)計人員需要具有軟、硬件兩方面的知識。由于軟、硬件設(shè)計組之間缺乏交流,往往不能達到設(shè)計的最優(yōu)化。嵌入式系統(tǒng)設(shè)計工具不支持設(shè)計任務(wù)的分離,從而使問題更加復(fù)雜化。所以,嵌入式系統(tǒng)自動化設(shè)計工具的出現(xiàn)是大勢所趨??傊度胧较到y(tǒng)的設(shè)計框架包括系統(tǒng)定義、系統(tǒng)設(shè)計分割、軟硬件合成、軟硬件估計和設(shè)計確認。2023/9/2華中科技大學計算機學院619、硬件平臺(略)嵌入式系統(tǒng)的開發(fā)人員在選擇最好的硬件時,由于缺乏完整或精確的信息而使選擇硬件成為復(fù)雜且困難的工作。硬件成本經(jīng)常是關(guān)鍵的議題,在考慮成本時,需要確信在考慮產(chǎn)品的整個成本而不僅是CPU的成本,這是因為好的CPU一旦加上總線邏輯和延時電路使之與外設(shè)一起工作時,硬件系統(tǒng)可能變成非常昂貴的產(chǎn)品。比如,CAN總線,就其本身而言,應(yīng)該時非常容易實現(xiàn),且費用不高,但如果是將CAN總線進行分析,也就是CAN總線分析儀,那就非常昂貴,少的幾萬,多的要十多萬人民幣。嵌入式系統(tǒng)的硬件平臺比較多,有ARM系列(目前有幾十種基于ARM內(nèi)核的處理器被使用)、Motorola公司的PowerPC系列、Coldfire系列、DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等,都可選為硬件平臺。但最好在選適合系統(tǒng)應(yīng)用功能和所需的速度,并且制定好外接設(shè)備和接口標準。這樣可準確地定位所需要的硬件方案,得到性價比最高的系統(tǒng)。2023/9/2華中科技大學計算機學院62嵌入式系統(tǒng)的開發(fā)平臺由硬件平臺、操作系統(tǒng)、編程語言和開發(fā)工具組成。嵌入式系統(tǒng)開發(fā)先選擇處理器,用處理器廠商提供的開發(fā)工具,然后就是選擇嵌入式操作系統(tǒng),有的嵌入式操作系統(tǒng)廠商也提供必要的開發(fā)工具,比如用在操作系統(tǒng)上編寫應(yīng)用程序的API、調(diào)試器等。最后就是確定編程語言,并進行開發(fā)工作。除了上述的開發(fā)工具,可能還需要編程器、ROM仿真器、內(nèi)部電路仿真器、指令集模擬器、測試儀器(如示波器、邏輯分析儀和萬用表等)用于調(diào)試程序和硬件。1)選擇處理器選擇處理器沒有什么特殊的規(guī)定,根據(jù)開發(fā)者的意愿。一般來說,在選擇嵌入式處理器時,主要是根據(jù)用戶的需求和項目的要求選擇處理器。同時兼顧開發(fā)人員對處理器的熟悉程度,以節(jié)省時間、提高系統(tǒng)設(shè)計開發(fā)效率。2.4.3系統(tǒng)實現(xiàn)1、選擇開發(fā)平臺2023/9/2華中科技大學計算機學院63
處理器的處理速度影響處理器速度的因素很多,主要是處理器的主頻,還包括多方面時鐘頻率、內(nèi)部寄存器的大小、寄存器是否被公平對待(即指令對等處理所有的寄存器)、有助于耗時操作的特殊的內(nèi)置硬件(如一個硬件乘法單元)等。處理器的處理速度一般用MIPS來表示,如果系統(tǒng)需要大量的浮點運算需求,那么可以用每秒執(zhí)行多少百萬次浮點運算(Millionoffloat-PointOperationsPerSecond,MFLOPS)來表示??偟脑瓌t是應(yīng)當讓處理器的能力同項目的技術(shù)指標匹配。
對選擇的處理器熟悉程度在開發(fā)嵌入式項目時,完全有可能碰到這樣的情況,選擇的處理器的各種指標(成本、處理速度等)都符合要求,但是項目組的人員對這種處理器不太熟悉,這就影響項目進度和項目開發(fā)效率。事實上,目前的嵌入式處理器種類非常多,項目中只能選擇惟一的一種處理器的情況并不多見。因此選擇處理器也可選擇多個方案,根據(jù)開發(fā)人員的熟練程度做進一步的選擇。2023/9/2華中科技大學計算機學院64
處理器上的I/O功能是否滿足需求如果所選擇的嵌入式處理器提供內(nèi)置外設(shè)(如UART、以太網(wǎng)控制器、液晶控制器等),就可以減少芯片數(shù)量,進而降低整個系統(tǒng)的成本,提高了系統(tǒng)的可靠性。因此,在選擇處理器時,盡量選擇單芯片方案。
處理器的軟件支持工具一種新的處理器并非所有的嵌入式操作系統(tǒng)都會支持。另外,還需要考慮開發(fā)語言與交叉編譯器等的支持。
處理器的調(diào)試支持如果所選擇的處理器沒有集成的調(diào)試支持,就必須使用在線仿真器。低速處理器的在線仿真器比較便宜,但是高速處理器的在線仿真器非常昂貴,因此應(yīng)盡量選擇內(nèi)置硬件調(diào)試功能的處理器,如JTAG調(diào)試方式、BDM調(diào)試方式等。如具備JTAG調(diào)試接口的處理器幾乎成了嵌入式處理器的標準配置功能。
處理器制造商的支持可信度如何2023/9/2華中科技大學計算機學院652)選擇硬件部件
產(chǎn)品的需求量嵌入式系統(tǒng)客戶的產(chǎn)品需求量越大,越值得自己去設(shè)計和制備硬件,從而降低成本。相反,如果量很小,設(shè)計的費用淹沒自制所節(jié)省的費用,這時從第三方購買成品的電路板可能是個好的方案,例如常用的PCI04模塊、配套的I/O板卡和模塊等。
目標市場的機會如果需要使產(chǎn)品盡快發(fā)售,從而獲得競爭力,盡可能買硬件自制的越少越好。如果有富裕充足的設(shè)計時間,可以設(shè)計自己的硬件,以降低成本。
軟件對硬件的依賴程度有的系統(tǒng)開發(fā)時,軟件必須盡早地在硬件上進行開發(fā),這時購買成品的硬件就是一個比較好的方案。如選擇S3C44B0x進行中小規(guī)模的嵌入式系統(tǒng)開發(fā)時,當工期較短或數(shù)量巨大等,就可以先購買相應(yīng)的開發(fā)板,發(fā)板上進行軟件開發(fā)。大多數(shù)的嵌入式處理器的制造商提供了評估板提供用戶使用,評估板的功能做得非常全面,只要設(shè)計者選擇了該廠家的處理器,那么處理器上集成的功能在評估板上都有設(shè)計,方便了軟件開發(fā)工作,這時硬件開發(fā)者參考評估板進行定制設(shè)計即可。2023/9/2華中科技大學計算機學院663)選擇操作系統(tǒng)在選擇嵌入式實時操作系統(tǒng)(real-timeoperationsystem,RTOS)時,應(yīng)該根據(jù)具體項目,如果項目為實時性比較強的操作系統(tǒng),該操作系統(tǒng)應(yīng)該具備以下特征:基于優(yōu)先級的多任務(wù)搶占式調(diào)度策略;內(nèi)核短小,實時性好,能進行快速的上下文切換(小于5μs),效率高;開放源代碼,并且支持一系列的處理器芯片;低的內(nèi)存要求;具有可裁剪、可移植性。因此,在選擇操作系統(tǒng)時,主要是根據(jù)操作系統(tǒng)的功能、配套的開發(fā)工具、移植難度如何、對調(diào)試的支持等來決定,具體判別如下:
功能選擇根據(jù)項目需要的操作系統(tǒng)的功能來選擇操作系統(tǒng)產(chǎn)品,考慮的具體問題有以下幾點:2023/9/2華中科技大學計算機學院671、需要操作系統(tǒng)的全部功能還是部分功能。全部功能包括處理機管理、存儲器管理;2、文件系統(tǒng)、人機界面等;3、實時系統(tǒng)還是分時系統(tǒng);4、操作系統(tǒng)是否可裁剪;5、如果系統(tǒng)很小,是否可以不需要操作系統(tǒng)。
開發(fā)工具方面有的實時操作系統(tǒng)只支持該系統(tǒng)供應(yīng)商的開發(fā)工具,即必須在操作系統(tǒng)供應(yīng)商那里獲取編譯器、調(diào)試器等。相反,如果操作系統(tǒng)使用廣泛的第三方工具(μC/OS-II操作系統(tǒng),就可以在ARM公司提供的SDT2.51、ADS1.2和keilC51等環(huán)境下進行開發(fā)),那就有更多的選擇余地。2023/9/2華中科技大學計算機學院68
移植難度在購買操作系統(tǒng)后,進行的開發(fā)工作主要是應(yīng)用開發(fā)和板級支持包的開發(fā)。所謂板級支持包,指的是操作系統(tǒng)運行在用戶的目標板上所需的軟件,一般操作系統(tǒng)的供應(yīng)商會提供流行的標準板的支持包,用戶板的一些參數(shù)可能與標準板有差別,因此需要進行板級支持包的開發(fā)。通常這種差別不是太大,廠家也會提供一些移植的模板以供用戶參考。不同的操作系統(tǒng)的移植難度不同,用戶必須考慮到這一點。
調(diào)試支持有的操作系統(tǒng)允許用戶打開特殊的調(diào)試層,并深入操作系統(tǒng)內(nèi)部去調(diào)用一些有助于跟蹤解決應(yīng)用程序問題的功能。還有的操作系統(tǒng)提供源代碼(比如μC/OS-II、嵌入式Linux等),這樣的話,便于用戶更好地解決調(diào)試的問題。需要指出,提供源代碼的操作系統(tǒng)系統(tǒng)不一定更方便用戶的使用,因為用戶開發(fā)的重點在于應(yīng)用,而不是操作系統(tǒng)。相反,提供功能強大的調(diào)試手段則是必要的。2023/9/2華中科技大學計算機學院69
內(nèi)存要求如何操作系統(tǒng)對內(nèi)存的需要,也是選擇操作系統(tǒng)的重要指標之一。每一種操作系統(tǒng)的運行,都需要一定的內(nèi)存支持,比如μC/OS-II操作系統(tǒng)最小只需要8KB的內(nèi)存。操作系統(tǒng)需要的內(nèi)存越多,意味著目標板需要設(shè)計更多的存儲器,加大了系統(tǒng)的成本,有時也可能降低系統(tǒng)的運行速度,這時需要提高處理器的性能,無形中又增加了成本。
項目人員是否熟悉此操作系統(tǒng)在選擇操作系統(tǒng)時,一定要考慮到項目人員對所選操作系統(tǒng)的熟悉程度。如果不熟悉,那么項目的進度將增加額外的時間,以便讓程序員熟悉此操作系統(tǒng)。通常,嵌入式操作系統(tǒng)的API各不相同,但是差別也不會太大,目前大多數(shù)嵌入式操作系統(tǒng)的API符合POSIX標準。2023/9/2華中科技大學計算機學院70是否包括所有需要的部件所選擇的操作系統(tǒng)是否包括項目必須的應(yīng)用部件,如果沒包括,必須自己開發(fā)或到別處去買,并要將它們集成。比如選擇μC/OS-II操作系統(tǒng)后,由于μC/OS-II是開源的操作系統(tǒng),沒有TCP/IP協(xié)議、文件系統(tǒng)、圖形系統(tǒng)等,如果項目又需要這些部件,那就只有自己開發(fā)或去購買,然后在集成。一般要求的部件包括網(wǎng)絡(luò)支持(TCP/IP協(xié)議等)、文件系統(tǒng)、快速文件系統(tǒng)、計算機卡支持、CDROM支持、浮點仿真運算、人機界面以及串行I/O支持。2023/9/2華中科技大學計算機學院71
是否有目標硬件的驅(qū)動程序針對某一種嵌入式處理器的操作系統(tǒng),一般會提供處理器上的設(shè)備驅(qū)動程序。如果用戶的設(shè)備驅(qū)動程序沒有支持,那么必須開發(fā)。一般操作系統(tǒng)會提供開發(fā)的模板代碼。
操作系統(tǒng)是否具有可擴展性具有可擴展性的操作系統(tǒng)使用的靈活性比較好,用戶功能方便地裁剪不需要的部分,從而降低對硬件的資源要求,否則不必要的系統(tǒng)功能會消耗內(nèi)存資源。4)選擇編程語言大多數(shù)系統(tǒng)的開發(fā)使用C語言和匯編語言,有的使用C++語言,有的選擇Java語言、EmbeddedVisualBasic和EmbeddedVisualC/C++等其他語言。選擇編程語言主要考慮軟件開發(fā)人員的熟悉程度、語言使用的廣泛程度以及語言的性能如何等。一般來說,越是高級的語言,其編譯器和運行庫附加的開銷越大,應(yīng)用程序也越大、越慢。例如,已經(jīng)公認用匯編語言能寫出最小最快的程序,其次是用C語言。2023/9/2華中科技大學計算機學院72嵌入式系統(tǒng)開發(fā)的一般方式采用是先在評估板進行開發(fā),當在評估板上開發(fā)、運行、調(diào)試成功之后,再根據(jù)評估板使用的硬件,裁剪一般應(yīng)用中不需要的硬件,最后做成產(chǎn)品板大量生產(chǎn)。嵌入式開發(fā)平臺需要在評估板上提供微處理器、存儲芯片以及其他的外圍硬件等設(shè)備,在軟件方面提供系統(tǒng)的開發(fā)平臺和下載工具,還有駐留在硬件上的Bootloader工具。對于有嵌入式操作系統(tǒng)的開發(fā)平臺,還需要提供操作系統(tǒng)開發(fā)工具。5)關(guān)于評估板2023/9/2華中科技大學計算機學院736)板級支持包在嵌入式系統(tǒng)中,雖然選擇的嵌入式處理器完全相同(更多的情況是嵌入式處理器屬于一個系列),但是具有不同的片上外部設(shè)備配置,不同嵌入式處理器的片上外部電路不同(因為用戶的應(yīng)用不同),這就造成操作系統(tǒng)不可能適應(yīng)所有的嵌入式應(yīng)用。通常操作系統(tǒng)的提供商的做法是把操作系統(tǒng)按照層次進行劃分,分為上下兩個層面;上層與硬件無關(guān),下層與硬件有關(guān)。用戶在把操作系統(tǒng)運行到目標板上時,需要針對自己的目標板的特殊情況,編寫目標板的支持操作系統(tǒng)運行的代碼,以適應(yīng)操作系統(tǒng)的運行,這一部分代碼通常稱為板級支持包(BoardSupportPackage,BSP)。板級支持包通常不會太復(fù)雜,對于某種商業(yè)單板機(Single-BoardComputer,SBC),則BSP可能早己準備妥當。大多數(shù)操作系統(tǒng)的供應(yīng)商會提供板級支持包的開發(fā)方法和開發(fā)模板。2023/9/2華中科技大學計算機學院741)嵌入式系統(tǒng)的軟件開發(fā)過程軟件開發(fā)主要分為建立交叉開發(fā)環(huán)境、交叉編譯和連接、重定位和下載、聯(lián)機調(diào)試等幾個步驟。
建立交叉開發(fā)環(huán)境。在準備開發(fā)之前,必須先了解和認識或熟悉嵌入式編程中使用的交叉開發(fā)環(huán)境(CrossDevelopmentEnvironment)。交叉開發(fā)環(huán)境是嵌入式系統(tǒng)開發(fā)中必不可少的編程環(huán)境。交叉開發(fā)環(huán)境的原理很簡單,只是在主機和目標機器體系結(jié)構(gòu)不同的情況下,在主機上開發(fā)那些將在目標機器上運行的程序。比如說在PC機上利用ADS/SDT開發(fā)ARM目標板上運行的程序,就是在PC機上開發(fā)(程序編輯、編譯、定位連接等),形成ARM目標板可運行的代碼。這里提到的ADS/SDT加上桌面計算機就構(gòu)成了交叉開發(fā)環(huán)境。2、軟件開發(fā)過程2023/9/2華中科技大學計算機學院75按發(fā)布的形式,交叉開發(fā)環(huán)境可分為開放和商用兩種類型。開放式交叉開發(fā)環(huán)境實例主要有g(shù)cc,它可以支持多種交叉平臺的編譯器,但要遵守GeneralPublicLicense的規(guī)定。商用交叉開發(fā)環(huán)境有MetrowerksCodeWarrior,ARMSoftwareDevelopmentToolkit,SDSCrossCompiler,WindRiverTornado等。按照使用方式,交叉開發(fā)工具主要分為使用Makefile和IDE開發(fā)環(huán)境兩種類型。使用Makefile的開發(fā)環(huán)境需要編譯Makefile來管理和控制項目的開發(fā),可以自己手寫,有時候也可以使用一些自動化的工具。這種開發(fā)工具是gcc,SDSCrossCompiler等。新類型的開發(fā)環(huán)境一般有一個用戶友好的IDE界面,方便管理和控制項目的開發(fā),如CodeWarrior等。有些開發(fā)環(huán)境既可以用Makefile管理項目,又可以使用IDE,給使用者很大的選擇余地。2023/9/2華中科技大學計算機學院76
交叉編譯和連接。使用建立好的交叉開發(fā)環(huán)境完成編譯和連接工作。比如ARM的gcc交叉開發(fā)環(huán)境中,arm-linux-gcc是編譯器,arm-linux-ld是連接器。但并不是說對于一種體系結(jié)構(gòu)只有一種編譯連接器,比如對M68K體系結(jié)構(gòu)的gcc編譯器而言,就有多種不同的編譯和連接器。如果使用COFF的可執(zhí)行文件格式的話,那么在編譯Linux內(nèi)核時需要使用m68k-coff-gcc和m68k-coff-ld的編譯連接器;在編譯應(yīng)用程序時需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld的編譯連接器。這是因為應(yīng)用程序代碼需要編譯成為可重定位代碼。這樣,雖然因為內(nèi)核占用位置導(dǎo)致應(yīng)用程序存放的位置不同,但仍可以使用相對地址運行應(yīng)用程序。2023/9/2華中科技大學計算機學院77
重定位和下載編譯連接后形成目標板的image文件,就可以通過相應(yīng)的工具與目標板上的bootloader程序進行通信,可以使用bootloader提供的通訊工具與目標機相連接,也可以使用通用的終端工具與目標板相連接。一般在目標板上使用串口,通過主機端工具和目標板通信。bootloader中提供下載等控制命令,完成在嵌入式系統(tǒng)正式在目標板上運行之前對目標板的控制任務(wù)。bootloader指定image文件下載的位置。在下載結(jié)束之后,使用bootloader提供的運行命令,從指定地址開始運行嵌入式系統(tǒng)軟件。2023/9/2華中科技大學計算機學院78
聯(lián)機調(diào)試。嵌入式系統(tǒng)的調(diào)試有多種方法,有軟件調(diào)試和硬件調(diào)試兩種方法,前者使用軟件調(diào)試器調(diào)試嵌入式系統(tǒng)軟件,后者使用仿真調(diào)試器協(xié)助調(diào)試過程。就操作系統(tǒng)調(diào)試的層次而言,有時需要調(diào)試嵌入式操作系統(tǒng)的內(nèi)核,有時需要調(diào)試嵌入式操作系統(tǒng)的應(yīng)用程序。由于嵌入式系統(tǒng)特殊的開發(fā)環(huán)境,不可避免的是調(diào)試時必然需要目標運行平臺和調(diào)試器兩方面的支持。2)在主機系統(tǒng)上驗證軟件在主機系統(tǒng)上驗證軟件是必要的一個步驟,因此建議嵌入式開發(fā)人員進行該項工作。不過在主機上驗證完成后,仍然需要在目標板上進行驗證和測試。目前有的嵌入式系統(tǒng)的開發(fā)工具提供商提供了在開發(fā)主機上驗證目標系統(tǒng)的手段,如ARM公司的軟件仿真環(huán)境驗證軟件的執(zhí)行時間,WindRiver公司的simlink工具可以仿真網(wǎng)絡(luò)協(xié)議的開發(fā),ATI的MNT也可以仿真網(wǎng)絡(luò)協(xié)議的開發(fā),這些公司也有文件系統(tǒng)的仿真開發(fā)工具,這些工具都可以作為嵌入式軟件的驗證平臺。一般地,在主機上驗證軟件只能驗證軟件的一部分功能和一部分性能。2023/9/2華中科技大學計算機學院793)在目標系統(tǒng)上驗證軟件如果軟件在主機系統(tǒng)上測試通過,就可以移植到目標板,在這里完成對功能和性能要求的完整測試。當然在這個階段,硬件工程師和軟件工程師必須一起工作以確保軟件按照最初的要求工作。如果性能目標沒有達到,代碼優(yōu)化就成為本階段的首要任務(wù)。但是,隨著好的仿真器的使用,軟件驗證很大程度上可以在主機系統(tǒng)上完成。2023/9/2華中科技大學計算機學院804)代碼優(yōu)化嵌入式系統(tǒng)的軟件開發(fā)的目標不僅要實現(xiàn)預(yù)定的功能,而且要是最優(yōu)的代碼來完成需要的功能。這里的最優(yōu),主要是指代碼的質(zhì)量,包括三方面的含義,代碼長度最短、執(zhí)行時間最短和代碼運行期間對內(nèi)存的占用量要最少。有時這些方面是矛盾的,就需要在代碼尺寸和執(zhí)行速度兩者之間取得平衡。根據(jù)具體應(yīng)用,需要決定哪一個優(yōu)先級更高。如果嵌入式系統(tǒng)有存儲器限制,而速度不是主要關(guān)心的問題,那么代碼尺寸很重要。如果要滿足實時條件,那么執(zhí)行速度就比代碼尺寸更加重要。使用如下的檢驗標準進行代碼優(yōu)化。2023/9/2華中科技大學計算機學院81
刪除程序中的無用代碼,即清除那些從不執(zhí)行的 代碼。
刪除調(diào)試代碼。
避免使用大型的庫例程。
避免使用遞歸式例程,因為它們需要很大的堆棧。
避免浮點操作。
優(yōu)化算法。通過使用非常簡單的訣竅來減少計算 要求,如乘法可以通過左移操作來完成。3、開發(fā)階段的文檔樣例從軟件的完整性來說,軟件包括程序和文檔兩方面的內(nèi)容,只有代碼的軟件不是完整的軟件;而只有文檔的軟件不是軟件。在嵌入式系統(tǒng)產(chǎn)品開發(fā)過程中,開發(fā)階段完成系統(tǒng)產(chǎn)品的實現(xiàn),這一階段涉及了一些文檔,這些文檔對完成產(chǎn)品設(shè)計、維護等非常重要。2023/9/2華中科技大學計算機學院82這里給出推薦的文檔種類和文檔內(nèi)容,如表2-2所列,可供讀者參考。表2-2開發(fā)階段的文檔清單文件名稱內(nèi)容1、技術(shù)文件目錄1、任務(wù)來源、設(shè)計依據(jù)、產(chǎn)品用途以及使用范圍2、主要工作原理、軟硬件分工、基本參數(shù)、主要功能、技術(shù)指標2、技術(shù)任務(wù)書3、總體布局、主要部件概述、提出國內(nèi)外同類產(chǎn)品水平比較4、標準化綜合要求、關(guān)鍵技術(shù)預(yù)測、開發(fā)周期估算3、技術(shù)方案報告4、產(chǎn)品標準(草案)1、產(chǎn)品范圍、引用標準、基本參數(shù)及形式、技術(shù)要求、試驗方法2、檢驗規(guī)則5、技術(shù)條件(進廠)使用范圍、技術(shù)要求、試驗方法6、可靠性技術(shù)設(shè)計描述系統(tǒng)采用的可靠性技術(shù)和措施的報告2023/9/2華中科技大學計算機學院837、技術(shù)設(shè)計說明書硬件1、總體方案、產(chǎn)品結(jié)構(gòu)、產(chǎn)品性能2、電路工作原理分析、技巧、結(jié)構(gòu)3、工藝合理性、主要故障鑒別方法軟件1、總體方案及體系結(jié)構(gòu)、任務(wù)調(diào)試原理或總控流程說明2、各種功能的實現(xiàn)方法、處理流程,數(shù)據(jù)庫說明、邏輯結(jié)構(gòu)3、數(shù)據(jù)格式說明、內(nèi)存分配方案、各部分接口設(shè)計4、通用子程序和標準子程序設(shè)計8、試驗報告9、總結(jié)1、技術(shù)水平、研制過程中出現(xiàn)的問題的解決措施2、對未達到的技術(shù)任務(wù)書要求的原因進行說明表2-2開發(fā)階段的文檔清單(續(xù))2023/9/2華中科技大學計算機學院84host-target測試或cross-testing
開發(fā)環(huán)境被認為是主機平臺,軟件運行環(huán)境為目標平臺。主機系統(tǒng)環(huán)境中進行的測試稱為host-target測試或cross-testing.2.4.4系統(tǒng)測試2023/9/2華中科技大學計算機學院85單元測試;集成測試;系統(tǒng)測試;確認測試。這些方法在嵌入式系統(tǒng)的各個測試階段有著通用性。嵌入式軟件測試方法2023/9/2華中科技大學計算機學院86所有單元級測試都可以在主機環(huán)境上進行,除非少數(shù)情況,特別具體指定了單元測試直接在目標環(huán)境進行。最大化在主機環(huán)境進行軟件測試的比例,通過盡可能小的目標單元訪問所有目標指定的界面。在主機平臺上運行測試速度比在目標平臺上快的多,當在主機平臺完成測試,可以在目標環(huán)境上重復(fù)作一簡單的確認測試,以確認測試結(jié)果在主機和目標機上的不同之處。在目標環(huán)境上進行確認測試將確定一些未知的、未預(yù)料到的和未說明的主機與目標機的不同。例如,目標編譯器可能有bug,但在主機編譯器上沒有。單元測試2023/9/2華中科技大學計算機學院87軟件集成也可在主機環(huán)境上完成,在主機平臺上模擬目標環(huán)境運行,當然在目標環(huán)境上重復(fù)測試也是必須的,在此級別上的確認測試將確定一些環(huán)境上的問題,比如內(nèi)存定位和分配上的一些錯誤。在主機環(huán)境上的集成測試的使用,依賴于目標系統(tǒng)的具體功能有多少。有些嵌入式系統(tǒng)與目標環(huán)境耦合的非常緊密,若在主機環(huán)境做集成是不切實際的。一個大型軟件的開發(fā)可以分幾個級別的集成。低級別的軟件集成在主機平臺上完成有很大優(yōu)勢,越往后的集成越依賴于目標環(huán)境。
集成測試2023/9/2華中科技大學計算機學院88所有的系統(tǒng)測試和確認測試必須在目標環(huán)境下執(zhí)行。當然在主機上開發(fā)和執(zhí)行系統(tǒng)測試,然后移植到目標環(huán)境重復(fù)執(zhí)行是很方便的。對目標系統(tǒng)的依賴性會妨礙將主機環(huán)境上的系統(tǒng)測試移植到目標系統(tǒng)上,況且只有少數(shù)開發(fā)者會卷入系統(tǒng)測試,所以有時放棄在主機環(huán)境上執(zhí)行系統(tǒng)測試可能更方便。確認測試最終的實施舞臺必須在目標環(huán)境中,系統(tǒng)的確認必須在真實系統(tǒng)之下測試,而不能在主機環(huán)境下模擬。這關(guān)系到嵌入式軟件的最終使用。系統(tǒng)測試和確認測試2023/9/2華中科技大學計算機學院89Cross-test策略A)使用測試工具的插裝功能(主機環(huán)境)執(zhí)行靜態(tài)測試分析,并且為動態(tài)覆蓋測試準備好一插裝好的軟件代碼。B)使用源碼在主機環(huán)境執(zhí)行功能測試,修正軟件的錯誤和測試腳本中的錯誤。C)使用插裝后的軟件代碼執(zhí)行覆蓋率測試,添加測試用例或修正軟件的錯誤,保證達到所要求的覆蓋率目標。D)在目標環(huán)境下重復(fù)(B),確認軟件在目標環(huán)境中執(zhí)行測試的正確性。E)若測試需要達到極端的完整性,最好在目標系統(tǒng)上重復(fù)(C),確定軟件的覆蓋率沒有改變。通常在主機環(huán)境執(zhí)行多數(shù)的測試,只是在最終確定測試結(jié)果和最后的系統(tǒng)測試才移植到目標環(huán)境。2023/9/2華中科技大學計算機學院90功能測試功能測試稱為黑盒測試,這是因為其測試實例在設(shè)計時不引用程序的實際代碼,也就是不用暴露盒子的內(nèi)部。嵌入式系統(tǒng)包含輸入、輸出以及在兩者之間實現(xiàn)的一些算法。在系統(tǒng)中哪些輸入是可接受的?這些輸入應(yīng)當怎樣聯(lián)系到輸出?黑盒測試是基于對以上問題的回答。黑盒測試根本不知道輸入與輸出之間的算法到底是如何實現(xiàn)的,只關(guān)心對于給定的輸入,程序的輸出與預(yù)計是否相同,2023/9/2華中科技大學計算機學院91黑盒測試內(nèi)容1)極限情況測試:測試中有意使輸入信道、內(nèi)存緩 沖區(qū)、磁盤控制器、內(nèi)存管理器等部件超載。(2)邊界測試:輸入表示特定輸入范圍邊界的值(例 如,對于整數(shù)型輸入,應(yīng)選擇最大值、最小值, 還有一1、0、+1)以及使輸出產(chǎn)生輸出范圍邊 界的值。(3)異常測試:測試應(yīng)當觸發(fā)失敗模式或異常模式。(4)錯誤猜測:測試基于以前進行軟件測試及測試類 似程序的工作經(jīng)驗。(5)隨機測試:通常是測試中效率最低的形式,但現(xiàn) 在仍廣泛使用在評估用戶界面代碼健壯性的測試 中。(6)性能測試:由于性能要求是產(chǎn)品需求的一部分,所以性能測試處于功能測試的范圍之內(nèi)。由于黑盒測試僅僅依賴于程序需求及其功能行為,所以它可以在需求工作完成后馬上就進行開發(fā)。這就允許黑盒測試實例的開發(fā)與系統(tǒng)其余部分的設(shè)計同時進行。2023/9/2華中科技大學計算機學院92覆蓋測試/白盒測試而覆蓋測試是盡可能使每條代碼語句、判定點或判定路徑都最少被執(zhí)行一次,這樣就能夠避免功能測試的弱點。覆蓋測試也稱作白盒測試或玻璃盒測試,它需要軟件實現(xiàn)的全部知識來進行設(shè)計,測試時需要看到程序?qū)崿F(xiàn)、執(zhí)行的細節(jié)。也就是說,要“看到盒子里邊”。設(shè)計白盒測試要在完成源代碼的基礎(chǔ)上進行,要用到程序員關(guān)于應(yīng)用編程接口API(ApplicationProgrammingInterface)內(nèi)部控制結(jié)構(gòu)及異常處理能力的知識。由于白盒測試依賴于具體的實現(xiàn)決策,只有在代碼編寫完成后才能開始測試設(shè)計工作。在嵌入式系統(tǒng)測試方法和策略中,覆蓋測試是測試方法中最重要的測試策略,這是由于可以從中看出有多少代碼已經(jīng)檢查過。測試結(jié)果可以很準確地預(yù)言測試人員馬上要面對多少程序設(shè)計的錯誤。2023/9/2華中科技大學計算機學院93白盒測試包括內(nèi)容1)語句測試:選擇的測試實例至少執(zhí)行一次程序中 的每條語句。(2)判定或分支覆蓋:選擇的測試實例使每個分支 (包括真與假分支)至少運行一次。(3)條件覆蓋:選擇的測試實例使每個用于判定的條 件(項)具有所有可能的邏輯值。理論上,白盒測試能利用或操作它所需的一切進行測試。2023/9/2華中科技大學計算機學院94灰盒測試灰盒測試指的是那些僅僅知道部分程序內(nèi)部細節(jié)的測試方法。由于白盒測試需要緊密聯(lián)系到代碼的內(nèi)部細節(jié),所以造成系
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園膳食委員會會議記錄
- 廚余垃圾智能收運處置系統(tǒng)項目可行性分析
- 商鋪租房合同協(xié)議書
- 更換合同協(xié)議書
- 解除借錢合同協(xié)議書
- 樓頂防水合同協(xié)議書范本
- 林地合同終止協(xié)議書范本
- 打印店合同協(xié)議書
- 復(fù)婚合同協(xié)議書
- 畫室宿管合同協(xié)議書
- 2024年Adobe設(shè)計師考試網(wǎng)頁設(shè)計重要性試題及答案
- 《激光切割技術(shù)》課件
- 2025屆深圳市高三二模英語試題(含答案)
- 2025年有限空間作業(yè)安全防護措施測試題庫試題
- 抗凝劑皮下注射技術(shù)臨床實踐指南(2024版)解讀 2
- 痔瘡中醫(yī)治療
- GB/T 20014.28-2025良好農(nóng)業(yè)規(guī)范第28部分:棉花控制點與符合性規(guī)范
- 2025湄洲灣職業(yè)技術(shù)學院教師招聘考試試題及答案
- TCECS24-2020鋼結(jié)構(gòu)防火涂料應(yīng)用技術(shù)規(guī)程
- 2025年五級應(yīng)急救援員資格理論考試題庫(含答案)
- 運輸公司2024年防汛工作方案
評論
0/150
提交評論