嵌入式硬件系統(tǒng)原理:第二章 處理器和存儲器組織_第1頁
嵌入式硬件系統(tǒng)原理:第二章 處理器和存儲器組織_第2頁
嵌入式硬件系統(tǒng)原理:第二章 處理器和存儲器組織_第3頁
嵌入式硬件系統(tǒng)原理:第二章 處理器和存儲器組織_第4頁
嵌入式硬件系統(tǒng)原理:第二章 處理器和存儲器組織_第5頁
已閱讀5頁,還剩118頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章處理器和存儲器

組織本章內(nèi)容:2.1處理器中的結構單元2.2嵌入式系統(tǒng)的處理器選擇2.3存儲器設備2.4嵌入式系統(tǒng)的存儲器選擇2.5程序段和塊的存儲器分配及系統(tǒng)的存儲器影射2.6直接存儲器訪問(DMA)

2.7處理器、存儲器和I/O設備的接口教學目的:了解嵌入式處理器的結構單元熟悉各類存儲器設備及其應用掌握存儲器塊的使用掌握存儲器影射的概念掌握ROM的映像掌握直接存儲器訪問(DMA)掌握MCU與存儲器及I/O設備的接口安排學時:8學時。2.1處理器中的結構單元通用處理器中的結構單元通用處理器結構單元.docCISC為控制器和處理器的特征CISC處理器的特征.docRISC為控制器和處理器的特征RISC處理器的特征.doc名詞解釋(1)分支代價(branchpenalty)。如果在一個多級流水線中碰到一條分支指令,則在流水線前面幾級中執(zhí)行的指令就是冗余的。當循環(huán)結束或者從例程返回后,這些指令必須重新執(zhí)行。重新執(zhí)行這些指令所需要的時間就稱為分支代價。(2)數(shù)據(jù)依賴性代價(datadependencypenalty)。假設在一個超標量操作中,有兩個指令分別在兩路中執(zhí)行。并且一條指令依賴于另外一條指令的數(shù)據(jù)結果。這就是所謂的不對準。因此,在將兩條指令分別放置在不同的路中之前,它們是不對準的。此時,一條指令必須等待,直到另外一條指令執(zhí)行完后才能執(zhí)行。等待的時間就是數(shù)據(jù)依賴性代價。流水線和超標量執(zhí)行假定1假設處理器指令周期是0.02ms(頻率為50MHz),并且處理器在一個時鐘周期內(nèi)執(zhí)行一條指令。如果不考慮其他高級處理單元,處理器的性能預期為50MIPS。假定2假設處理器中有一個三級流水線,如ARM7中的流水線。我們暫時忽略分支的影響(稱為分支代價)。三條指令將在一個時鐘周期內(nèi)處理完。不考慮超標量處理單元,只考慮流水線,處理器的最大預期性能為150MIPS。假定3假設有一個兩路的超標量。先忽略未調(diào)整數(shù)據(jù)的影響(稱為數(shù)據(jù)依賴性代價)。當具有三級流水線、兩路超標量單元時,6條指令將在一個時鐘周期內(nèi)執(zhí)行完?,F(xiàn)在最高的性能是處理器周期的6倍,也就是300MIPS。2.2嵌入式系統(tǒng)的處理器選擇(1)指令周期時間(instructioncycletime):這是處理器執(zhí)行一條指令所需要的時間,對于工作頻率約為12MHz的8051處理器來說約為1μs;對于C8051@25MHz為40ns;ARM9(3.3ns@300MHz)。(2)內(nèi)部總線寬度(internalbuswidth):ALU(數(shù)學或邏輯操作)的一個操作數(shù)的位數(shù)等于總線寬度。當總線寬度為32位時,其讀寫的整數(shù)寬度就為32位,且執(zhí)行速度比總線寬度為8時的速度快大約4倍。PowerPC、MPC604處理器和奔騰處理器的內(nèi)部總線寬度為64位。(3)CISC或者RISC體系結構:CISC或者RISC體系結構會影響系統(tǒng)設計。CISC具有用較少的寄存器處理復雜指令和復雜數(shù)據(jù)集的能力。RISC執(zhí)行較簡單的指令,每條指令只占用一個周期。具有RISC實現(xiàn)的CISC是說:對大多數(shù)指令而言,都具有在單個指令周期中執(zhí)行的硬連線實現(xiàn)(如ARM、80960和奔騰處理器)。(4)程序計數(shù)器(PC)及其復位值:PC的位數(shù)確定了處理器可以訪問的物理內(nèi)存的最大空間。復位值告訴設計者,在運行系統(tǒng)復位和加電的程序應該存放在什么地方。(5)堆棧指針(stackpointer)及其初始復位值:堆棧指針保存存儲在堆棧中數(shù)據(jù)的地址,并應在系統(tǒng)分配給堆棧使用的地址范圍之內(nèi)。設計者需定義初始復位值;且必須在兩種存儲器之間進行選擇:使用外部堆棧或使用內(nèi)部堆棧。(6)片上存儲器(RAM、寄存器文件、窗口、緩存、ROM)。軟件通過指令來啟用處理器中的高速緩存,使得在運行程序中某一部分時獲得更高的性能;而同時又禁止程序中其余部分使用高速緩存,以降低功耗并將系統(tǒng)的能量需求最小化。硬件應該選擇一個具有多路緩存單元的處理器,這樣就能夠只激活一個高速緩存(包含執(zhí)行指令的一個子集時所需要的數(shù)據(jù))。(7)外部中斷(externalinterrupt):在處理器中有幾個管腳,外部電路可以通過這些管腳發(fā)送中斷信號。(8)中斷控制器(interruptcontroller):對服務程序優(yōu)先級進行編程,并分配向量地址。內(nèi)部中斷處理器在大多數(shù)應用程序中都有很大的幫助。(9)位操作指令(bitmanipulationinstruction):這些指令有助于簡化端口和存儲器地址中數(shù)據(jù)的處理。(10)浮點處理器(floatpointprocessor):包含F(xiàn)LPU和FRS單元的處理器能夠快速執(zhí)行浮點運算。它們能夠提高處理器的計算能力,適用于信號處理和復雜的控制應用。(11)多通道直接存儲器訪問(directmemoryaccess,DMA)控制器:當有多個I/O設備,并且一個I/O設備需要快速訪問一個多字節(jié)數(shù)據(jù)集時,系統(tǒng)存儲器片上DMA控制器會有很大的幫助。(12)片上MMU:當使用高速緩存、虛擬內(nèi)存管理、內(nèi)存保護時需要這個單元。2.2嵌入式系統(tǒng)總體結構2.2.1硬件層2.2.2中間層2.2.3軟件層2.2.4功能層2.3存儲器設備2.3.1ROM:使用方法、形式和變種2.3.2RAM設備2.3.1ROM:使用方法、形式和變種掩模ROM(maskedROM),是一個具有r個輸入(A0—Ar-1)和8個輸出的時序電路,由芯片生產(chǎn)廠家采用采用半導體工藝“批量”生產(chǎn)出來的。EPROM、EEPROM和OTPROMEPROM和EEPROM需要先擦除(寫入FF),后寫入數(shù)據(jù)。

OTPROM是一次性寫入的ROM。FLASHROMFLASHROM是一種5V或3V性質(zhì)的EEPROM,其擦除必須整塊地擦除,然后再寫入。FLASHROM的分類及特性。2.3.2RAM設備RAM的使用:用來存儲程序運行時的變量、存儲堆棧、數(shù)據(jù)結構等。此外環(huán)可作為輸入/輸出緩存。RAM的分類:

SRAM(StaticRAM)靜態(tài)RAM速度非常快,只要加電內(nèi)容就不會消失。但他的基本存儲電路是由6個MOS管組成1位。集成度較低,功耗也較大。一般高速緩沖存儲器(Cachememory)用它組成。

DRAM(DynamicRAM)

DRAM內(nèi)容在斷電后數(shù)秒之內(nèi)自動消失,因此必須周期性的在內(nèi)容消失之前進行刷新(Refresh)。由于他的基本存儲電路由一個晶體管及一個電容組成,因此他的集成成本較低,另外耗電也少,但是需要刷新電路。

靜態(tài)RAM:同步突發(fā)SRAM(synchronousburstSRAM,SBSRAM)、管道突發(fā)SRAM(pipelinedburstSRAM,PBSRAM)等。

動態(tài)RAM:快速頁模式DRAM(fastpagemodeDRAM,FPMDRAM)、擴充數(shù)據(jù)輸出RAM(extendeddataoutputRAM,EDORAM)、同步DRAM(synchronousDRAM,SDRAM)、RDRAM(RambusDRAM)、DRDRAM(directRambusDRAM)等。

專用存儲器芯片:鐵電體RAM(ferroeelectricRAM,FRAM)、雙口RAM、先進先出存儲器(FIFORAM)等。2.4嵌入式系統(tǒng)的存儲器選擇(1)成本:如果系統(tǒng)的隨機存儲器的容量不是很大,一般采用SRAM,反之,選擇DRAM存儲器。(2)對于嵌入式處理器而言,有的嵌入式處理器芯片本身集成了DRAM控制器,這時選擇DRAM是一個比較好的方案。一般的,小規(guī)模的嵌入式系統(tǒng)不建議使用分離的DRAM控制器+DRAM的方案,因為這種方案一方面增加系統(tǒng)的復雜性(電路板的面積、故障率等);另一方面會增加系統(tǒng)的成本。(3)如果確實需要DRAM,那么盡量使用帶有DRAM控制器的嵌入式處理器,然后配合使用DRAM。(4)對于特別高速度的應用,可使用SRAM。(5)如果嵌入式系統(tǒng)對功耗很敏感,可使用SRAM,因為DRAM需要時刻刷新,消耗能量;而SRAM在系統(tǒng)進入待機方式時,只需要微小的待機電流就可以維持數(shù)據(jù)不丟失。注意:SRAM的平均功耗低,但是工作時功耗不一定低。作業(yè)201.請給出SDRAM、RDRAM的定義,說明其各自的特點和區(qū)別。2.DRAM對讀寫有何要求?給出讀寫時序。2.5程序段和塊的存儲器分配及系統(tǒng)

的存儲器影射2.5.1各種存儲器中的函數(shù)、過程、數(shù)據(jù)和堆棧2.5.2不同數(shù)據(jù)結構和數(shù)據(jù)集合元素的存儲器塊2.5.3存儲器映射2.5.4內(nèi)部設備和I/O設備在映射中的地址2.5.1各種存儲器中的

函數(shù)、過程、數(shù)據(jù)和堆棧2.5.2不同數(shù)據(jù)結構和數(shù)據(jù)集合元素的存儲器塊堆棧(stack):

堆棧是一個按照LIFO規(guī)則使用的內(nèi)存塊。堆??梢杂脕肀4鏀帱c、傳遞數(shù)據(jù),在多任務系統(tǒng)中,每個任務(線程)均有自己的堆棧,可用來存儲上下文(context)。每個堆棧都有自己的堆棧指針,該指針總是指向棧頂。堆棧定義的操作有:壓棧、退棧、獲得存儲空間(建立)、棧指針的越界檢驗。

數(shù)組(array)數(shù)組是一個重要的數(shù)據(jù)結構??捎脕泶鎯τ袊栏竦捻樞蜿P系的一組數(shù)據(jù)。數(shù)組在內(nèi)存中占有一個物理地址連續(xù)的存儲器塊。一般來講,數(shù)組名就是指向該存儲器塊的指針。數(shù)組可以借助下標對其中的元素進行尋址。

隊列(queue):隊列是一個物理地址連續(xù)的存儲器塊,其中的數(shù)據(jù)元素總是以FIFO的模式取回。使用隊列數(shù)據(jù)結構,可以將數(shù)據(jù)通過網(wǎng)絡傳送到一個文件中或者打印機中。隊列有兩個指針。一個稱為隊尾指針,另一個稱為隊首指針,兩個指針的差值是隊列的當前長度。元素從隊尾指針指向的位置插入(寫操作),每次增加元素后這個指針都應該增加;隊首指針用來完成元素的刪除(讀操作)。每次刪除元素后這個指針都應該增加。兩個指針開始的時候都指向存儲器塊中的起始地址。對隊列指針應該設立越界檢驗。另外一種隊列就是環(huán)形隊列。

管道(pipe)

:在分配給一個隊列的普通存儲器塊中,當執(zhí)行插入操作一端的標識與執(zhí)行刪除操作一端的目的標識不同時,通常稱這樣的隊列為管道。這個隊列中有兩個實體以某種方式相連。例如,一個實體用來向隊列中寫(插入)元素,另一個實體用來從隊列中讀(刪除)元素。一個管道通常連接兩個任務。注意:1.管道的數(shù)據(jù)傳輸有延遲。2.管道不適用于并發(fā)程序設計。

表(table):表是一個二維數(shù)組(矩陣),是分配了存儲器塊的一個重要數(shù)據(jù)集合。表總是有一個基指針。它指向表的第1列第1行的第1個元素。存在兩個索引,一個是列索引,一個是行索引。與數(shù)組相同,任何元素都可以通過三個地址(表基址、列索引和行索引)取回。當用表中的數(shù)值代替指針的時候,指令中使用的數(shù)值稱為偏移(displacement)。偏移可以是一行或者一列。表的存放有按列存放或按行存放兩種。哈希表(hashtable):是一個鍵/值數(shù)據(jù)集合。哈希表的每一列都有一個鍵或者名字。相應的數(shù)值或者對象在第2列。鍵可以存在于不連續(xù)的存儲器地址中。查表的過程就像創(chuàng)建散列。如果表的第1列作為鍵(指向數(shù)值的指針),第2列作為數(shù)值,我們稱這樣的表為查詢表。哈希表是一個分配了存儲器塊的數(shù)據(jù)集合,通常用作查詢表。正如索引標識了數(shù)組元素一樣,一個哈希鍵也標識了一個哈希元素。

鏈表(list):是一個具有多個存儲器塊的數(shù)據(jù)結構,每一個元素都有一個存儲器塊(物理地址不連續(xù),但邏輯地址連續(xù))。鏈表具有頂(頭)指針,指向鏈表開始處的存儲器地址。存儲器中的每一個鏈表元素也保存了指向下一個元素的指針。最后一個元素不指向任何地方。鏈表用來保存存儲器中不連續(xù)存儲的對象。鏈表有單向鏈表和雙向鏈表之分。2.5.3存儲器映射右圖給出了系統(tǒng)中具有Princeton結構時所需要的存儲器區(qū)域和具有Harvard結構時所需要的存儲器區(qū)域。(1)在Princeton結構中,程序中的向量和指針、變量、程序段和保存數(shù)據(jù)和堆棧的存儲器塊都同一物理存儲中但具有不同的地址。(2)在Harvard結構中,程序段和保存數(shù)據(jù)和堆棧的存儲器塊具有獨立的地址空間。控制信號和讀寫指令也是分開的存儲器分配映射的示例

嵌入式系統(tǒng)示例(借貸卡)的存儲器映射需要一個2KB的存儲器。它還需要一個256字節(jié)的RAM,主要用于堆棧。還需要512字節(jié)的EEPROM,用來存儲貸方或者借方的余額,以及卡的前一次交易記錄。因此這個系統(tǒng)的存儲器定位器或者鏈接腳本程序可以如下定義存儲器映射。

1.Memory2.{ram:ORIGIN=0x10000,LENGTH=2563.eeprom:ORIGIN=0x20000,LENGTH=5124.rom:ORIGIN=0x00000,LENGTH=2K5.}嵌入式存儲器子系統(tǒng)的設計考慮盡量使用存儲密度大的存儲器芯片充分考慮嵌入式系統(tǒng)的功耗限制成本考慮,大多數(shù)嵌入式系統(tǒng)的存儲器容量與軟件的大小匹配。擴展存儲器考慮片上有存儲器片上無存儲器考慮綜合成本(含電路板面積)嵌入式系統(tǒng)的存儲器子系統(tǒng)通常設計成模塊結構,包括ROM子系統(tǒng)、RAM子系統(tǒng)等,每個子系統(tǒng)占用一定的存儲空間。一體化設計與分離式設計:嵌入式系統(tǒng)的存儲器通常與系統(tǒng)主板設計在一起,而不設計成所謂“內(nèi)存條”形式,原因是一方面嵌入式系統(tǒng)的內(nèi)存通常是固定大小的;另一方面,一體結構可以提高系統(tǒng)的可靠性,因為嵌入式系統(tǒng)通常工作在惡劣環(huán)境、移動環(huán)境中。關于嵌入式處理器的中斷向量表,有兩種設計方案:一種方案是中斷向量或中斷處理程序的入口地址設置在ROM空間,一旦設置,運行中不再更改,如大多數(shù)小規(guī)模的嵌入式處理器/控制器采取這種方式;另外,也可以把中斷向量設計在RAM空間。(2-1)一個3×3的矩陣與另外一個3×2的矩陣相乘。如果從一個寄存器到另外一個寄存器的數(shù)據(jù)傳送需要2ns,加法需要20ns,乘法需要50ns,執(zhí)行時間為多少?假設這些時間在具有MAC單元的DSP中是相同的,MAC將起到什么作用?(2-2)一個數(shù)組具有10個整數(shù),每個整數(shù)都是32位的。令每個整數(shù)等于其在數(shù)組中的索引乘以1024。令存儲器中的基址為0x4800。對于第0個、第4個、第9個元素,在(a)big-endian模式和(b)little-endian模式下將如何存儲?(2-3)我們可以假設嵌入式系統(tǒng)的存儲器也是一個設備。列出這樣說的理由(提示:利用訪問控制寄存器和虛擬文件和RAM磁盤設備的概念)。(2-4)現(xiàn)在高性能嵌入式系統(tǒng)或者使用RISC處理器,或者使用具有RISC核、代碼最優(yōu)化CISC指令集的處理器。為什么?(2-5)存儲器中的循環(huán)隊列具有100個字符,每個字符為32位。包括兩個隊列指針在內(nèi),總共需要多少存儲器空間?2.6直接存儲器訪問DMAI/O設備需要將其他系統(tǒng)的數(shù)據(jù)傳送到系統(tǒng)的存儲器地址上。系統(tǒng)可能還需要將要傳送到其他系統(tǒng)的數(shù)據(jù)傳送到I/O設備上。當多字節(jié)數(shù)據(jù)或者一個數(shù)據(jù)塊需要在兩個系統(tǒng)之間、在CPU不干預(除了傳送的開始和結束之外)的情況下進行傳送時,需要直接存儲器訪問(DirectMemoryAccess,DMA)。在DMA操作中三種模式:一次傳送一個字節(jié),然后放棄系統(tǒng)總線(主要用于測試和調(diào)試模式)一次進行burst傳送,然后放棄系統(tǒng)總線。一次burst傳送可能是幾個KB。進行批傳送,并在傳送完后放棄系統(tǒng)總線(一般在每次原子操作后,釋放一次總線控制權,以讓其他總線控制器有機會可以占有總線)。

DMA傳送是在DMAC(DMA控制器)的協(xié)助下進行的。由于DMAC只需要很少的處理器干預,因而提高了I/O設備和系統(tǒng)存儲器之間的數(shù)據(jù)傳送效率。在傳送的過程中,系統(tǒng)地址和數(shù)據(jù)總線對于處理器來說是不可用的,而對于與DMAC相連的IO設備是可用的(如計算機中,硬盤和系統(tǒng)存儲器之間的數(shù)據(jù)傳送使用的是DMAC通道)。除了處理器之外,其他的設備也可以通過DMA來獲得系統(tǒng)存儲器的使用權。DMAC可以為多個通道提供存儲器訪問。對于每一個通道的編程,有單獨的寄存器組。在多通道DMAC的情況下,會有單獨的中斷信號。一個多通道DMAC提供來自系統(tǒng)存儲器和兩個(或者多個IO)設備的DMA操作。2.7接口技術2.3.3嵌入式系統(tǒng)的軟硬件協(xié)同設計技術2.4嵌入式系統(tǒng)開發(fā)過程2.4.1需求分析階段2.4.2詳細設計階段2.4.3實現(xiàn)階段2.4.4測試階段需求分析系統(tǒng)測試系統(tǒng)實現(xiàn)詳細設計概要設計詳細設計嵌入式產(chǎn)品開發(fā)過程2.4.1需求分析階段2.4.1.1分析用戶的需求2.4.1.2確定硬件軟件2.4.1.3檢查需求分析的結果2.4.1.4確定項目的約束條件2.4.1.5概要設計2.4.1.1分析用戶的需求1、分析用戶對產(chǎn)品的需求2、確認需求3、羅列用戶的需求4、設計簡單的需求表格5、需求的內(nèi)部一致性1、分析用戶對產(chǎn)品的需求用戶:一般用戶、公司內(nèi)部的市場部門等需求指標:功能價格系統(tǒng)的尺寸和重量功耗其他。。。2、確認需求用戶的表達方式。。。系統(tǒng)設計者的表達方式。。。交互的一致性。。。3、羅列用戶的需求1/4(1)系統(tǒng)用于什么任務?(2)系統(tǒng)從用戶或其他源接收什么輸入?(3)系統(tǒng)從用戶或其他源輸出什么?(4)用戶想要如何同系統(tǒng)打交道?(5)系統(tǒng)的重量和體積如何?3、羅列用戶的需求2/4(6)系統(tǒng)連接何種外設?(7)系統(tǒng)是否需要運行某些現(xiàn)存的軟件?(8)系統(tǒng)處理哪種類型的數(shù)據(jù)?(9)系統(tǒng)是否要與別的系統(tǒng)通訊?(10)系統(tǒng)是單機還是網(wǎng)絡系統(tǒng)?3、羅列用戶的需求3/4(11)系統(tǒng)的響應時間是多少?(12)需要什么安全措施?(13)系統(tǒng)在什么樣的環(huán)境下運行?(14)外部存儲媒介和內(nèi)存需要多大?(15)系統(tǒng)的可拆裝性,可靠性和牢固性的期望值是什么?3、羅列用戶的需求4/4(16)如何給系統(tǒng)供電?(17)系統(tǒng)如何向用戶通報故障?(18)是否需要任何手動或機械代用裝置?(19)系統(tǒng)是否將具有遠程診斷或更正問題的功能?(20)其他問題4、簡單的需求表格名稱目的輸入輸出功能性能生產(chǎn)成本功耗物理尺寸和重量5、需求的內(nèi)部一致性(注)在寫完需求以后,對它們的內(nèi)部一致性進行檢查:是否忘記了給某個功能指定輸入或輸出?是否考慮了系統(tǒng)運行的所有方式?是否有一些不切實際的要求?系統(tǒng)是否可以實現(xiàn)?2.4.1.2確定硬件軟件1、處理器選型2、總線的吞吐量3、操作系統(tǒng)4、編程語言5、第三方軟件或庫函數(shù)6、第三方的硬件:開發(fā)板、評估板、OEM板7、其他。。。2.4.1.3對需求的結果進行檢查原因需求分析階段可能會發(fā)生錯誤-走彎路目的資料的全面性、工作的細致性方法和內(nèi)容干擾的信息(多余)漏掉的信息(缺少)超前的信息(一些需要在設計階段才提出的信息)矛盾(相互制約)模棱兩可無法實現(xiàn)2.4.1.4確定項目的約束條件約束條件:屬于項目實施過程中的不利因素,指的是項目實施過程中限制項目按時圓滿完成的內(nèi)部和外部因素。約束條件?是否要滿足項目的階段性或竣工的工期限制?項目的部分或全體是否限制在一個固定的預算內(nèi)?分派到該項目的最大人數(shù)是多少?每個人員每周在此項目上能工作多少小時?員工的技術知識和經(jīng)驗是否足夠?2.4.1.4確定項目的約束條件約束條件2/2員工對要解決的問題是否熟悉?員工和關鍵的人才地處何處?你是否必須要采用某種硬件?你是否必須要采用某種工具軟件?約束(限制)條件的考慮(注)約束隨時都可能出現(xiàn)約束影響所選擇的方法約束會滋長新的約束太多的約束將使進行中的項目成為不可能2.4.1.5概要設計1、概要設計-初步設計2、硬件設計功能設計結構化設計物理設計3、軟件設計功能分析與設計軟件模塊劃分模塊開發(fā)與實現(xiàn)2.4.2詳細設計階段審查需求分析資料…體系結構/整體設計…硬件與軟件劃分…硬件與軟件的設計次序…硬件設計…軟件設計…檢查設計…2.4.2.1詳細設計階段-審查分析資料審查分析資料(來自需求分析階段)。。。審查約束條件(來自需求分析階段)。。。2.4.2.2詳細設計階段-體系結構設計描述系統(tǒng)的功能如何實現(xiàn)是體系結構設計的目的。決定因素系統(tǒng)是硬實時系統(tǒng)還是軟實時系統(tǒng)操作系統(tǒng)是否需要嵌入物理系統(tǒng)的成本、尺寸和耗電量是否是產(chǎn)品成功的關鍵因素選擇處理器和相關硬件其他2.4.2.3詳細設計階段-硬件與軟件劃分決定哪些用硬件實現(xiàn),哪些用軟件實現(xiàn)?例如:浮點運算網(wǎng)絡通信控制器實現(xiàn)的功能軟調(diào)制解調(diào)器/硬調(diào)制解調(diào)器軟件壓縮解壓/硬件壓縮解壓圖像2.4.2.4詳細設計階段-硬件與軟件設計次序方案先設計硬件先設計軟件軟硬件同時設計根據(jù)項目的情況自由選擇2.4.2.5詳細設計階段-硬件設計設計硬件子系統(tǒng):top-down方法分成模塊設計框圖例:CPU子系統(tǒng)、存儲器子系統(tǒng)等定義硬件接口I/O端口硬件寄存器共享內(nèi)存硬件中斷存儲器空間分配處理器的運行速度2.4.2.6詳細設計階段-軟件設計設計軟件子系統(tǒng)總體設計、模塊設計定義軟件接口 模塊接口、函數(shù)接口2.4.2.7詳細設計階段-檢查設計小項目自己審查設計文檔中等項目拿給同事朋友并向他們解釋你的設計大型項目-審查會設計者應作一個更正式的報告。由于這是一個設計審查會,召集一群人,主要由工程師組成,并盡可能包括一些對項目有不同看法角度的成員,如做市場的人員、最終用戶2.4.2.8詳細設計階段-設計自動化系統(tǒng)設計階段很重要,系統(tǒng)設計與開發(fā)時間之比1:2系統(tǒng)的設計需要軟件、硬件的綜合知識容易出錯-使用自動化工具2.4.2.10詳細設計階段-硬件平臺簡介要求最好-多種評估方法多個方案,選擇最優(yōu)嵌入式系統(tǒng)硬件平臺多樣性,例如:有ARM系列(目前有幾十種基于ARM內(nèi)核的處理器被使用)、MotorolaPowerPC系列、Coldfire系列、M.core系列等、DragonBall系列,NEC公司的VR系列,Hitachi公司SH3,SH4系列等等其它2.4.3實現(xiàn)階段1、選擇開發(fā)平臺。。。硬件平臺、嵌入式操作系統(tǒng)、開發(fā)語言、開發(fā)工具2、軟件開發(fā)過程。。。3、開發(fā)階段的文檔。。。2.4.3.1選擇開發(fā)平臺

1、科研開發(fā)階段——

選擇硬件平臺的考慮1/2處理器的處理速度項目的開發(fā)人員對選擇的處理器是否熟悉處理器上的I/O功能是否滿足系統(tǒng)的要求處理器的軟件支持工具處理器的調(diào)試支持處理器制造商的支持可信度如何1、科研開發(fā)階段——

選擇硬件部件的考慮2/2產(chǎn)品的需求量例如:PC104和定制開發(fā)目標市場的機會如何購買和自制軟件對硬件的依賴程度評估板的使用2、科研開發(fā)階段——

選擇操作系統(tǒng)嵌入式操作系統(tǒng)的功能,支持部件配套開發(fā)工具的支持操作系統(tǒng)的移植難度操作系統(tǒng)是否包括特殊的調(diào)試支持操作系統(tǒng)的內(nèi)存要求如何項目程序員是否熟悉此操作系統(tǒng),主要指此操作系統(tǒng)通常提供的API操作系統(tǒng)是否包括所有需要的部件操作系統(tǒng)是否有目標硬件的驅(qū)動程序操作系統(tǒng)是否有可伸縮性3、科研開發(fā)階段——

選擇編程語言考慮軟件開發(fā)人員最熟練的語言是哪種語言使用的廣泛程度語言的性能如何例如:C語言、匯編語言、Java,C++等2.4.3.2科研開發(fā)階段-軟件開發(fā)嵌入式系統(tǒng)的軟件開發(fā)過程準備交叉開發(fā)環(huán)境編譯和連接重定位和下載調(diào)試在主機系統(tǒng)上驗證軟件在目標系統(tǒng)上驗證軟件代碼優(yōu)化-續(xù)…代碼優(yōu)化1/2清除程序中的無用代碼清除為調(diào)試所引入的代碼避免使用大型的庫例程避免使用遞歸式例程,因為它們需要很大的堆棧避免浮點操作代碼優(yōu)化2/2優(yōu)化算法——乘法可以通過左移操作來完成將訪問最頻繁的變量聲明為寄存器變量或自動變量只要可能,盡量使用無符號數(shù)據(jù)類型如果某個函數(shù)或例程消耗大量的計算時間,那么就將該函數(shù)或例程用匯編語言來編碼充分利用編譯器提供的優(yōu)化2.4.3.3科研開發(fā)階段——文檔技術文件目錄技術任務書技術方案報告產(chǎn)品標準(草案)技術條件(進廠)可靠性技術設計技術設計說明書形式試驗報告試制報告文檔1-技術文件目錄描述了所有的技術文件清單文檔2-技術任務書任務來源、設計依據(jù)產(chǎn)品用途及使用范圍主要工作原理及硬軟件分工基本參數(shù)、主要功能、技術指標總部局、主要部件概述標準化綜合要求提出國內(nèi)外同類產(chǎn)品水平比較關鍵技術預測開發(fā)周期估算文檔3-技術方案報告描述了科研開發(fā)的技術方案與實際的項目有關文檔4-產(chǎn)品標準產(chǎn)品范圍引用標準基本參數(shù)及形式技術要求(功能、性能、影響量)試驗方法(采用國際標準)檢驗規(guī)則文檔5-技術條件(進廠)使用范圍技術要求試驗方法文檔6-技術設計說明書-硬件總體方案產(chǎn)品結構產(chǎn)品性能電路工作原理分析、技巧、結構工藝合理性主要故障鑒別方法文檔6-技術設計說明書-軟件總體方案及體系結構任務調(diào)度原理或總控流程說明各種功能的實現(xiàn)方法、處理流程或工作原理數(shù)據(jù)庫說明、邏輯結構數(shù)據(jù)格式說明內(nèi)存分配方案各部分接口設計通用子程序和標準子程序設計文檔7-形式試驗報告文檔8-試制總結1.技術水平 國際、國內(nèi)、先進?2.試制過程中出現(xiàn)的問題的解決措施3.對沒有達到技術任務書要求進行說明2.4.4測試階段1、測試的原因2、何時測試3、測試內(nèi)容4、何時停止測試5、選擇測試用例6、實時失敗模式7、評估測試的覆蓋率8、性能測試9、維護和測試2.4.4.1測試階段-測試的原因開發(fā)過程中已經(jīng)開始測試了——調(diào)試原因:在軟件中找到錯誤(在這方面測試是惟一的方法)減少用戶與公司的風險節(jié)約開發(fā)與維護成本提高系統(tǒng)的性能2.4.4.2測試階段-何時測試分布于開發(fā)的每個階段——debug單元測試-小模塊測試/調(diào)試回歸測試只測試一遍是不夠的。每次修改后都應當重新測試以確認這些修改會不會無意中影響一些看似與之無關的行為,這被稱作回歸測試。使用測試腳本2.4.4.3測試階段-測試內(nèi)容/方法功能測試-黑盒測試覆蓋測試-白盒測試灰盒測試黑盒測試被測對象測試輸入測試輸出理想測試情況:遍歷所有輸入實際測試情況:簡單枚舉輸入白盒測試-1/2if(condition1){action1();action2();}else{action3();}白盒測試-2/2switch(condition){casecondition1:action1();break; casecontion2: action2(); break; default: action3(); break;

溫馨提示

  • 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

提交評論