第5講嵌入式軟件系統(tǒng)及其設計_第1頁
第5講嵌入式軟件系統(tǒng)及其設計_第2頁
第5講嵌入式軟件系統(tǒng)及其設計_第3頁
第5講嵌入式軟件系統(tǒng)及其設計_第4頁
第5講嵌入式軟件系統(tǒng)及其設計_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

姚英彪杭州電子科技大學嵌入式軟件系統(tǒng)及其設計軟件軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。其中:程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護和使用有關的各種圖文資料。軟件分類按照應用的觀點,軟件可分為系統(tǒng)軟件、支撐軟件和應用軟件三類系統(tǒng)軟件位于計算機系統(tǒng)中最靠近硬件的一層,其他軟件一般都通過系統(tǒng)軟件發(fā)揮作用。如編譯程序和操作系統(tǒng)等。支撐軟件即支撐其他軟件的編制和維護的軟件。主要包括各種接口軟件和工具軟件。應用軟件特定應用領域?qū)S玫能浖?,例如字處理程序。軟件分類最下面是硬件系統(tǒng);最上面是使用計算機的人,即各種各樣的用戶;人與硬件系統(tǒng)之間是軟件系統(tǒng)。系統(tǒng)軟件是最靠近硬件的一層,其次是支撐軟件和應用軟件。軟件設計概念軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,即軟件設計是確定系統(tǒng)的物理模型。從技術觀點來看,軟件設計包括數(shù)據(jù)設計、體系結(jié)構(gòu)設計、接口設計、過程設計。數(shù)據(jù)設計將實體關系圖中描述的對象和關系,以及數(shù)據(jù)字典中描述的詳細數(shù)據(jù)內(nèi)容轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。體系結(jié)構(gòu)設計定義軟件系統(tǒng)各主要成份之間的關系。接口設計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各成份之間、軟件與其它協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機制。過程設計則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述。為什么要軟件設計軟件設計是后續(xù)開發(fā)步驟及軟件維護工作的基礎。如果沒有設計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構(gòu)。設計編碼測試維護測試編碼維護有軟件設計沒有軟件設計軟件設計步驟從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。概要設計將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)確定系統(tǒng)級接口全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。詳細設計確立每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)用適當方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)軟件設計既是過程又是模型。設計過程是一系列的迭代步驟,使設計人員能夠描述目標系統(tǒng)的各個側(cè)面。設計模型首先描述目標系統(tǒng)的整體架構(gòu),然后逐步細化架構(gòu)得到構(gòu)造每個細節(jié)的指導原則,從而得到系統(tǒng)的一系列不同的視圖。良好的設計原則可為設計過程導航衡量設計過程的技術原則設計必須實現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。對于開發(fā)者和未來的維護者而言,設計必須是可讀的、可理解的,使得將來易于編程、易于測試、易于維護。設計應該給出軟件的全貌,包括從實現(xiàn)角度可看到的數(shù)據(jù)、功能、行為。衡量設計過程的技術原則設計模型應該是一個分層與模塊化結(jié)構(gòu)。設計應當建立具有獨立功能特征的構(gòu)件。設計應當根據(jù)將要實現(xiàn)的對象和數(shù)據(jù)模式導出合適的數(shù)據(jù)結(jié)構(gòu)。設計應當包含數(shù)據(jù)、體系結(jié)構(gòu)、接口和構(gòu)件(模塊)的清晰的視圖。。設計應當建立能夠降低模塊與外部環(huán)境之間復雜連接的接口。Davis的軟件設計原則設計應具有可跟蹤性,能回溯到軟件需求;設計不必每次都從頭做起,可以復用已有的設計模式和數(shù)據(jù)模式。設計不是編碼,編碼也不是設計。設計模型的抽象級別比源代碼高。在編碼級別上唯一的設計決策是補充一些實現(xiàn)細節(jié)。設計應具有容錯性和異常處理能力。對于異常數(shù)據(jù)、事件、操作條件等能夠平滑處理。在建立設計方案時就應能評估設計質(zhì)量,而不是在軟件編碼之后。具體設計原則和設計手段設計應遵循抽象化原則,包含數(shù)據(jù)抽象和過程抽象。過程抽象:是指在軟件設計中將處理過程的實現(xiàn)細節(jié)隱藏在數(shù)據(jù)抽象中,可以直接通過模塊接口使用這些處理操作。數(shù)據(jù)抽象:是指采用抽象數(shù)據(jù)類型表示數(shù)據(jù),實現(xiàn)數(shù)據(jù)封裝,使得使用者可通過接口使用數(shù)據(jù)而不必關心數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)。設計應遵循自頂向下、逐步細化的原則,建立一個層次的結(jié)構(gòu)。將軟件體系結(jié)構(gòu)自頂向下,對過程細節(jié)和數(shù)據(jù)細節(jié)從抽象到具體,逐層細化,直到用編程語言的語句能夠?qū)崿F(xiàn)為止。具體設計原則和設計手段設計應當遵循模塊化的原則。每個模塊可獨立地開發(fā)、測試,最后組裝成完整的程序。其出發(fā)點是本著將一種復雜問題“分而治之”的原則。其目的是使程序的結(jié)構(gòu)清晰,容易閱讀、理解、測試、修改。Meyer的良好模塊設計方法的標準模塊可分解性可將系統(tǒng)按問題/子問題分解的原則分解成系統(tǒng)的模塊層次結(jié)構(gòu);模塊可組裝性可利用已有的設計構(gòu)件組裝成新系統(tǒng),不必一切從頭開始。模塊可理解性一個模塊可不參考其他模塊而被理解;模塊連續(xù)性對軟件需求的一些微小變更只導致對某個模塊的修改而整個系統(tǒng)不用大動;模塊保護將模塊內(nèi)出現(xiàn)異常情況的影響范圍限制在模塊內(nèi)部操作系統(tǒng)操作系統(tǒng)的地位

操作系統(tǒng)實際上是一個計算機系統(tǒng)中硬、軟件資源的總指揮部。操作系統(tǒng)定義

是計算機系統(tǒng)中的一個系統(tǒng)軟件,是能有效地組織和管理計算機系統(tǒng)中的硬件和軟件資源,合理地組織計算機工作流程,控制程序的執(zhí)行,并向用戶提供各種服務功能,使得用戶能夠靈活、方便、有效地使用計算機,并使整個計算機系統(tǒng)能高效地運行的一組程序模塊的集合。操作系統(tǒng)的形成與發(fā)展無操作系統(tǒng)時的計算機系統(tǒng)人工操作方式由用戶(即程序員)采用人工操作方式直接使用計算機硬件系統(tǒng)。缺點:用戶獨占全機、CPU等待人工操作。脫機輸入輸出方式程序和數(shù)據(jù)的輸入輸出都是在外圍機的控制下完成。優(yōu)點:減少了CPU的空閑時間、提高I/O速度。操作系統(tǒng)的形成與發(fā)展單道批處理系統(tǒng)系統(tǒng)對作業(yè)的處理都是成批地進行的、且在內(nèi)存中始終只保持一道作業(yè),故稱為單道批處理系統(tǒng)。特征:

自動性順序性單道性操作系統(tǒng)的形成與發(fā)展多道批處理系統(tǒng)多道程序設計的基本概念把一個以上的作業(yè)(程序)存放在主存中,并且同時處于運行狀態(tài),共享處理機時間和外部設備等其他資源的方法。優(yōu)點:提高了CPU的利用率提高了內(nèi)存和I/O設備的利用率 增加系統(tǒng)吞吐量多道批處理系統(tǒng)多道批處理系統(tǒng)的特征-多道性-無序性-調(diào)度性:作業(yè)調(diào)度和進程調(diào)度多道批處理系統(tǒng)的優(yōu)缺點-優(yōu)點:資源利用率高、系統(tǒng)吞吐量大-缺點:平均周轉(zhuǎn)時間長、無交互能力多道批處理系統(tǒng)需要解決的問題-處理機管理問題-內(nèi)存管理問題-I/O設備管理問題-文件管理問題-作業(yè)管理問題分時系統(tǒng)分時系統(tǒng)的產(chǎn)生

人-機交互、共享主機、便于用戶上機分時系統(tǒng)實現(xiàn)中的關鍵問題及時接收、及時處理分時系統(tǒng)的實現(xiàn)方法-作業(yè)直接進入內(nèi)存-規(guī)定每個程序只運行一個時間片的時間。具體方法有以下幾種:單道分時系統(tǒng)、具有“前臺”和“后臺”的分時系統(tǒng)、多道分時系統(tǒng)分時系統(tǒng)的特征

-多路性、獨立性、及時性、交互性實時系統(tǒng)實時系統(tǒng)的引入

實時控制、實時信息處理實時系統(tǒng)定義-實時:所謂“實時”,是表示“及時”-實時系統(tǒng):實時系統(tǒng)是指系統(tǒng)能及時(或即時)響應外部事件的請求,在規(guī)定的時間內(nèi)完成該事件的處理,并控制所有實時任務協(xié)調(diào)一致地運行實時任務的類型-按任務執(zhí)行時是否呈現(xiàn)周期性來劃分:周期性實時任務、非周期性實時任務

-根據(jù)對截止時間的要求來劃分:強(硬)實時任務、弱(軟)實時任務操作系統(tǒng)主要功能處理器管理存儲管理設備管理文件管理作業(yè)管理處理器管理實質(zhì)上是對處理器執(zhí)行“時間”的管理單道程序系統(tǒng)和多道程序系統(tǒng)程序A程序B程序C程序A程序B程序C程序A程序B程序C單道程序系統(tǒng)中程序的執(zhí)行多道程序系統(tǒng)中程序的執(zhí)行程序和進程的概念程序是靜態(tài)的進程是程序的執(zhí)行活動。進程是可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的運行過程,可以申請和擁有系統(tǒng)資源。進程是個可以獨立調(diào)度的基本單位進程是一個動態(tài)的概念,是活動的,有產(chǎn)生、運行、消亡的過程比較菜譜做菜程序CPU其他資源進程靜態(tài)動態(tài)執(zhí)行執(zhí)行廚師材料線程為了更好地實現(xiàn)并發(fā)處理和共享資源,提高CPU的利用率,目前許多操作系統(tǒng)對進程進行“細分”,一個進程可再分為多個線程。目的:實現(xiàn)并發(fā)處理和共享資源,提高CPU的利用率

UNIX:進程是CPU的分配單位

Windows:線程是CPU的分配單位多任務執(zhí)行并發(fā)式多任務:宏觀上多任務同時執(zhí)行微觀上CPU輪流處理多個任務任務1任務2任務3任務4任務5時間存儲管理實質(zhì)上是對存儲空間的管理,主要是對內(nèi)存的管理。提高內(nèi)存的利用率和從邏輯上擴充內(nèi)存。主要包括以下四個方面的功能:內(nèi)存分配為每道程序分配足夠完整運行的內(nèi)存空間,而且要提高存儲器的利用率內(nèi)存保護保證各道程序都能在自己的內(nèi)存空間運行而互不干擾,尤其防止用戶程序侵犯操作系統(tǒng)的內(nèi)存區(qū)地址映射內(nèi)存擴充內(nèi)存分配inta;floatb;charc;符號名空間源程序a的邏輯地址邏輯地址空間目標程序b的邏輯地址c的邏輯地址……物理地址空間存儲器a的物理地址b的物理地址c的物理地址……編譯地址映射內(nèi)存擴充利用虛擬存儲技術,從邏輯上擴充內(nèi)存容量,使系統(tǒng)能夠運行對內(nèi)存需求量遠比物理內(nèi)存大的多的作業(yè)利用硬盤上的一部分空間模擬內(nèi)存,為用戶提供一個比實際內(nèi)存大得多的內(nèi)存空間硬盤設備管理對計算機系統(tǒng)中除了CPU和內(nèi)存以外的所有I/O設備的管理緩沖管理設備分配設備處理虛擬設備緩沖管理CPU

內(nèi)存系統(tǒng)總線外存儲器輸出設備輸入設備I/O控制器主機外設緩沖I/O控制器I/O控制器設備分配對用戶請求的設備按某種分配策略進行分配將未獲得所需設備的進程放進相應設備的等待隊列使用完的設備回收由設備處理程序完成,又稱設備驅(qū)動程序,其基本任務是:實現(xiàn)CPU和設備控制器之間的通信,由CPU向設備控制器發(fā)送I/O指令,啟動指定的I/O設備完成用戶規(guī)定的I/O操作文件管理文件是存儲在外存儲器中的一組相關信息的集合,例如:·一個程序·一張數(shù)碼相片·一首MP3歌曲·一封電子郵件文件是外存中信息的存取(讀出/寫入)單位計算機中所有的程序和數(shù)據(jù)都組織成為文件存放在外存儲器中,并使用其名字進行存取操作。文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的組織方法和數(shù)據(jù)結(jié)構(gòu)。作業(yè)管理為用戶使用系統(tǒng)提供一個良好環(huán)境,讓用戶有效地組織自己的工作流程使整個系統(tǒng)能高效地運行幾種工作接口命令接口系統(tǒng)調(diào)用接口(應用程序編程接口)操作系統(tǒng)對運行程序提供服務的并與之通信的一種機構(gòu),供編程使用。低級語言:直接使用高級語言:調(diào)用過程(函數(shù))使用如Windows的API函數(shù)圖形用戶接口問題:功能、性能要求價格、開發(fā)周期等約束設計:

選擇折衷分析比較計算評價嵌入式系統(tǒng)嵌入式系統(tǒng)的設計方法工具嵌入式系統(tǒng)要解決的主要問題

需要用什么樣的系統(tǒng)結(jié)構(gòu)來實現(xiàn)?如何滿足時限要求,如何處理多項功能在時間上的協(xié)調(diào)一致關系?如何保證系統(tǒng)可靠地工作?如何滿足系統(tǒng)接口要求,嵌入式應用直接和系統(tǒng)接口輸入輸出信息?如何降低系統(tǒng)的功耗?如何使系統(tǒng)可升級?嵌入式系統(tǒng)設計的挑戰(zhàn)性問題

軟硬件協(xié)同設計功耗的優(yōu)化設計嵌入式操作系統(tǒng)開發(fā)環(huán)境成本和開發(fā)周期代碼優(yōu)化高效的輸入和輸出測試環(huán)境嵌入式系統(tǒng)是一個迭代優(yōu)化的設計過程嵌入式系統(tǒng)的設計:只有更好,沒有最好!反復迭代反復迭代TimetoMarket需求提出

系統(tǒng)結(jié)構(gòu)設計

系統(tǒng)引入錯誤和修改錯誤開銷分布

引入錯誤數(shù)目修改錯誤開銷開發(fā)周期系統(tǒng)結(jié)構(gòu)設計軟硬件詳細設計軟硬件實現(xiàn)軟硬件的劃分

嵌入式系統(tǒng)的設計涉及硬件與軟件部件,設計中必須決定什么功能由硬件實現(xiàn),什么功能由軟件實現(xiàn)。硬件和軟件具有雙重性軟硬件變動對系統(tǒng)的決策造成影響劃分和選擇需要考慮多種因素硬件和軟件的雙重性是劃分決策的前提軟硬件協(xié)同設計的基本需求統(tǒng)一的軟硬件描述方式軟硬件支持統(tǒng)一的設計和分析工具(技術)允許在一個集成環(huán)境中仿真(評估)系統(tǒng)軟硬件設計支持系統(tǒng)任務在軟件和硬件設計之間的相互移植交互式軟硬件劃分技術允許多個不同的軟硬件劃分設計進行仿真和比較輔助最優(yōu)系統(tǒng)實現(xiàn)方式?jīng)Q策嵌入式系統(tǒng)設計工具明確了系統(tǒng)的體系架構(gòu)和開發(fā)流程以后,接下來就要進行開發(fā)、調(diào)試與測試,包括選擇適當?shù)拈_發(fā)環(huán)境和開發(fā)工具,例如編譯器、鏈接器、定位器,或者直接使用集成開發(fā)環(huán)境(IDE),隨后將編譯好的程序轉(zhuǎn)為映像(Image),下載到目標平臺上,與開發(fā)平臺連接后進行調(diào)試和測試。編譯器編譯器(Compiler)是將一種語言翻譯成另一種語言的計算機程序。它將源程序作為輸入,產(chǎn)生目標語言。通常,源程序采用高級語言編寫,如C/C++,或者是匯編語言。而目標語言則是目標機器的目標代碼(ObjectCode),有時也稱為機器代碼(MachineCode)。使用編譯器可以使我們不必直接編寫麻煩的機器代碼,而直接使用便于理解的高級語言或插入了助記符的匯編語言,提高了編程的效率。常見的編譯器有VisualC++、BorlandC++以及Linux下的GCC等。鏈接器編譯完程序后會產(chǎn)生目標代碼,但要執(zhí)行程序還需要對目標代碼進行鏈接,這就要用到鏈接器。鏈接器將所有的目標代碼文件?.o或者?.obj以及l(fā)ib中的數(shù)據(jù)段區(qū),包括text、data、bss區(qū)段的數(shù)據(jù)進行合并,并且將尚未決定的函數(shù)和變量調(diào)用對應起來。在嵌入式系統(tǒng)中,要鏈接出一個可以放到ROM中執(zhí)行的程序,開發(fā)人員還必須對啟動代碼進行鏈接,并且制定鏈接關系地址。集成開發(fā)環(huán)境集成開發(fā)環(huán)境(IntergratedDevelopmentEnviroment,IDE)是用于程序開發(fā)的應用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。該程序可以獨立運行,也可以和其他程序并用。最典型的例子就是VisualC++,許多的開發(fā)環(huán)境都將其作為模板,并得到了廣泛的應用。集成開發(fā)環(huán)境的好處就是可以方便地管理各種工程項目和函數(shù)庫,特別是當整個系統(tǒng)越來越大的時候,可以省去很多管理和設置上的麻煩,減輕了開發(fā)人員的負擔。實際上,軟件開發(fā)環(huán)境正是朝著IDE的方向發(fā)展。交叉開發(fā)環(huán)境嵌入式系統(tǒng)通常是一個資源受限的系統(tǒng),直接在嵌入式系統(tǒng)的目標硬件平臺上編寫軟件是很困難甚至是不可能的,因此,在嵌入式系統(tǒng)的開發(fā)中往往用到一個交叉開發(fā)環(huán)境(CrossDevelopmentEnvironment)。所謂交叉開發(fā),就是在通用計算機(比如PC)上編輯、編譯程序,生成可以在目標平臺上運行的二進制代碼指令,然后再下載到目標平臺上進行調(diào)試的開發(fā)方式。通用計算機一般稱為宿主機,目標平臺稱為目標機。交叉開發(fā)環(huán)境一般由運行于宿主機上的交叉開發(fā)軟件和系統(tǒng)仿真器組成。交叉開發(fā)軟件一般為一個集成開發(fā)環(huán)境。在線仿真器在線仿真器(In-CircuitEmulator,ICE)是一種模擬CPU的設備,能執(zhí)行CPU的全部動作。采用該方式調(diào)試時,利用仿真頭代替目標板上的CPU,可以完全仿真CPU的行為,并且提供了豐富的調(diào)試功能,但缺點是結(jié)構(gòu)復雜、價格昂貴,通常用于硬件開發(fā)中。在線調(diào)試器在線調(diào)試器(In-CircuitDebug,ICD)是將CPU的除錯(調(diào)試)功能的引腳引出來,讓外部的硬件直接連接到這些引腳上去監(jiān)控整個CPU的動作,這樣開發(fā)人員就可以很容易地利用比較便宜的除錯(調(diào)試)工具和CPU的除錯(調(diào)試)模塊進行溝通,一般這些CPU上的除錯模塊都提供讀出寫入內(nèi)存、讀出寫入CPU寄存器、單步執(zhí)行、中斷以及觸發(fā)等功能設置。目前,比較流行的是ARM公司開發(fā)板上使用的JTAG(JointTestActionGroup)調(diào)試端口。ICD調(diào)試方式比ICE便宜得多,因此現(xiàn)在越來越多的開發(fā)人員開始采用這種方式。2023/2/2一個簡單的例子設計實例要求設計一個系統(tǒng),完成圖像顏色空間變換的實時處理,輸入圖像大小為VGA分辨率(640×480)圖像的彩色空間變換公式(1)確定系統(tǒng)的數(shù)據(jù)處理流程上述任務的處理流程可分解為三步:Phase2數(shù)據(jù)處理Phase1讀取數(shù)據(jù)Phase3保存(輸出)數(shù)據(jù)輸入接口輸出接口處理器算法分析每次運算只涉及1個像素每個像素的運算量是:9次乘法+6次加法讀入整幅圖像數(shù)據(jù),然后再進行處理,簡稱Frame-In模式讀取一個圖像點,就處理一個圖像點,簡稱Pixel-In模式根據(jù)每次運算只涉及到1個pixel,可以采用兩種可能的輸入方式同理可知,數(shù)據(jù)的輸出也有方式:整幅圖像數(shù)據(jù)處理完成后,一次性的存儲到外部緩存中,簡稱Frame-Out模式逐個像素點的存儲。每處理完一個點就輸出處理結(jié)果,簡稱Pixel-Out模式輸入、輸出性能分析無論哪種方式(pixel/Frame模式),對IO接口的最低要求是:每個像素有3bytes的數(shù)據(jù)輸入(RGB),3bytes輸出(YUV),輸入輸出基本對稱1pixel=3次讀操作+3次寫操作每幀圖像:640*480*1pixel每秒種:PAL制(625線*25):25*640*480*1pixelNTSC制(525線*29.97):30*640*480*1pixel2023/2/2算法運算量估計核心算法的計算量估算試計算每個像素處理需要的計算量?處理一幅圖像

溫馨提示

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

評論

0/150

提交評論