版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024保安服務(wù)合同(范本)公司保安合同范本
- 2024年丙丁雙方關(guān)于購買房產(chǎn)合同標(biāo)的的協(xié)議書
- 2024年簡單貨物運輸合同格式
- 2024年度金融風(fēng)險管理系統(tǒng)定制開發(fā)合同
- 2024合同補充協(xié)議
- 2024年協(xié)議離婚應(yīng)當(dāng)注意的要點
- 網(wǎng)吧轉(zhuǎn)讓合同范本
- 律師代理公司股票上市合同范本
- 2024日本留學(xué)租房合同簽訂須知
- 2024借款居間服務(wù)合同
- 20S805-1 雨水調(diào)蓄設(shè)施-鋼筋混凝土雨水調(diào)蓄池
- MOOC 法理學(xué)-西南政法大學(xué) 中國大學(xué)慕課答案
- 中華民族共同體概論課件專家版3第三講 文明初現(xiàn)與中華民族起源(史前時期)
- 消防安全 牢記心間
- 腳手架搭設(shè)及驗收(匯編)
- 零星維修工程施工組織設(shè)計
- (高清版)DZT 0399-2022 礦山資源儲量管理規(guī)范
- 五年級上冊數(shù)學(xué)教學(xué)設(shè)計-植樹問題 人教版
- 全面質(zhì)量管理培訓(xùn)-(完整版)
- 社區(qū)兒童健康管理案例分析報告
- 蘇教版四年級上冊豎式計算400題及答案
評論
0/150
提交評論