版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)及應(yīng)用,第九章嵌入式系統(tǒng)軟件的開發(fā),主要內(nèi)容,嵌入式軟件開發(fā)工具嵌入式系統(tǒng)開發(fā)模式實時軟件分析設(shè)計方法,第一節(jié)嵌入式軟件開發(fā)工具,嵌入式軟件開發(fā)工具的分類嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件實現(xiàn)階段的開發(fā)過程嵌入式軟件開發(fā)工具的發(fā)展趨勢,,嵌入式軟件開發(fā)工具,“工欲善其事,必先利其器” 嵌入式軟件開發(fā)工具的集成度和可用性將直接關(guān)系到嵌入式系統(tǒng)的開發(fā)效率。,嵌入式軟件開發(fā)工具的分類,,嵌入式軟件開發(fā)階段,
2、需求分析(Requirement Analysis),設(shè)計(Software Design),編碼(Coding),測試(Test),發(fā)布、維護(Release),嵌入式軟件開發(fā)工具的分類,根據(jù)不同的階段,嵌入式軟件開發(fā)工具可以分為:需求分析工具(Requirement Analysis Tools)軟件設(shè)計工具(Software Design Tools)編碼、調(diào)試工具(Coding Tools)測試工具(Testing To
3、ols)配置管理工具、維護工具等,主要嵌入式軟件開發(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ā):基于嵌
4、入式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)境由宿主機和目標機組成,宿主機與目標機之間在物理連接的基礎(chǔ)上建立起邏輯連接。,交叉開發(fā)環(huán)境,,,目標機硬件,,目標機應(yīng)用系統(tǒng),— 應(yīng)用軟件,— 應(yīng)用中間件,— 目標
5、機,OS,,宿主機硬件,,宿主機,OS,,調(diào),試,代,理,,運,行,庫,,宿主機開發(fā)環(huán)境,— 編輯,— 編譯,— 連接,— 調(diào)試,,運行平臺,Target,開發(fā)平臺,Host,DownLoad,嵌入式軟件的交叉開發(fā)環(huán)境,宿主機(Host) :是用于開發(fā)嵌入式系統(tǒng)的計算機。一般為PC機(或者工作站),具備豐富的軟硬件資源,為嵌入式軟件的開發(fā)提供全過程支持。目標機(Target):即所開發(fā)的嵌入式系統(tǒng),是嵌入式軟件的運行環(huán)境,其硬件軟件是
6、為特定應(yīng)用定制的。在開發(fā)過程中,目標機端需接收和執(zhí)行宿主機發(fā)出的各種命令如設(shè)置斷點、讀內(nèi)存、寫內(nèi)存等,將結(jié)果返回給宿主機,配合宿主機各方面的工作。,嵌入式軟件的交叉開發(fā)環(huán)境,物理連接和邏輯連接 物理連接是指宿主機與目標機通過物理線路連接在一起,連接方式主要有三種:串口以太口OCD(On Chip Debug)方式,如JTAG、BDM等物理連接是邏輯連接的基礎(chǔ)。邏輯連接指宿主機與目標機間按某種通信協(xié)議建立起來的通信連接,目前
7、逐步形成了一些通信協(xié)議的標準。,嵌入式軟件實現(xiàn)階段的開發(fā)過程,設(shè)計完成后,嵌入式軟件的開發(fā)進入實現(xiàn)階段,可分為三個步驟:生成、調(diào)試和固化運行。軟件的生成主要是在宿主機上進行,利用各種工具完成對應(yīng)用程序的編輯、交叉編譯和鏈接工作,生成可供調(diào)試或固化的目標程序。調(diào)試是通過交叉調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成后還需進行必要的測試工作。固化運行是先用一定的工具將應(yīng)用程序固化到目標機上,然后啟動目標機,在沒有任何工具干預(yù)的情況下應(yīng)用程序能
8、自動地啟動運行。,嵌入式軟件生成階段,三個過程源代碼程序的編寫編譯成各個目標模塊鏈接成可供下載調(diào)試或固化的目標程序,編輯器,交叉編譯器,交叉鏈接器,源程序,目標模塊,可供調(diào)試/固化,庫文件,,,,,,,交叉編譯,把在宿主機上編寫的高級語言程序編譯成可以運行在目標機上的代碼,即在宿主機上能夠編譯生成另一種CPU(嵌入式微處理器)上的二進制程序。,嵌入式軟件的調(diào)試,交叉調(diào)試器是指調(diào)試程序和被調(diào)試程序運行在不同機器上的調(diào)試器調(diào)試器通
9、過某種方式能控制目標機上被調(diào)試程序的運行方式通過調(diào)試器能查看和修改目標機上的內(nèi)存、寄存器以及被調(diào)試程序中的變量等,嵌入式軟件的調(diào)試,交叉調(diào)試方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip DebuggingSimulator方式(非交叉),Crash and Burn,最早的嵌入式應(yīng)用軟件調(diào)試方法。,在宿主機上編寫代碼,反復(fù)檢查
10、代碼,直到編譯通過,生成可執(zhí)行程序,將程序固化(Burn)到目標機的非易失性存儲器(E2PROM、FLASH等)中,在宿主機上反復(fù)檢查碼,查找問題根源,改寫代碼,啟動目標機運行,觀察程序是否正常工作,,,,,,N,Y,,,結(jié)束,,,,ROM Monitor,ROM Monitor是被固化且運行在目標機上的一段程序,負責監(jiān)控目標機上被調(diào)試程序的運行,與宿主機端的調(diào)試器一起完成對應(yīng)用程序的調(diào)試。調(diào)試器與ROM Monitor之間的
11、通信遵循遠程調(diào)試協(xié)議。,ROM Monitor調(diào)試方式,調(diào)試器Windows或其它桌面操作系統(tǒng)PC機等硬件,嵌入式硬件,,,監(jiān)控程序(ROM Monitor),被調(diào)試程序,,,宿主機,目標機,邏輯上的連接,物理上的連接,ROM Monitor,在目標機上電或復(fù)位后首先執(zhí)行的就是ROM Monitor,它對目標機進行一些必要的初始化初始化要求的外圍設(shè)備,如最基本的串口和用于內(nèi)存刷新的系統(tǒng)計時器芯片;初始化用于下載映像的內(nèi)存
12、系統(tǒng);初始化中斷控制器和安裝中斷處理程序。初始化自己的程序空間等待宿主機端的命令,ROM Monitor,ROM Monitor能配合調(diào)試器完成:程序映像下載對目標機系統(tǒng)內(nèi)存的讀寫對寄存器的讀寫設(shè)置和清除不同類型的斷點單步執(zhí)行指令復(fù)位系統(tǒng)…等調(diào)試功能,ROM Monitor,調(diào)試過程(1)啟動目標機,監(jiān)控器掌握對目標機的控制,等待和調(diào)試器建立連接;(2)啟動調(diào)試器,并和監(jiān)控器建立起通信連接;(3)使用調(diào)試器將應(yīng)
13、用程序下載到目標機上的RAM空間中;(4)使用調(diào)試器進行調(diào)試,發(fā)出各種調(diào)試命令,監(jiān)控器解釋并執(zhí)行這些命令,通過目標機上的各種異常來獲取對目標機的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器; (5)如果程序有問題,在調(diào)試器的幫助下定位錯誤;修改之后再重新編譯鏈接并下載程序,開始新的調(diào)試,如此反復(fù)直至程序正確運行為止。,ROM Monitor,優(yōu)點提高調(diào)試程序的效率 ,縮短開發(fā)周期,降低成本簡單、方便可擴展性強,可支持許多高級調(diào)試功能成本
14、低廉,不需專門的調(diào)試硬件支持幾乎所有的交叉調(diào)試器都支持這種方式,ROM Monitor,缺點Debug Monitor需要用Crash and Burn方法開發(fā)。當ROM Monitor占用CPU時,應(yīng)用程序不響應(yīng)外部的中斷,因此不便調(diào)試有時間特性的程序。某些調(diào)試功能依賴于CPU硬件的支持(如硬件斷點功能)ROM Monitor要占用目標機一定數(shù)量的資源,如CPU、RAM、ROM和通信設(shè)備等資源。調(diào)試環(huán)境不同于實際目標環(huán)境。
15、,仿真開發(fā)方式,嵌入式應(yīng)用的開發(fā)經(jīng)常會遭遇缺少目標機環(huán)境、缺乏目標機芯片等資源的問題,而開發(fā)過程又不可能停止,因此自然就提出了根據(jù)不同的應(yīng)用需要,利用仿真器件、仿真環(huán)境進行開發(fā)的方法。,硬件仿真開發(fā)ROM EmulatorICEOCD軟件仿真開發(fā),ROM Emulator,ROM Emulator是一種用于替代目標機上的ROM芯片的設(shè)備,即ROM仿真器。利用這種設(shè)備,目標機可以沒有ROM芯片,但目標機的CPU可以讀取ROM Em
16、ulator設(shè)備上ROM芯片的內(nèi)容:ROM Emulator設(shè)備上的ROM芯片的地址可以實時地映射到目標機的ROM地址空間,從而仿真(Emulation)目標機的ROM。,ROM Emulator,ROM Emulator的調(diào)試方式是一種不完全的調(diào)試方式:ROM Emulator設(shè)備只是為目標機提供ROM芯片和在Target和Host間建立一條高速的通信通道,因此它經(jīng)常和前面兩種調(diào)試方式結(jié)合起來形成一種完備的調(diào)試方式。ROM Emula
17、tor的典型應(yīng)用就是和ROM Monitor的調(diào)試方式相結(jié)合。,ROM Emulator,優(yōu)點目標機可以沒有ROM芯片、可以使用ROM Emulator提供的ROM空間且不需要用別的工具來寫ROM。缺點目標機必須能支持外部ROM存儲空間,而且由于其通常要和ROM Monitor配合使用,因此它擁有ROM Monitor的所有缺點。,ICE,ICE(In-Circuit Emulator)是一種用于替代目標機上CPU的設(shè)備,即在
18、線仿真器。它比一般的CPU有更多的引出線,能夠?qū)?nèi)部的信號輸出到被控制的目標機。ICE上的Memory也可以被映射到用戶的程序空間,這樣即使目標機不存在的情形下也可以進行代碼的調(diào)試。,ICE調(diào)試結(jié)構(gòu),連接ICE和目標機時,一般是將目標機的CPU取下,而將ICE的CPU引出線接到目標機的CPU插槽。用ICE進行調(diào)試時,在Host端運行的調(diào)試器通過ICE來控制目標機上運行的程序。,ICE,ICE,功能特點同時支持軟斷點和硬件斷點的設(shè)
19、置設(shè)置各種復(fù)雜的斷點和觸發(fā)器實時跟蹤目標程序的運行,并可實現(xiàn)選擇性的跟蹤支持“Time Stamp” 允許用戶設(shè)置“Timer” 提供“Shadow RAM”,能在不中斷被調(diào)試程序的運行下查看內(nèi)存和變量即非干擾調(diào)試查詢,ICE,適用于:調(diào)試實時的應(yīng)用系統(tǒng)調(diào)試設(shè)備驅(qū)動程序?qū)τ布M行功能和性能的測試實時性能分析缺點:價格太昂貴,不利于團隊開發(fā)所仿CPU有限,OCD,OCD(On Chip Debugging)是CPU
20、芯片提供的一種調(diào)試功能(片上調(diào)試),可以認為是一種廉價的ICE功能:OCD的價格只有ICE的20%,但提供了ICE 80%的功能。,OCD調(diào)試結(jié)構(gòu),OCD,調(diào)試方法將CPU的模式分為一般模式和調(diào)試模式一般模式下, CPU從內(nèi)存讀取指令執(zhí)行調(diào)試模式下,CPU首先從調(diào)試端口讀取指令,通過調(diào)試端口可以控制CPU進入和退出調(diào)試模式;Host端的調(diào)試器可以直接向目標機發(fā)送要執(zhí)行的指令,讀寫目標機的內(nèi)存和各種寄存器,控制目標程序的運行以及完成
21、各種復(fù)雜的調(diào)試功能。,OCD,優(yōu)點不占用目標機的資源調(diào)試環(huán)境和最終的程序運行環(huán)境基本一致支持軟硬斷點、Trace功能精確計量程序的執(zhí)行時間提供時序分析功能,OCD,缺點調(diào)試的實時性不如ICE不支持非干擾調(diào)試查詢CPU必需具有OCD功能,OCD,存在各種實現(xiàn)BDM(Background Debugging Mode)JTAG(Joint Test Access Group)(主流方式)OnCE(On Chip Emu
22、lation),各種OCD仿真器實例,邊界掃描技術(shù)(JTAG),JTAG——標準測試訪問接口與邊界掃描結(jié)構(gòu)(Standard Test Access Port and Boundary Scan Architecture),已被IEEE1149.1標準所采納,是面向用戶的測試接口。該接口一般由4個引腳組成:測試數(shù)據(jù)輸入(TDI)測試數(shù)據(jù)輸出(TDO)測試時鐘(TCK)測試模式選擇引腳(TMS)異步測試復(fù)位引腳(TRST,可選
23、),邊界掃描技術(shù)(JTAG),優(yōu)點可以通過邊界掃描操作測試整個板的電氣連接,特別為表面貼元件提供方便 各個引腳信號的采樣,并可強制引腳輸出用以測試外圍芯片 可以軟件下載、執(zhí)行、調(diào)試和控制,為復(fù)雜的實時跟蹤調(diào)試提供路徑 可以進行多內(nèi)核和多處理器的板級和芯片級的調(diào)試,通過串接 ,為芯片制造商提供芯片生產(chǎn)、測試的途徑 不占用系統(tǒng)資源,能夠調(diào)試沒有外部總線的芯片,代價非常小,邊界掃描技術(shù)(JTAG),缺點通過串口依次傳遞數(shù)據(jù),速度比
24、較慢 只能進行軟件斷點級別的調(diào)試 不能完成實時跟蹤和多種事件觸發(fā)等復(fù)雜調(diào)試功能 幾種增強版本 ARM芯片的實時調(diào)試方案(E-TRACE) 背景調(diào)試模式BDM 片上仿真OnCE,Nexus標準,提出一個在JTAG之上的嵌入式處理器調(diào)試的統(tǒng)一標準 將調(diào)試開發(fā)分成四級 第一級使用JTAG的簡單靜態(tài)調(diào)試;第二級支持編程跟蹤和實時多任務(wù)的跟蹤,并允許用戶用I/O引腳作為多路復(fù)用輔助調(diào)試口;第三級包括處理器運行時的數(shù)據(jù)寫入跟蹤和
25、存儲器的讀寫跟蹤;第四級增加了存儲替換并觸發(fā)復(fù)雜的硬件斷點。,Nexus標準,通過Nexus 標準可以解決以下問題 調(diào)試內(nèi)部總線沒有引出的處理器,如含有片內(nèi)存儲器的芯片 傳統(tǒng)在線仿真器無法實現(xiàn)的高速調(diào)試 深度流水線和有片上Cache的芯片,能夠探測具體哪條指令被取指和最終執(zhí)行 可以穩(wěn)定地進行多內(nèi)核處理器的調(diào)試,Simulator,交叉開發(fā)方式存在如下缺點:硬件支持 必須有目標機或評估板易使用性 普通編程人員不熟悉廉價性
26、 成本高可移植性、可擴展性 不高團隊開發(fā) 較難開發(fā)周期 較長,Simulator,一種軟件仿真器,在宿主機上創(chuàng)建一個虛擬的目標機環(huán)境,再將應(yīng)用系統(tǒng)下載到這個虛擬目標機上運行/調(diào)試。軟件仿真的對象仿真處理器仿真外設(shè)仿真環(huán)境軟件仿真的級別指令級仿真開發(fā)API級仿真開發(fā),應(yīng)用仿真開發(fā)環(huán)境示意圖,結(jié)合了仿真的軟件開發(fā)過程,Simulator,優(yōu)點最大好處就是可以不用真正的目標機,可以在目標機環(huán)境并不存在的條件下開發(fā)目
27、標機上的應(yīng)用系統(tǒng),并且在調(diào)試時可以利用Host資源提供更詳細的錯誤診斷信息。,Simulator,缺點和實際的運行環(huán)境差別很大設(shè)備模擬的局限性較大實時特性較差對Host的資源要求較高適用范圍對時間特性沒有嚴格要求、沒有特殊外設(shè)、只需要驗證邏輯正確的應(yīng)用程序。,嵌入式軟件的測試,測試工具:能夠用來輔助測試的工具,主要用來支持測試人員的工作,本身不能直接用來進行測試。測試工具一般都是通用工具,測試人員應(yīng)該根據(jù)實際情況對它們進行
28、適當?shù)恼{(diào)整。嵌入式軟件測試中經(jīng)常用到的測試工具有:內(nèi)存分析工具性能分析工具覆蓋分析工具缺陷跟蹤工具等,嵌入式軟件的測試,內(nèi)存分析工具 嵌入式系統(tǒng)的內(nèi)存資源通常是受限的,內(nèi)存分析工具可以用來處理在進行動態(tài)內(nèi)存分配時產(chǎn)生的缺陷。當動態(tài)分配的內(nèi)存被錯誤地引用時,產(chǎn)生的錯誤通常難以再現(xiàn),出現(xiàn)的失效難以追蹤,使用內(nèi)存分析工具可以很好地檢測出這類缺陷。目前常用的內(nèi)存分析工具有軟件和硬件兩種:基于軟件的內(nèi)存分析工具可能會對代碼的執(zhí)行性
29、能帶來很大影響,從而影響系統(tǒng)的實時性;基于硬件的內(nèi)存分析工具對系統(tǒng)性能影響小,但價格昂貴,并且只能在特定的環(huán)境中使用。,嵌入式軟件的測試,性能分析工具 嵌入式系統(tǒng)的性能通常是一個非常關(guān)鍵的因素,開發(fā)人員一般需要對系統(tǒng)的某些關(guān)鍵代碼進行優(yōu)化來改進性能。性能分析工具可以提供有關(guān)數(shù)據(jù),幫助確定哪些任務(wù)消耗了過多的執(zhí)行時間,從而可以決定如何優(yōu)化軟件,以獲得更好的時間性能。引導(dǎo)開發(fā)人員發(fā)現(xiàn)在系統(tǒng)調(diào)用中存在的錯誤以及程序結(jié)構(gòu)上的缺陷。,嵌
30、入式軟件的測試,覆蓋分析工具 在進行白盒測試時,可以使用代碼覆蓋分析工具追蹤哪些代碼被執(zhí)行過分析過程一般通過插樁來完成,插樁可以是在測試環(huán)境中嵌入硬件,也可以是在可執(zhí)行代碼中加入軟件,或者是兩者的結(jié)合。開發(fā)人員通過對分析結(jié)果進行總結(jié),可以確定哪些代碼被執(zhí)行過,哪些代碼被遺漏了。目前常用的覆蓋分析工具一般都提供有關(guān)功能覆蓋、分支覆蓋、條件覆蓋等信息。,覆蓋分析工具實例,測試工具實例:邏輯分析儀,工作機理:在不打斷被測程序運行流程的
31、基礎(chǔ)上,對程序運行中的相關(guān)信息進行采集和分析,然后通過真實再現(xiàn)程序運行的邏輯流程和分析程序運行數(shù)據(jù),幫助用戶優(yōu)化系統(tǒng)設(shè)計和解決出現(xiàn)的問題。與調(diào)試工具的對比調(diào)試器:照相機邏輯分析儀:攝像機,測試工具實例:邏輯分析儀,主要功能:真實再現(xiàn)程序運行流程發(fā)現(xiàn)系統(tǒng)死鎖及軟件造成的死機發(fā)現(xiàn)系統(tǒng)內(nèi)存泄漏指導(dǎo)對任務(wù)的合理劃分指導(dǎo)關(guān)鍵路徑設(shè)計與驗證指導(dǎo)合理分配任務(wù)堆棧CPU使用率統(tǒng)計指導(dǎo)合理設(shè)計中斷服務(wù)程序,測試工具實例:邏輯分析儀,
32、嵌入式應(yīng)用軟件運行的邏輯流程,測試工具實例:邏輯分析儀,系統(tǒng)堆棧使用率分析,嵌入式軟件的固化運行,當調(diào)試完成之后,程序代碼需要被完全燒入到目標板的非易失性存儲器(如ROM或閃存)中,并且在真實的硬件環(huán)境上運行,這個過程叫做固化。調(diào)試環(huán)境與固化環(huán)境的區(qū)別:代碼定位不同初始化部分不同,嵌入式軟件的固化運行,嵌入式軟件的固化運行,Boot模塊:當應(yīng)用程序在真實的目標環(huán)境下運行時將首先執(zhí)行該程序,它至少由系統(tǒng)加電時執(zhí)行的代碼組成。 Bo
33、ot模塊的主要功能:初始化CPU環(huán)境,使目標機硬件到已知的狀態(tài)初始化芯片的引腳初始化系統(tǒng)外部控制寄存器初始化基本輸入輸出設(shè)備初始化MMU,包括片選控制寄存器等執(zhí)行數(shù)據(jù)拷貝,嵌入式軟件開發(fā)工具發(fā)展趨勢,向著開放的、集成化的方向發(fā)展具有系統(tǒng)設(shè)計、可視化建模、仿真和驗證功能 自動生成代碼和文檔 具有更高的靈活性,第二節(jié)嵌入式系統(tǒng)開發(fā)模式,概述處理器及硬件開發(fā)平臺的選定操作系統(tǒng)選定開發(fā)環(huán)境選定,,嵌入式系統(tǒng)開發(fā)模式概述
34、,最大特點:軟硬件綜合開發(fā)。,原因:,嵌入式產(chǎn)品是軟硬件的結(jié)合體,軟件針對硬件開發(fā)、固化,不能進行任意修改,嵌入式系統(tǒng)開發(fā)過程,,,,,,,,,,Yes,,,No,,,,,,硬件設(shè)計制作,,,功能模塊圖設(shè)計,,,邏輯電路圖設(shè)計,,,軟件設(shè)計實現(xiàn),軟硬件協(xié)同開發(fā),通常的嵌入式系統(tǒng)開發(fā)軟/硬件協(xié)同開發(fā),處理器及硬件開發(fā)平臺的選定,選擇依據(jù):應(yīng)用的類型及I/O接口主頻及功耗對不同類型存儲器的支持封裝產(chǎn)品生命力和廠家實力、技術(shù)支
35、持及第三方軟件的支持硬件開發(fā)平臺的選擇,操作系統(tǒng)選定,選擇依據(jù):選擇嵌入式OS的必要性自建、購買或使用開源軟件對嵌入式操作系統(tǒng)的功能、性能要求與硬件平臺和開發(fā)工具的關(guān)系行業(yè)標準技術(shù)支持版稅或服務(wù)費,操作系統(tǒng)與硬件平臺的關(guān)系,操作系統(tǒng)應(yīng)支持選定的硬件平臺如果不支持,需考慮移植工作不同類型嵌入式微處理器之間的移植:任務(wù)上下文切換、時鐘、中斷等同類型微處理器但不同類型硬件板之間的移植:硬件接口及設(shè)備驅(qū)動程序,操作系統(tǒng)與開
36、發(fā)工具的關(guān)系,工具是否能為基于特定操作系統(tǒng)的應(yīng)用開發(fā)提供最大支持:運行庫與OS相結(jié)合提供應(yīng)用工程創(chuàng)建和管理功能,構(gòu)建基于特定操作系統(tǒng)的應(yīng)用框架對操作系統(tǒng)的剪裁與配置提供高級調(diào)試功能提供配套的應(yīng)用邏輯分析工具、覆蓋測試工具等,開發(fā)環(huán)境及工具選定,對硬件平臺的支持所使用的編程語言C/C++匯編語言JAVA……與嵌入式操作系統(tǒng)的關(guān)系,第三節(jié)實時軟件分析設(shè)計方法,DARTS分析設(shè)計方法,,DARTS分析設(shè)計方法,嵌入式
37、實時軟件系統(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ù)間接口關(guān)系任務(wù)設(shè)計按模塊方式設(shè)計每個任務(wù),定義模塊間接口模塊構(gòu)筑完成每個模塊的詳細設(shè)計、編碼和單元測試任務(wù)與系統(tǒng)集成系統(tǒng)測試,實 例 說 明——機器人控制器系統(tǒng),控制面板,控制設(shè)備由內(nèi)部控制器和外部控制面板
38、組成控制器控制六個轉(zhuǎn)軸,并與數(shù)字I/O傳感器交互作用。轉(zhuǎn)軸和I/O由程序控制該程序由控制面板操作啟動執(zhí)行,按下“上電”按鈕,系統(tǒng)進入了上電狀態(tài)。上電成功后,系統(tǒng)進入了手動狀態(tài)。此時,操作者可以通過程序選擇開關(guān)選擇程序按下“運行”按鈕,則選定的程序開始運行,系統(tǒng)轉(zhuǎn)為運行態(tài)。程序運行中如果按下“停止”鍵,程序被掛起。之后,操作者可以按下“運行”鍵,使程序恢復(fù)執(zhí)行,也可按下“結(jié)束”鍵,結(jié)束程序。按下“結(jié)束”鍵后,系統(tǒng)進入終止態(tài)。
39、當程序最終終止執(zhí)行時,系統(tǒng)返回手動狀態(tài)。,控制執(zhí)行過程,需求分析與說明,,上電,,上電 成功,,斷電,,啟動,,程序選擇,,程序 終止,,結(jié)束,,,啟動,停止,狀態(tài)變遷圖,系 統(tǒng) 設(shè) 計,系統(tǒng)設(shè)計說明該系統(tǒng)如何被分解成多個任務(wù),如何定義任務(wù)間的關(guān)系任務(wù)劃分方法 —— DARTS設(shè)計方法,DARTS設(shè)計方法,數(shù)據(jù)流分析:每個數(shù)據(jù)流圖都包含:變換圈, 表示系統(tǒng)完成的功能箭頭,表示變換間的數(shù)據(jù)流動數(shù)據(jù)存儲區(qū),表示數(shù)據(jù)的存儲場
40、所數(shù)據(jù)字典,定義了數(shù)據(jù)流和數(shù)據(jù)存儲區(qū)所包含的數(shù)據(jù)項,機器人控制器數(shù)據(jù)流圖,程序,,解釋程序各語句,,按下按鈕,,面板輸入,,,有效的面板輸入,,運行開始 結(jié)束,,動作命令,,動作確認,,I/O命令,,傳感器值,,輸入,,傳感器輸入,,傳感器輸出,,輸出,,面板輸出,,顯示燈,,運行 停止重啟動,,軸塊,,軸確認,,軸輸入,,軸輸出,,動作塊,劃分任務(wù)就是識別出并行性的功能需要考慮的是系統(tǒng)內(nèi)功能的異步性。分析數(shù)
41、據(jù)流圖中的變換,確定哪些變換可以并行,哪些變換本質(zhì)上是順序的。一個任務(wù)可對應(yīng)一個變換,也可對應(yīng)多個變換。,DARTS設(shè)計方法,劃分任務(wù)原則I/O 依賴性 功能的時間關(guān)鍵性計算需求功能內(nèi)聚時間內(nèi)聚周期執(zhí)行,DARTS設(shè)計方法,I/O 依賴性,Device,I/O Task,App.Task,,,如果變換依賴于I/O,速度受限I/O,可獨立成任務(wù)在系統(tǒng)中創(chuàng)建與I/O設(shè)備數(shù)目相當?shù)腎/O任務(wù)I/O任務(wù)只實現(xiàn)與設(shè)備相關(guān)的代碼
42、I/O任務(wù)的執(zhí)行只受限于I/O設(shè)備的速度,而不是處理器在任務(wù)中分離設(shè)備相關(guān)性,功能的時間關(guān)鍵性,將有時間關(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)聚
43、,將緊密相關(guān)的功能變換組成一個任務(wù),減少通信的開銷把每個變換都作為同一任務(wù)中一個個獨立的模塊,不僅保證了模塊級的功能內(nèi)聚,也保證了任務(wù)級的功能內(nèi)聚,時間內(nèi)聚,將在同一時間內(nèi)完成的各功能(即使這些功能是不相關(guān)的)形成一個任務(wù)功能組的各功能是由相同的外部事件驅(qū)動的(如時鐘等),這樣每次任務(wù)接收到一個事件,它們都可以同時執(zhí)行由于減少了任務(wù)調(diào)度及切換的次數(shù),減少了系統(tǒng)的開銷,周期執(zhí)行,一個需要周期執(zhí)行的變換可以作為一個獨立的任務(wù),按一定的
44、時間間隔被激活將在相同周期內(nèi)執(zhí)行的各功能組成一個任務(wù)頻率高的任務(wù)賦予高優(yōu)先級,I/O,時間內(nèi)聚,功能內(nèi)聚,時間內(nèi)聚,,定義任務(wù)接口任務(wù)間通信模塊TCM(Task Communication Module)任務(wù)同步模塊TSM(Task Synchronization Module),DARTS設(shè)計方法,消息通信模塊信息隱藏模塊,任務(wù)間通信模塊,信息隱藏模塊,,任務(wù)同步模塊,,任務(wù)設(shè)計,任務(wù)體系結(jié)構(gòu):詳細定義任務(wù)包含的子模塊
45、和模塊間的關(guān)系任務(wù)執(zhí)行流程:盡可能詳細地描述任務(wù)的處理過程任務(wù)內(nèi)數(shù)據(jù)結(jié)構(gòu)任務(wù)內(nèi)模塊間接口,詳細說明系統(tǒng)中各任務(wù)的設(shè)計考慮和執(zhí)行流程,以利于程序員編制程序。,任務(wù)設(shè)計,,任務(wù)設(shè)計,,模塊構(gòu)筑,系統(tǒng)和任務(wù)設(shè)計完成后,進行每個模塊的詳細設(shè)計,直到每個具體的函數(shù)在單元測試前不必編完模塊全部程序,可以分階段編碼和測試模塊的詳細設(shè)計應(yīng)一氣呵成,避免系統(tǒng)以非結(jié)構(gòu)化方式形成,函數(shù)設(shè)計,函數(shù)描述 給出對該函數(shù)的簡要描述,說明設(shè)計目的、意義以及特
46、點功能 說明該函數(shù)應(yīng)具有的功能,可采用IPO圖(輸入一處理一輸出圖)形式性能 說明對該函數(shù)的性能要求,包括精度、靈活性和時間特性等輸入 定義每個輸入項的特性,包括名稱、標識、數(shù)據(jù)類型和格式、取值范圍、輸入方式、數(shù)據(jù)來源、保密方式等輸出 定義每個輸入項的特性,特征同輸入,算法 詳細說明本函數(shù)所選用的算法,具體的計算公式和計算步驟流程 用流程圖輔以必要的說明來表示本函數(shù)的邏輯流程接口 說明本函數(shù)與其他函數(shù)的調(diào)用關(guān)系,包括說明參數(shù)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子科技大學(xué) 嵌入式軟件工程中心
- 嵌入式系統(tǒng)作業(yè)答案電子科技大學(xué)
- 電子科技大學(xué)
- 電子科技大學(xué)《軟件工程》21春期末考核a卷
- 電子科技大學(xué)策劃
- 杭州電子科技大學(xué)
- 桂林電子科技大學(xué)
- 西安電子科技大學(xué)
- —西安電子科技大學(xué)—
- 電子科技大學(xué)2008年
- 數(shù)據(jù)挖掘-西安電子科技大學(xué)軟件學(xué)院
- 《電子科技大學(xué)獎勵辦法》
- 博士西安電子科技大學(xué)
- 電子科技大學(xué)中山學(xué)院
- 電子科技大學(xué)2019年考研860 軟件工程學(xué)科基礎(chǔ)綜合考試大綱
- 2016年電子科技大學(xué)860 軟件工程學(xué)科基礎(chǔ)綜合考研真題
- 施工方案(電子科技大學(xué))
- 電機與拖動(電子科技大學(xué))
- 電子科技大學(xué)國際科技合作
- 電子科技大學(xué)軟件技術(shù)基礎(chǔ)在線作業(yè)
評論
0/150
提交評論