嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程_第1頁
嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程_第2頁
嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程_第3頁
嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程_第4頁
嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦嵌入式系統(tǒng)軟件開發(fā)和設(shè)計流程復(fù)習(xí)課程*

本文由hquwgz貢獻(xiàn)

ppt文檔可能在WAP端掃瞄體驗不佳。建議您優(yōu)先挑選TXT,或下載源文件到本機查看。

嵌入式系統(tǒng)及應(yīng)用

第九章嵌入式系統(tǒng)軟件的開發(fā)

主要內(nèi)容

嵌入式軟件開發(fā)工具嵌入式系統(tǒng)開發(fā)模式實時軟件分析設(shè)計辦法

第一節(jié)嵌入式軟件開發(fā)工具

嵌入式軟件開發(fā)工具的分類嵌入式軟件的交錯開發(fā)環(huán)境嵌入式軟件實現(xiàn)階段的開發(fā)過程嵌入式軟件開發(fā)工具的進(jìn)展趨勢

/

嵌入式軟件開發(fā)工具

“工欲善其事,必先利其器”嵌入式軟件開發(fā)工具的集成度和可用性將直接關(guān)系到嵌入式系統(tǒng)的開發(fā)效率。

嵌入式軟件開發(fā)工具的分類

嵌入式軟件開發(fā)階段

嵌入式軟件開發(fā)工具的分類

按照不同的階段,嵌入式軟件開發(fā)工具可以分為:

需求分析工具(RequirementAnalysisTools)軟件設(shè)計工具(SoftwareDesignTools)編碼、調(diào)試工具(CodingTools)測試工具(TestingTools)配置管理工具、維護(hù)工具等

RationalRoseRealTimeObjectGeodeRhapsodyTAUTornadoLambdaTOOLpRISM+SpectraWinCEPlatformBuilderCodeWarriorXrayDebuggerLogiscopeCodeTEST

PhasesRequirementAnalysisSoftwareDesignCodingTestRelease主要嵌入式軟件開發(fā)工具產(chǎn)品

嵌入式軟件開發(fā)工具的分類

嵌入式軟件的開發(fā)可以分為以下幾種:

編寫容易的板級測試軟件,主要是輔助硬件的調(diào)試開發(fā)基本的驅(qū)動程序開發(fā)特定嵌入式操作系統(tǒng)的驅(qū)動程序(板級支持包)開發(fā)嵌入式系統(tǒng)軟件,如:嵌入式操作系統(tǒng)等開發(fā)應(yīng)用軟件

嵌入式軟件開發(fā)工具的分類

從以上嵌入式軟件開發(fā)分類來看,嵌入式軟件開發(fā)工具可以分為:

與嵌入式OS相關(guān)的開發(fā)工具,用于開發(fā):

`

基于嵌入式OS的應(yīng)用部分驅(qū)動程序等

與嵌入式OS無關(guān)的開發(fā)工具,用于開發(fā):

基本的驅(qū)動程序輔助硬件調(diào)試程序系統(tǒng)軟件等

嵌入式軟件的交錯開發(fā)環(huán)境

交錯開發(fā)環(huán)境是指用于嵌入式軟件開發(fā)的全部工具軟件的集合,普通包括:

文本編輯器交錯編譯器交錯調(diào)試器仿真器下載器等

交錯開發(fā)環(huán)境由宿主機和目標(biāo)機組成,宿主機與目標(biāo)機之間在物理銜接的基礎(chǔ)上建立起規(guī)律銜接。

運行平臺Target

]

目標(biāo)機應(yīng)用系統(tǒng)調(diào)試代理

開發(fā)平臺Host

宿主機開發(fā)環(huán)境運行庫

—應(yīng)用軟件—應(yīng)用中間件—目標(biāo)機OS目標(biāo)機硬件

————

編輯編譯銜接調(diào)試

宿主機OS宿主機硬件

交錯開發(fā)環(huán)境

嵌入式軟件的交錯開發(fā)環(huán)境

宿主機(Host):是用于開發(fā)嵌入式系統(tǒng)的計算機。普通為PC機(或者工作站),具備豐盛的軟硬件資源,為嵌入式軟件的開發(fā)提供全過程支持。目標(biāo)機(Target):即所開發(fā)的嵌入式系統(tǒng),是嵌入式軟件的運行環(huán)境,其硬件軟件是為特定應(yīng)用定制的。在開發(fā)過程中,目標(biāo)機端需接收和執(zhí)行宿主機發(fā)出的各種命令如設(shè)置斷點、讀內(nèi)存、寫內(nèi)存等,將結(jié)果返回給宿主機,協(xié)作宿主機各方面的工作。

嵌入式軟件的交錯開發(fā)環(huán)境

物理銜接和規(guī)律銜接物理銜接是指宿主機與目標(biāo)機通過物理線路銜接物理銜接在一起,銜接方式主要有三種:

串口以太口OCD(OnChipDebug)方式,如JTAG、BDM等

物理銜接是規(guī)律銜接的基礎(chǔ)。規(guī)律銜接指宿主機與目標(biāo)機間按某種通信協(xié)議建規(guī)律銜接立起來的通信銜接,目前逐步形成了一些通信協(xié)議的標(biāo)準(zhǔn)。

嵌入式軟件實現(xiàn)階段的開發(fā)過程

設(shè)計完成后,嵌入式軟件的開發(fā)進(jìn)入實現(xiàn)階段,可分為三個步驟:生成、調(diào)試和固化運行。

軟件的生成主要是在宿主機上舉行,利用各種工具完成軟件的生成對應(yīng)用程序的編輯、交錯編譯和鏈接工作,生成可供調(diào)試或固化的目標(biāo)程序。調(diào)試是通過交錯調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成調(diào)試后還需舉行須要的測試工作。固化運行是先用一定的工具將應(yīng)用程序固化到目標(biāo)機上,固化運行然后啟動目標(biāo)機,在沒有任何工具干預(yù)的狀況下應(yīng)用程序能自動地啟動運行。

嵌入式軟件生成階段

三個過程

源代碼程序的編寫編譯成各個目標(biāo)模塊鏈接成可供下載調(diào)試或固化的目標(biāo)程序庫文件

源程序

目標(biāo)模塊

可供調(diào)試/固化

\

編輯器

交錯編譯器

交錯鏈接器

交錯編譯

把在宿主機上編寫的高級語言程序編譯成可以運行在目標(biāo)機上的代碼,即在宿主機上能夠編譯生成另一種CPU(嵌入式微處理器)上的二進(jìn)制程序。

嵌入式軟件的調(diào)試

交錯調(diào)試器

是指調(diào)試程序和被調(diào)試程序運行在不同機器上的調(diào)試器調(diào)試器通過某種方式能控制目標(biāo)機上被調(diào)試程序的運行方式通過調(diào)試器能查看和修改目標(biāo)機上的內(nèi)存、寄存器以及被調(diào)試程序中的變量等

?

交錯調(diào)試調(diào)試器和被調(diào)試程序運行在不同的計算機上可自立運行,無需操作系統(tǒng)支持可自立運行,被調(diào)試程序的裝載由調(diào)試器完成需要通過外部通信的方式來控制被調(diào)試程序可以直接調(diào)試不同指令集的程序

非交錯調(diào)試調(diào)試器和被調(diào)試程序運行在同一臺計算機上需要操作系統(tǒng)的支持被調(diào)試程序的裝載由特地的Loader程序完成Loader程序完成不需要通過外部通信的方式來控制被調(diào)試程序只能直接調(diào)試相同指令集的程序

嵌入式軟件的調(diào)試

交錯調(diào)試方式

CrashandBurnRomMonitorRomEmulatorInCircuitEmulatorOnChipDebuggingSimulator方式(非交錯)

在宿主機上編寫代碼反復(fù)檢查代碼,反復(fù)檢查代碼,直到編譯通過,通過,生成可執(zhí)行程序?qū)⒊绦蚬袒▽⒊绦蚬袒˙urn)到目標(biāo)機的非易失)性存儲器(性存儲器(E2PROM、FLASH等)中、等

CrashandBurn

;

啟動目標(biāo)機運行,啟動目標(biāo)機運行,觀看程序是否正常工作N

最早的嵌入式應(yīng)用軟件調(diào)試辦法。

Y

在宿主機上反復(fù)檢查碼,查找問題根源改寫代碼

結(jié)束

ROMMonitor

ROMMonitor是被固化且運行在目標(biāo)機上的一段程序,負(fù)責(zé)監(jiān)控目標(biāo)機上被調(diào)試程序的運行,與宿主機端的調(diào)試器一起完成對應(yīng)用程序的調(diào)試。調(diào)試器與ROMMonitor之間的通信遵循遠(yuǎn)程調(diào)試協(xié)議。

宿主機調(diào)試器

、

目標(biāo)機監(jiān)控程序(ROM被調(diào)試Monitor)程序嵌入式硬件物理上的銜接ROMMonitor調(diào)試方式調(diào)試方式

規(guī)律上的銜接

Windows或其它桌或其它桌面操作系統(tǒng)PC機等硬件機等硬件

ROMMonitor

在目標(biāo)機上電或復(fù)位后首先執(zhí)行的就是ROMMonitor,它對目標(biāo)機舉行一些須要的初始化

初始化要求的外圍設(shè)備,如最基本的串口和用于內(nèi)存刷新的系統(tǒng)計時器芯片;初始化用于下載映像的內(nèi)存系統(tǒng);初始化中斷控制器和安裝中斷處理程序。

初始化自己的程序空間等待宿主機端的命令

ROMMonitor

、

ROMMonitor能協(xié)作調(diào)試器完成:

程序映像下載對目標(biāo)機系統(tǒng)內(nèi)存的讀寫對寄存器的讀寫設(shè)置和清除不同類型的斷點單步執(zhí)行指令復(fù)位系統(tǒng)…等調(diào)試功能

ROMMonitor

調(diào)試過程(1)啟動目標(biāo)機,監(jiān)控器把握對目標(biāo)機的控制,等待和調(diào)試器建立銜接;(2)啟動調(diào)試器,并和監(jiān)控器建立起通信銜接;(3)使用調(diào)試器將應(yīng)用程序下載到目標(biāo)機上的RAM空間中;(4)使用調(diào)試器舉行調(diào)試,發(fā)出各種調(diào)試命令,監(jiān)控器解釋并執(zhí)行這些命令,通過目標(biāo)機上的各種異樣來獵取對目標(biāo)機的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器;(5)假如程序有問題,在調(diào)試器的協(xié)助下定位錯誤;修改之后再重新編譯鏈接并下載程序,開頭新的調(diào)試,如此反復(fù)直至程序正確運行為止。

ROMMonitor

優(yōu)點

1)提高調(diào)試程序的效率,縮短開發(fā)周期,

降低成本

;

2)容易、便利3)可擴(kuò)展性強,可支持許多高級調(diào)試功能4)成本低廉,不需特地的調(diào)試硬件支持5)幾乎全部的交錯調(diào)試器都支持這種方式

ROMMonitor

缺點

1)2)

DebugMonitor需要用CrashandBurn辦法開發(fā)。當(dāng)ROMMonitor占用CPU時,應(yīng)用程序不響應(yīng)外部的中斷,因此不便調(diào)試有時光特性的程序。某些調(diào)試功能依靠于CPU硬件的支持(如硬件斷點功能)ROMMonitor要占用目標(biāo)機一定數(shù)量的資源,如CPU、RAM、ROM和通信設(shè)備等資源。調(diào)試環(huán)境不同于實際目標(biāo)環(huán)境。

3)4)

5)

仿真開發(fā)方式

-

嵌入式應(yīng)用的開發(fā)常常會遭受缺少目標(biāo)機環(huán)境、缺乏目標(biāo)機芯片等資源的問題,而開發(fā)過程又不行能停止,因此自然就提出了按照不同的應(yīng)用需要,利用仿真器件、仿真環(huán)境舉行開發(fā)的辦法。硬件仿真開發(fā)

ROMEmulatorICEOCD

軟件仿真開發(fā)

ROMEmulator

ROMEmulator是一種用于替代目標(biāo)機上的ROM芯片的設(shè)備,即ROM仿真器。利用這種設(shè)備,目標(biāo)機可以沒有ROM芯片,但目標(biāo)機的CPU可以讀取ROMEmulator設(shè)備上ROM芯片的內(nèi)容:ROMEmulator設(shè)備上的ROM芯片的地址可以實時地映射到目標(biāo)機的ROM地址空間,從而仿真(Emulation)目標(biāo)機的ROM。

ROMEmulator

ROMEmulator的調(diào)試方式是一種不徹低的調(diào)試方式:ROMEmulator設(shè)備只是為目標(biāo)機提供ROM芯片和在Target和Host間建立一條高速的通信通道,因此它常常和前面兩種調(diào)試方式結(jié)合起來形成一種完備的調(diào)試方式。ROMEmulator的典型應(yīng)用就是和ROMMonitor的調(diào)試方式相結(jié)合。

ROMEmulator

·

優(yōu)點目標(biāo)機可以沒有ROM芯片、可以使用ROMEmulator提供的ROM空間且不需要用別的工具來寫ROM。缺點目標(biāo)機必需能支持外部ROM存儲空間,而且因為其通常要和ROMMonitor協(xié)作使用,因此它擁有ROMMonitor的全部缺點。

ICE

ICE(In-CircuitEmulator)是一種用于替代目標(biāo)機上CPU的設(shè)備,即在線仿真器。它比普通的CPU有更多的引出線,能夠?qū)?nèi)部的信號輸出到被控制的目標(biāo)機。ICE上的Memory也可以被映射到用戶的程序空間,這樣即使目標(biāo)機不存在的情形下也可以舉行代碼的調(diào)試。ICE

銜接ICE和目標(biāo)機時,普通是將目標(biāo)機的CPU取下,而將ICE的CPU引出線接到目標(biāo)機的CPU插槽。用ICE舉行調(diào)試時,在Host端運行的調(diào)試器通過ICE來控制目標(biāo)機上運行的程序。

宿主開發(fā)平臺

ICE調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu)

目標(biāo)平臺

·

ICE

ICE

功能特點

同時支持軟斷點和硬件斷點的設(shè)置設(shè)置各種復(fù)雜的斷點和觸發(fā)器實時跟蹤目標(biāo)程序的運行,并可實現(xiàn)挑選性的跟蹤支持“TimeStamp”允許用戶設(shè)置“Timer”提供“ShadowRAM”,能在不中斷被調(diào)試程序的運行下查看內(nèi)存和變量即非干擾調(diào)試查詢

ICE

適用于:

1)2)3)4)

調(diào)試實時的應(yīng)用系統(tǒng)調(diào)試設(shè)備驅(qū)動程序?qū)τ布e行功能和性能的測試實時性能分析(

缺點:

1)2)

價格太昂貴,不利于團(tuán)隊開發(fā)所仿CPU有限

OCD

OCD(OnChipDebugging)是CPU芯片提供的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為是一種便宜的ICE功能:OCD的價格惟獨ICE的20%,但提供了ICE80%的功能。

宿主機調(diào)試器

目標(biāo)機

規(guī)律上的銜接

!

被調(diào)試程序

Windows或其它桌或其它桌面操作系統(tǒng)PC機等硬件機等硬件仿真器物理銜接并口、并口、串口或網(wǎng)絡(luò)接口為特定處理器而建筑

OCD接嵌入式接硬件口

針形銜接器

OCD調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu)

OCD

調(diào)試辦法

1)2)3)

]

將CPU的模式分為普通模式和調(diào)試模式普通模式下,CPU從內(nèi)存讀取指令執(zhí)行調(diào)試模式下,CPU首先從調(diào)試端口讀取指令,通過調(diào)試端口可以控制CPU進(jìn)入和退出調(diào)試模式;Host端的調(diào)試器可以直接向目標(biāo)機發(fā)送要執(zhí)行的指令,讀寫目標(biāo)機的內(nèi)存和各種寄存器,控制目標(biāo)程序的運行以及完成各種復(fù)雜的調(diào)試功能。

OCD

優(yōu)點

1)2)3)4)5)

不占用目標(biāo)機的資源調(diào)試環(huán)境和終于的程序運行環(huán)境基本全都支持軟硬斷點、Trace功能精確計量程序的執(zhí)行時光提供時序分析功能

OCD

缺點

1)調(diào)試的實時性不如ICE2)不支持非干擾調(diào)試查詢3)CPU必須具有OCD功能

;

OCD

存在各種實現(xiàn)

BDM(BackgroundDebuggingMode)JTAG(JointTestAccessGroup)(主流方式)()(主流方式)(主流方式)OnCE(OnChipEmulation)

各種OCD仿真器實例

邊界掃描技術(shù)(JTAG)

JTAG——標(biāo)準(zhǔn)測試拜訪接口與邊界掃描結(jié)構(gòu)(StandardTestAccessPortandBoundaryScanArchitecture),已被標(biāo)準(zhǔn)所采用,是面對用戶的測試接口。該接口普通由4個引腳組成:

測試數(shù)據(jù)輸入(TDI)測試數(shù)據(jù)輸出(TDO)測試時鐘(TCK)測試模式挑選引腳(TMS)異步測試復(fù)位引腳(TRST,可選)

~

邊界掃描技術(shù)(JTAG)

優(yōu)點

可以通過邊界掃描操作測試囫圇板的電氣銜接,特殊為表面貼元件提供便利各個引腳信號的采樣,并可強制引腳輸出用以測試外圍芯片可以軟件下載、執(zhí)行、調(diào)試和控制,為復(fù)雜的實時跟蹤調(diào)試提供路徑可以舉行多內(nèi)核和多處理器的板級和芯片級的調(diào)試,通過串接,為芯片創(chuàng)造商提供芯片生產(chǎn)、測試的途徑不占用系統(tǒng)資源,能夠調(diào)試沒有外部總線的芯片,代價十分小

邊界掃描技術(shù)(JTAG)

缺點

通過串口依次傳遞數(shù)據(jù),速度比較慢只能舉行軟件斷點級別的調(diào)試不能完成實時跟蹤和多種大事觸發(fā)等復(fù)雜調(diào)試功能

幾種增加版本

ARM芯片的實時調(diào)試計劃(E-TRACE)背景調(diào)試模式BDM片上仿真OnCE

'

Nexus標(biāo)準(zhǔn)

提出一個在JTAG之上的嵌入式處理器調(diào)試的統(tǒng)一標(biāo)準(zhǔn)將調(diào)試開發(fā)分成四級

第一級使用JTAG的容易靜態(tài)調(diào)試;其次級支持編程跟蹤和實時多任務(wù)的跟蹤,并允許用戶用I/O引腳作為多路復(fù)用輔助調(diào)試口;第三級包括處理器運行時的數(shù)據(jù)寫入跟蹤和存儲器的讀寫跟蹤;第四級增強了存儲替換并觸發(fā)復(fù)雜的硬件斷點。

Nexus標(biāo)準(zhǔn)

通過Nexus標(biāo)準(zhǔn)可以解決以下問題

調(diào)試內(nèi)部總線沒有引出的處理器,如含有片內(nèi)存儲器的芯片傳統(tǒng)在線仿真器無法實現(xiàn)的高速調(diào)試深度流水線和有片上Cache的芯片,能夠探測詳細(xì)哪條指令被取指和終于執(zhí)行可以穩(wěn)定地舉行多內(nèi)核處理器的調(diào)試

Simulator

交錯開發(fā)方式存在如下缺點:硬件支持必需有目標(biāo)機或評估板易使用性一般編程人員不認(rèn)識便宜性成本高不高可移植性、可擴(kuò)展性團(tuán)隊開發(fā)較難開發(fā)周期較長

\

Simulator

一種軟件仿真器,在宿主機上創(chuàng)建一個虛擬的目標(biāo)機環(huán)境,再將應(yīng)用系統(tǒng)下載到這個虛擬目標(biāo)機上運行/調(diào)試。軟件仿真的對象

仿真處理器仿真外設(shè)仿真環(huán)境

軟件仿真的級別

指令級仿真開發(fā)API級仿真開發(fā)

用戶IDE應(yīng)用編程接口API目標(biāo)操作系統(tǒng)庫TOSLib編輯:C、C++編譯、鏈接調(diào)試通信虛擬目標(biāo)環(huán)境仿真調(diào)試代理EDA應(yīng)用系統(tǒng)虛擬目標(biāo)硬件V-Target

宿主機OS應(yīng)用仿真開發(fā)環(huán)境暗示圖應(yīng)用仿真開發(fā)環(huán)境暗示圖

設(shè)計

/

編碼仿真庫仿真編譯

N

仿真調(diào)試

正確

Y

運行庫

編譯鏈接

下載

·

交錯調(diào)試固化運行

調(diào)試

固化

測試

結(jié)合了仿真的軟件開發(fā)過程

運行維護(hù)

Simulator

優(yōu)點最大益處就是可以不用真正的目標(biāo)機,可以在目標(biāo)機環(huán)境并不存在的條件下開發(fā)目標(biāo)機上的應(yīng)用系統(tǒng),并且在調(diào)試時可以利用Host資源提供更具體的錯誤診斷信息。

,

Simulator

缺點1)和實際的運行環(huán)境差別很大

2)3)4)

設(shè)備模擬的局限性較大實時特性較差對Host的資源要求較高適用范圍對時光特性沒有嚴(yán)格要求、沒有特別外設(shè)、只需要驗證規(guī)律正確的應(yīng)用程序。

嵌入式軟件的測試

測試工具:能夠用來輔助測試的工具,主要用來支持測試人員的工作,本身不能直接用來舉行測試。測試工具普通都是通用工具,測試人員應(yīng)當(dāng)按照實際狀況對它們舉行適當(dāng)?shù)恼{(diào)節(jié)。嵌入式軟件測試中常常用到的測試工具有:

內(nèi)存分析工具性能分析工具籠罩分析工具缺陷跟蹤工具等

嵌入式軟件的測試

/

內(nèi)存分析工具

嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分析工具可以用來處理在舉行動態(tài)內(nèi)存分配時產(chǎn)生的缺陷。當(dāng)動態(tài)分配的內(nèi)存被錯誤地引用時,產(chǎn)生的錯誤通常難以再現(xiàn),浮現(xiàn)的失效難以追蹤,使用內(nèi)存分析工具可以很好地檢測出這類缺陷。目前常用的內(nèi)存分析工具有軟件和硬件兩種:

基于軟件的內(nèi)存分析工具可能會對代碼的執(zhí)行性能帶來很大影響,從而影響系統(tǒng)的實時性;來很大影響,從而影響系統(tǒng)的實時性;基于硬件的內(nèi)存分析工具對系統(tǒng)性能影響小,基于硬件的內(nèi)存分析工具對系統(tǒng)性能影響小,但價格昂貴,并且只能在特定的環(huán)境中使用。昂貴,并且只能在特定的環(huán)境中使用。

嵌入式軟件的測試

性能分析工具

嵌入式系統(tǒng)的性能通常是一個十分關(guān)鍵的因素,開發(fā)人員普通需要對系統(tǒng)的某些關(guān)鍵代碼舉行優(yōu)化來改進(jìn)性能。性能分析工具

可以提供有關(guān)數(shù)據(jù),可以提供有關(guān)數(shù)據(jù),協(xié)助確定哪些任務(wù)消耗了過多的執(zhí)行時光,了過多的執(zhí)行時光,從而可以打算如何優(yōu)化軟件,以獲得更好的時光性能。軟件,以獲得更好的時光性能。引導(dǎo)開發(fā)人員發(fā)覺在系統(tǒng)調(diào)用中存在的錯誤以及程序結(jié)構(gòu)上的缺陷。以及程序結(jié)構(gòu)上的缺陷。

嵌入式軟件的測試

~

籠罩分析工具

在舉行白盒測試時,可以使用代碼籠罩分析工具追蹤哪些代碼被執(zhí)行過分析過程普通通過插樁來完成,插樁可以是在測試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,或者是兩者的結(jié)合。開發(fā)人員通過對分析結(jié)果舉行總結(jié),可以確定哪些代碼被執(zhí)行過,哪些代碼被遺漏了。目前常用的籠罩分析工具普通都提供有關(guān)功能籠罩、分支籠罩、條件籠罩等信息。

籠罩分析工具實例

測試工具實例:規(guī)律分析儀

工作機理:在不打斷被測程序運行流程的基礎(chǔ)上,對程序運行中的相關(guān)信息舉行采集和分析,然后通過真切再現(xiàn)程序運行的規(guī)律流程和分析程序運行數(shù)據(jù),協(xié)助用戶優(yōu)化系統(tǒng)設(shè)計和解決浮現(xiàn)的問題。與調(diào)試工具的對照

調(diào)試器:調(diào)試器:照相機規(guī)律分析儀:規(guī)律分析儀:攝像機

測試工具實例:規(guī)律分析儀

主要功能:

、

真切再現(xiàn)程序運行流程發(fā)覺系統(tǒng)死鎖及軟件造成的死機發(fā)覺系統(tǒng)內(nèi)存泄漏指導(dǎo)對任務(wù)的合理劃分指導(dǎo)關(guān)鍵路徑設(shè)計與驗證指導(dǎo)合理分配任務(wù)堆棧CPU使用率統(tǒng)計指導(dǎo)合理設(shè)計中斷服務(wù)程序

測試工具實例:規(guī)律分析儀

嵌入式應(yīng)用軟件運行的規(guī)律流程

測試工具實例:規(guī)律分析儀

系統(tǒng)堆棧使用率分析

嵌入式軟件的固化運行

當(dāng)調(diào)試完成之后,程序代碼需要被徹低燒入到目標(biāo)板的非易失性存儲器(如ROM或閃存)中,并且在真切的硬件環(huán)境上運行,這個過程叫做固化。調(diào)試環(huán)境與固化環(huán)境的區(qū)分:代碼定位不同初始化部分不同

:

嵌入式軟件的固化運行

階段編譯鏈接調(diào)試環(huán)境

目標(biāo)文件需要調(diào)試信息應(yīng)用系統(tǒng)目標(biāo)代碼不需要Boot應(yīng)用系統(tǒng)目標(biāo)代碼不需要Boot模塊,模塊,此模塊已由目標(biāo)板上的監(jiān)控器程序?qū)崿F(xiàn)。監(jiān)控器程序?qū)崿F(xiàn)。程序的全部代碼段、程序的全部代碼段、數(shù)據(jù)段都依次被定位到調(diào)試空間的RAM依次被定位到調(diào)試空間的RAM中。

宿主機上的調(diào)試器讀入被調(diào)試文件,宿主機上的調(diào)試器讀入被調(diào)試文件,并將其下載到目標(biāo)機上的調(diào)試空間中,目標(biāo)機掉電后全部信息所有走失。被調(diào)試程序在目標(biāo)監(jiān)控器的控制下運行,并與后者分享某些資源,運行,并與后者分享某些資源,如CPU資源、RAM資源以及通信設(shè)備如串口、網(wǎng)口等)資源。(如串口、網(wǎng)口等)資源。

固化環(huán)境

目標(biāo)文件不需要調(diào)試信息應(yīng)用系統(tǒng)目標(biāo)代碼必需以Boot應(yīng)用系統(tǒng)目標(biāo)代碼必需以Boot模塊作為入口模塊。模塊作為入口模塊。程序的各規(guī)律段根據(jù)其不同的屬性分離定位到非易失性存儲空間(ROM)或RAM中??臻g(ROM)RAM中

在宿主機上利用固化工具將可固化的應(yīng)用程序?qū)懭肽繕?biāo)機的非易失性存儲器中,存儲器中,目標(biāo)機掉電后信息不走失。

定位

下載

運行

程序在真切的目標(biāo)硬件環(huán)境上運行

嵌入式軟件的固化運行

Boot模塊:當(dāng)應(yīng)用程序在真切的目標(biāo)環(huán)境下運行時將首先執(zhí)行該程序,它至少由系統(tǒng)加電時執(zhí)行的代碼組成。BootBoot模塊的主要功能:初始化CPU環(huán)境,使目標(biāo)CPU機硬件到已知的狀態(tài)

初始化芯片的引腳初始化系統(tǒng)外部控制寄存器初始化基本輸入輸出設(shè)備初始化MMU,包括片選控制寄存器等執(zhí)行數(shù)據(jù)拷貝

嵌入式軟件開發(fā)工具進(jìn)展趨勢

向著開放的、集成化的方向進(jìn)展具有系統(tǒng)設(shè)計、可視化建模、仿真和驗證功能自動生成代碼和文檔具有更高的靈便性

其次節(jié)嵌入式系統(tǒng)開發(fā)模式

概述處理器及硬件開發(fā)平臺的選定操作系統(tǒng)選定開發(fā)環(huán)境選定

嵌入式系統(tǒng)開發(fā)模式概述

最大特點:軟硬件綜合開發(fā)。最大特點:軟硬件綜合開發(fā)。緣由:緣由:

1)嵌入式產(chǎn)品是軟硬件的結(jié)合體軟件針對硬件開發(fā)、固化,2)軟件針對硬件開發(fā)、固化,不能舉行隨意修改

系統(tǒng)定義時期系統(tǒng)總體設(shè)計硬件設(shè)計制作

No

軟件設(shè)計實現(xiàn)

軟硬件集勝利能性能測試符合要求

Yes

嵌入式系統(tǒng)開發(fā)過程

產(chǎn)品

系統(tǒng)總體設(shè)計

系統(tǒng)總體框架

軟硬件劃分

處理器選定

"

操作系統(tǒng)選定

開發(fā)環(huán)境選定

硬件設(shè)計制作

功能模塊圖設(shè)計硬件概要設(shè)計規(guī)律電路圖設(shè)計硬件具體設(shè)計

PCB設(shè)計與制作

硬件制作

PCB測試

硬件測試

<

軟件設(shè)計實現(xiàn)

軟件概要設(shè)計軟件具體設(shè)計軟件實現(xiàn)軟件測試

軟硬件協(xié)同開發(fā)

通常的嵌入式系統(tǒng)開發(fā)

嵌入式軟件開發(fā)嵌入式系統(tǒng)集成、測試、集成、測試、驗證

嵌入式硬件開發(fā)

軟/硬件協(xié)同開發(fā)

嵌入式軟件開發(fā)

}

嵌入式系統(tǒng)協(xié)同設(shè)計、測試、協(xié)同設(shè)計、測試、驗證

嵌入式硬件開發(fā)

處理器及硬件開發(fā)平臺的選定

挑選依據(jù):應(yīng)用的類型及I/O接口主頻及功耗對不同類型存儲器的支持封裝產(chǎn)品生命力和廠家實力、技術(shù)支持及第三方軟件的支持硬件開發(fā)平臺的挑選

操作系統(tǒng)選定

挑選依據(jù):挑選嵌入式OS的須要性自建、購買或使用開源軟件對嵌入式操作系統(tǒng)的功能、性能要求與硬件平臺和開發(fā)工具的關(guān)系行業(yè)標(biāo)準(zhǔn)技術(shù)支持版稅或服務(wù)費

操作系統(tǒng)與硬件平臺的關(guān)系

操作系統(tǒng)應(yīng)支持選定的硬件平臺假如不支持,需考慮移植工作

不同類型嵌入式微處理器之間的移植:任務(wù)上下文切換、時鐘、中斷等同類型微處理器但不同類型硬件板之間的移植:硬件接口及設(shè)備驅(qū)動程序

操作系統(tǒng)與開發(fā)工具的關(guān)系

工具是否能為基于特定操作系統(tǒng)的應(yīng)用開發(fā)提供最大支持:

運行庫與OS相結(jié)合提供給用工程創(chuàng)建和管理功能,構(gòu)建基于特定操作系統(tǒng)的應(yīng)用框架對操作系統(tǒng)的剪裁與配置提供高級調(diào)試功能提供配套的應(yīng)用規(guī)律分析工具、籠罩測試工具等

開發(fā)環(huán)境及工具選定

對硬件平臺的支持所使用的編程語言

C/C++匯編語言JAVA……

與嵌入式操作系統(tǒng)的關(guān)系

!

第三節(jié)實時軟件分析設(shè)計辦法

DARTS分析設(shè)計辦法分析設(shè)計辦法

DARTS分析設(shè)計辦法

嵌入式實時軟件系統(tǒng)的生存周期需求分析與說明系統(tǒng)設(shè)計-DARTS設(shè)計辦法

數(shù)據(jù)流分析劃分任務(wù)定義任務(wù)接口

任務(wù)設(shè)計模塊構(gòu)筑任務(wù)與系統(tǒng)集成

嵌入式實時軟件系統(tǒng)的生命周期

需求分析與具體說明系統(tǒng)設(shè)計

:

任務(wù)分解,任務(wù)分解,定義任務(wù)間接口關(guān)系

任務(wù)設(shè)計

按模塊方式設(shè)計每個任務(wù),定義模塊間接口按模塊方式設(shè)計每個任務(wù),

模塊構(gòu)筑

完成每個模塊的具體設(shè)計、完成每個模塊的具體設(shè)計、編碼和單元測試

任務(wù)與系統(tǒng)集成系統(tǒng)測試

實例說明——機器人控制器系統(tǒng)機器人控制器系統(tǒng)

控制設(shè)備由內(nèi)部控制器和外部控制面板組成控制器控制六個轉(zhuǎn)并與數(shù)字I/O軸,并與數(shù)字I/O傳感器交互作用。傳感器交互作用。轉(zhuǎn)軸和I/O由程序轉(zhuǎn)軸和I/O由程序I/O控制該程序由控制面板操作啟動執(zhí)行

'

手動上電運行停止斷電結(jié)束

程序挑選

控制面板

控制執(zhí)行過程

按下“上電”按鈕,系統(tǒng)進(jìn)入了上電狀態(tài)。按下“上電”按鈕,系統(tǒng)進(jìn)入了上電狀態(tài)。上電勝利后,系統(tǒng)進(jìn)入了手動狀態(tài)。此時,上電勝利后,系統(tǒng)進(jìn)入了手動狀態(tài)。此時,操可以通過程序挑選開關(guān)程序挑選開關(guān)挑選程序可以通過程序挑選開關(guān)挑選程序按下“運行”按鈕,則選定的程序開頭運行,按下“運行”按鈕,則選定的程序開頭運行,系統(tǒng)轉(zhuǎn)為運行態(tài)。系統(tǒng)轉(zhuǎn)為運行態(tài)。程序運行中假如按下“停止”程序運行中假如按下“停

止”鍵,程序被掛起。程序被掛起。之后,操可以按下“運行”之后,操可以按下“運行”鍵,使程序恢復(fù)執(zhí)行,也可按下“結(jié)束”結(jié)束程序。復(fù)執(zhí)行,也可按下“結(jié)束”鍵,結(jié)束程序。按下“結(jié)束”鍵后,系統(tǒng)進(jìn)入終止態(tài)。按下“結(jié)束”鍵后,系統(tǒng)進(jìn)入終止態(tài)。當(dāng)程序終于終止執(zhí)行時,系統(tǒng)返回手動狀態(tài)。終于終止執(zhí)行時,系統(tǒng)返回手動狀態(tài)。

需求分析與說明

斷電態(tài)上電通電態(tài)上電勝利斷電程序挑選程序終止終止態(tài)手動態(tài)啟動結(jié)束啟動停止運行態(tài)

掛起態(tài)

狀態(tài)變遷圖

系統(tǒng)設(shè)計

系統(tǒng)設(shè)計說明該系統(tǒng)如何被分解成多個任務(wù),如何定義任務(wù)間的關(guān)系任務(wù)劃分辦法——DARTSDARTS設(shè)計辦法

DARTS設(shè)計辦法設(shè)計辦法

數(shù)據(jù)流分析:每個數(shù)據(jù)流圖都包含:

變換圈,表示系統(tǒng)完成的功能箭頭,表示變換間的數(shù)據(jù)流淌數(shù)據(jù)存儲區(qū),表示數(shù)據(jù)的存儲場所數(shù)據(jù)字典,定義了數(shù)據(jù)流和數(shù)據(jù)存儲區(qū)所包含的數(shù)據(jù)項

按下按鈕

程序讀面板輸入解釋程序各語句運行開頭結(jié)束有效的面板輸入處理面板輸入動作命令處理動作命令動作塊I/O命令處理I/O命令命令輸入傳感器值讀傳感器傳感器輸入

面板輸入面板輸入有效性檢查

傳感器輸出向傳感器輸出輸出

面板輸出顯示燈輸出到面板

運行停止重啟動輸出動作軸數(shù)據(jù)

動作確認(rèn)接收確認(rèn)軸確認(rèn)

軸塊軸控制器軸輸入軸輸出

機器人控制器數(shù)據(jù)流圖

DARTS設(shè)計辦法設(shè)計辦法

#

劃分任務(wù)就是識別出并行性的功能需要考慮的是系統(tǒng)內(nèi)功能的異步性。分析數(shù)據(jù)流圖中的變換,確定哪些變換可以并行,哪些變換本質(zhì)上是挨次的。一個任務(wù)可對應(yīng)一個變換,也可對應(yīng)多個變換。

DARTS設(shè)計辦法設(shè)計辦法

劃分任務(wù)原則

I/O依靠性功能的時光關(guān)鍵性計算需求功能內(nèi)聚時光內(nèi)聚周期執(zhí)行

I/O依靠性

DeviceI/OTask

假如變換依靠于I/O,速度受限I/O,可自立成任務(wù)在系統(tǒng)中創(chuàng)建與I/O設(shè)備數(shù)目相當(dāng)?shù)腎/O任務(wù)I/O任務(wù)只實現(xiàn)與設(shè)備相關(guān)的代碼I/O任務(wù)的執(zhí)行只受限于I/O設(shè)備的速度,而不是處理器在任務(wù)中分別設(shè)備相關(guān)性

功能的時光關(guān)鍵性

,

event1Task1event2Task3Task2deadline1deadline2Task3將有時光關(guān)鍵性(deadline)的功能分別出來,組成自立運行的任務(wù)給予這些任務(wù)高的優(yōu)先級,以滿足對時光的需要

計算需求

計算量大的功能占用CPU的時光多,把計算功能捆綁成任務(wù),以消耗CPU的剩余時光給予計算任務(wù)較低優(yōu)先級,能被高優(yōu)先級的任務(wù)搶占,保持高優(yōu)先級的任務(wù)是輕量級的多個計算任務(wù)可支配成同優(yōu)先級,按時光片循環(huán)輪轉(zhuǎn)

功能內(nèi)聚

event1F1(x)+F3(x)event2F2(x)

將緊密相關(guān)的功能變換組成一個任務(wù),削減通信的開銷把每個變換都作為同一任務(wù)中一個個自立的模塊,不僅保證了模塊級的功能內(nèi)聚,也保證了任務(wù)級的功能內(nèi)聚時光內(nèi)聚

eventClockTickF1(x)+F2(y)+F3(z)F4(x)+F5(y)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論