版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章處理器和存儲(chǔ)器
組織本章內(nèi)容:2.1處理器中的結(jié)構(gòu)單元2.2嵌入式系統(tǒng)的處理器選擇2.3存儲(chǔ)器設(shè)備2.4嵌入式系統(tǒng)的存儲(chǔ)器選擇2.5程序段和塊的存儲(chǔ)器分配及系統(tǒng)的存儲(chǔ)器影射2.6直接存儲(chǔ)器訪問(wèn)(DMA)
2.7處理器、存儲(chǔ)器和I/O設(shè)備的接口教學(xué)目的:了解嵌入式處理器的結(jié)構(gòu)單元熟悉各類存儲(chǔ)器設(shè)備及其應(yīng)用掌握存儲(chǔ)器塊的使用掌握存儲(chǔ)器影射的概念掌握ROM的映像掌握直接存儲(chǔ)器訪問(wèn)(DMA)掌握MCU與存儲(chǔ)器及I/O設(shè)備的接口安排學(xué)時(shí):8學(xué)時(shí)。2.1處理器中的結(jié)構(gòu)單元通用處理器中的結(jié)構(gòu)單元通用處理器結(jié)構(gòu)單元.docCISC為控制器和處理器的特征CISC處理器的特征.docRISC為控制器和處理器的特征RISC處理器的特征.doc名詞解釋(1)分支代價(jià)(branchpenalty)。如果在一個(gè)多級(jí)流水線中碰到一條分支指令,則在流水線前面幾級(jí)中執(zhí)行的指令就是冗余的。當(dāng)循環(huán)結(jié)束或者從例程返回后,這些指令必須重新執(zhí)行。重新執(zhí)行這些指令所需要的時(shí)間就稱為分支代價(jià)。(2)數(shù)據(jù)依賴性代價(jià)(datadependencypenalty)。假設(shè)在一個(gè)超標(biāo)量操作中,有兩個(gè)指令分別在兩路中執(zhí)行。并且一條指令依賴于另外一條指令的數(shù)據(jù)結(jié)果。這就是所謂的不對(duì)準(zhǔn)。因此,在將兩條指令分別放置在不同的路中之前,它們是不對(duì)準(zhǔn)的。此時(shí),一條指令必須等待,直到另外一條指令執(zhí)行完后才能執(zhí)行。等待的時(shí)間就是數(shù)據(jù)依賴性代價(jià)。流水線和超標(biāo)量執(zhí)行假定1假設(shè)處理器指令周期是0.02ms(頻率為50MHz),并且處理器在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令。如果不考慮其他高級(jí)處理單元,處理器的性能預(yù)期為50MIPS。假定2假設(shè)處理器中有一個(gè)三級(jí)流水線,如ARM7中的流水線。我們暫時(shí)忽略分支的影響(稱為分支代價(jià))。三條指令將在一個(gè)時(shí)鐘周期內(nèi)處理完。不考慮超標(biāo)量處理單元,只考慮流水線,處理器的最大預(yù)期性能為150MIPS。假定3假設(shè)有一個(gè)兩路的超標(biāo)量。先忽略未調(diào)整數(shù)據(jù)的影響(稱為數(shù)據(jù)依賴性代價(jià))。當(dāng)具有三級(jí)流水線、兩路超標(biāo)量單元時(shí),6條指令將在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行完?,F(xiàn)在最高的性能是處理器周期的6倍,也就是300MIPS。2.2嵌入式系統(tǒng)的處理器選擇(1)指令周期時(shí)間(instructioncycletime):這是處理器執(zhí)行一條指令所需要的時(shí)間,對(duì)于工作頻率約為12MHz的8051處理器來(lái)說(shuō)約為1μs;對(duì)于C8051@25MHz為40ns;ARM9(3.3ns@300MHz)。(2)內(nèi)部總線寬度(internalbuswidth):ALU(數(shù)學(xué)或邏輯操作)的一個(gè)操作數(shù)的位數(shù)等于總線寬度。當(dāng)總線寬度為32位時(shí),其讀寫(xiě)的整數(shù)寬度就為32位,且執(zhí)行速度比總線寬度為8時(shí)的速度快大約4倍。PowerPC、MPC604處理器和奔騰處理器的內(nèi)部總線寬度為64位。(3)CISC或者RISC體系結(jié)構(gòu):CISC或者RISC體系結(jié)構(gòu)會(huì)影響系統(tǒng)設(shè)計(jì)。CISC具有用較少的寄存器處理復(fù)雜指令和復(fù)雜數(shù)據(jù)集的能力。RISC執(zhí)行較簡(jiǎn)單的指令,每條指令只占用一個(gè)周期。具有RISC實(shí)現(xiàn)的CISC是說(shuō):對(duì)大多數(shù)指令而言,都具有在單個(gè)指令周期中執(zhí)行的硬連線實(shí)現(xiàn)(如ARM、80960和奔騰處理器)。(4)程序計(jì)數(shù)器(PC)及其復(fù)位值:PC的位數(shù)確定了處理器可以訪問(wèn)的物理內(nèi)存的最大空間。復(fù)位值告訴設(shè)計(jì)者,在運(yùn)行系統(tǒng)復(fù)位和加電的程序應(yīng)該存放在什么地方。(5)堆棧指針(stackpointer)及其初始復(fù)位值:堆棧指針保存存儲(chǔ)在堆棧中數(shù)據(jù)的地址,并應(yīng)在系統(tǒng)分配給堆棧使用的地址范圍之內(nèi)。設(shè)計(jì)者需定義初始復(fù)位值;且必須在兩種存儲(chǔ)器之間進(jìn)行選擇:使用外部堆?;蚴褂脙?nèi)部堆棧。(6)片上存儲(chǔ)器(RAM、寄存器文件、窗口、緩存、ROM)。軟件通過(guò)指令來(lái)啟用處理器中的高速緩存,使得在運(yùn)行程序中某一部分時(shí)獲得更高的性能;而同時(shí)又禁止程序中其余部分使用高速緩存,以降低功耗并將系統(tǒng)的能量需求最小化。硬件應(yīng)該選擇一個(gè)具有多路緩存單元的處理器,這樣就能夠只激活一個(gè)高速緩存(包含執(zhí)行指令的一個(gè)子集時(shí)所需要的數(shù)據(jù))。(7)外部中斷(externalinterrupt):在處理器中有幾個(gè)管腳,外部電路可以通過(guò)這些管腳發(fā)送中斷信號(hào)。(8)中斷控制器(interruptcontroller):對(duì)服務(wù)程序優(yōu)先級(jí)進(jìn)行編程,并分配向量地址。內(nèi)部中斷處理器在大多數(shù)應(yīng)用程序中都有很大的幫助。(9)位操作指令(bitmanipulationinstruction):這些指令有助于簡(jiǎn)化端口和存儲(chǔ)器地址中數(shù)據(jù)的處理。(10)浮點(diǎn)處理器(floatpointprocessor):包含F(xiàn)LPU和FRS單元的處理器能夠快速執(zhí)行浮點(diǎn)運(yùn)算。它們能夠提高處理器的計(jì)算能力,適用于信號(hào)處理和復(fù)雜的控制應(yīng)用。(11)多通道直接存儲(chǔ)器訪問(wèn)(directmemoryaccess,DMA)控制器:當(dāng)有多個(gè)I/O設(shè)備,并且一個(gè)I/O設(shè)備需要快速訪問(wèn)一個(gè)多字節(jié)數(shù)據(jù)集時(shí),系統(tǒng)存儲(chǔ)器片上DMA控制器會(huì)有很大的幫助。(12)片上MMU:當(dāng)使用高速緩存、虛擬內(nèi)存管理、內(nèi)存保護(hù)時(shí)需要這個(gè)單元。2.2嵌入式系統(tǒng)總體結(jié)構(gòu)2.2.1硬件層2.2.2中間層2.2.3軟件層2.2.4功能層2.3存儲(chǔ)器設(shè)備2.3.1ROM:使用方法、形式和變種2.3.2RAM設(shè)備2.3.1ROM:使用方法、形式和變種掩模ROM(maskedROM),是一個(gè)具有r個(gè)輸入(A0—Ar-1)和8個(gè)輸出的時(shí)序電路,由芯片生產(chǎn)廠家采用采用半導(dǎo)體工藝“批量”生產(chǎn)出來(lái)的。EPROM、EEPROM和OTPROMEPROM和EEPROM需要先擦除(寫(xiě)入FF),后寫(xiě)入數(shù)據(jù)。
OTPROM是一次性寫(xiě)入的ROM。FLASHROMFLASHROM是一種5V或3V性質(zhì)的EEPROM,其擦除必須整塊地擦除,然后再寫(xiě)入。FLASHROM的分類及特性。2.3.2RAM設(shè)備RAM的使用:用來(lái)存儲(chǔ)程序運(yùn)行時(shí)的變量、存儲(chǔ)堆棧、數(shù)據(jù)結(jié)構(gòu)等。此外環(huán)可作為輸入/輸出緩存。RAM的分類:
SRAM(StaticRAM)靜態(tài)RAM速度非常快,只要加電內(nèi)容就不會(huì)消失。但他的基本存儲(chǔ)電路是由6個(gè)MOS管組成1位。集成度較低,功耗也較大。一般高速緩沖存儲(chǔ)器(Cachememory)用它組成。
DRAM(DynamicRAM)
DRAM內(nèi)容在斷電后數(shù)秒之內(nèi)自動(dòng)消失,因此必須周期性的在內(nèi)容消失之前進(jìn)行刷新(Refresh)。由于他的基本存儲(chǔ)電路由一個(gè)晶體管及一個(gè)電容組成,因此他的集成成本較低,另外耗電也少,但是需要刷新電路。
靜態(tài)RAM:同步突發(fā)SRAM(synchronousburstSRAM,SBSRAM)、管道突發(fā)SRAM(pipelinedburstSRAM,PBSRAM)等。
動(dòng)態(tài)RAM:快速頁(yè)模式DRAM(fastpagemodeDRAM,FPMDRAM)、擴(kuò)充數(shù)據(jù)輸出RAM(extendeddataoutputRAM,EDORAM)、同步DRAM(synchronousDRAM,SDRAM)、RDRAM(RambusDRAM)、DRDRAM(directRambusDRAM)等。
專用存儲(chǔ)器芯片:鐵電體RAM(ferroeelectricRAM,FRAM)、雙口RAM、先進(jìn)先出存儲(chǔ)器(FIFORAM)等。2.4嵌入式系統(tǒng)的存儲(chǔ)器選擇(1)成本:如果系統(tǒng)的隨機(jī)存儲(chǔ)器的容量不是很大,一般采用SRAM,反之,選擇DRAM存儲(chǔ)器。(2)對(duì)于嵌入式處理器而言,有的嵌入式處理器芯片本身集成了DRAM控制器,這時(shí)選擇DRAM是一個(gè)比較好的方案。一般的,小規(guī)模的嵌入式系統(tǒng)不建議使用分離的DRAM控制器+DRAM的方案,因?yàn)檫@種方案一方面增加系統(tǒng)的復(fù)雜性(電路板的面積、故障率等);另一方面會(huì)增加系統(tǒng)的成本。(3)如果確實(shí)需要DRAM,那么盡量使用帶有DRAM控制器的嵌入式處理器,然后配合使用DRAM。(4)對(duì)于特別高速度的應(yīng)用,可使用SRAM。(5)如果嵌入式系統(tǒng)對(duì)功耗很敏感,可使用SRAM,因?yàn)镈RAM需要時(shí)刻刷新,消耗能量;而SRAM在系統(tǒng)進(jìn)入待機(jī)方式時(shí),只需要微小的待機(jī)電流就可以維持?jǐn)?shù)據(jù)不丟失。注意:SRAM的平均功耗低,但是工作時(shí)功耗不一定低。作業(yè)201.請(qǐng)給出SDRAM、RDRAM的定義,說(shuō)明其各自的特點(diǎn)和區(qū)別。2.DRAM對(duì)讀寫(xiě)有何要求?給出讀寫(xiě)時(shí)序。2.5程序段和塊的存儲(chǔ)器分配及系統(tǒng)
的存儲(chǔ)器影射2.5.1各種存儲(chǔ)器中的函數(shù)、過(guò)程、數(shù)據(jù)和堆棧2.5.2不同數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)集合元素的存儲(chǔ)器塊2.5.3存儲(chǔ)器映射2.5.4內(nèi)部設(shè)備和I/O設(shè)備在映射中的地址2.5.1各種存儲(chǔ)器中的
函數(shù)、過(guò)程、數(shù)據(jù)和堆棧2.5.2不同數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)集合元素的存儲(chǔ)器塊堆棧(stack):
堆棧是一個(gè)按照LIFO規(guī)則使用的內(nèi)存塊。堆??梢杂脕?lái)保存斷點(diǎn)、傳遞數(shù)據(jù),在多任務(wù)系統(tǒng)中,每個(gè)任務(wù)(線程)均有自己的堆棧,可用來(lái)存儲(chǔ)上下文(context)。每個(gè)堆棧都有自己的堆棧指針,該指針總是指向棧頂。堆棧定義的操作有:壓棧、退棧、獲得存儲(chǔ)空間(建立)、棧指針的越界檢驗(yàn)。
數(shù)組(array)數(shù)組是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)??捎脕?lái)存儲(chǔ)有嚴(yán)格的順序關(guān)系的一組數(shù)據(jù)。數(shù)組在內(nèi)存中占有一個(gè)物理地址連續(xù)的存儲(chǔ)器塊。一般來(lái)講,數(shù)組名就是指向該存儲(chǔ)器塊的指針。數(shù)組可以借助下標(biāo)對(duì)其中的元素進(jìn)行尋址。
隊(duì)列(queue):隊(duì)列是一個(gè)物理地址連續(xù)的存儲(chǔ)器塊,其中的數(shù)據(jù)元素總是以FIFO的模式取回。使用隊(duì)列數(shù)據(jù)結(jié)構(gòu),可以將數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳送到一個(gè)文件中或者打印機(jī)中。隊(duì)列有兩個(gè)指針。一個(gè)稱為隊(duì)尾指針,另一個(gè)稱為隊(duì)首指針,兩個(gè)指針的差值是隊(duì)列的當(dāng)前長(zhǎng)度。元素從隊(duì)尾指針指向的位置插入(寫(xiě)操作),每次增加元素后這個(gè)指針都應(yīng)該增加;隊(duì)首指針用來(lái)完成元素的刪除(讀操作)。每次刪除元素后這個(gè)指針都應(yīng)該增加。兩個(gè)指針開(kāi)始的時(shí)候都指向存儲(chǔ)器塊中的起始地址。對(duì)隊(duì)列指針應(yīng)該設(shè)立越界檢驗(yàn)。另外一種隊(duì)列就是環(huán)形隊(duì)列。
管道(pipe)
:在分配給一個(gè)隊(duì)列的普通存儲(chǔ)器塊中,當(dāng)執(zhí)行插入操作一端的標(biāo)識(shí)與執(zhí)行刪除操作一端的目的標(biāo)識(shí)不同時(shí),通常稱這樣的隊(duì)列為管道。這個(gè)隊(duì)列中有兩個(gè)實(shí)體以某種方式相連。例如,一個(gè)實(shí)體用來(lái)向隊(duì)列中寫(xiě)(插入)元素,另一個(gè)實(shí)體用來(lái)從隊(duì)列中讀(刪除)元素。一個(gè)管道通常連接兩個(gè)任務(wù)。注意:1.管道的數(shù)據(jù)傳輸有延遲。2.管道不適用于并發(fā)程序設(shè)計(jì)。
表(table):表是一個(gè)二維數(shù)組(矩陣),是分配了存儲(chǔ)器塊的一個(gè)重要數(shù)據(jù)集合。表總是有一個(gè)基指針。它指向表的第1列第1行的第1個(gè)元素。存在兩個(gè)索引,一個(gè)是列索引,一個(gè)是行索引。與數(shù)組相同,任何元素都可以通過(guò)三個(gè)地址(表基址、列索引和行索引)取回。當(dāng)用表中的數(shù)值代替指針的時(shí)候,指令中使用的數(shù)值稱為偏移(displacement)。偏移可以是一行或者一列。表的存放有按列存放或按行存放兩種。哈希表(hashtable):是一個(gè)鍵/值數(shù)據(jù)集合。哈希表的每一列都有一個(gè)鍵或者名字。相應(yīng)的數(shù)值或者對(duì)象在第2列。鍵可以存在于不連續(xù)的存儲(chǔ)器地址中。查表的過(guò)程就像創(chuàng)建散列。如果表的第1列作為鍵(指向數(shù)值的指針),第2列作為數(shù)值,我們稱這樣的表為查詢表。哈希表是一個(gè)分配了存儲(chǔ)器塊的數(shù)據(jù)集合,通常用作查詢表。正如索引標(biāo)識(shí)了數(shù)組元素一樣,一個(gè)哈希鍵也標(biāo)識(shí)了一個(gè)哈希元素。
鏈表(list):是一個(gè)具有多個(gè)存儲(chǔ)器塊的數(shù)據(jù)結(jié)構(gòu),每一個(gè)元素都有一個(gè)存儲(chǔ)器塊(物理地址不連續(xù),但邏輯地址連續(xù))。鏈表具有頂(頭)指針,指向鏈表開(kāi)始處的存儲(chǔ)器地址。存儲(chǔ)器中的每一個(gè)鏈表元素也保存了指向下一個(gè)元素的指針。最后一個(gè)元素不指向任何地方。鏈表用來(lái)保存存儲(chǔ)器中不連續(xù)存儲(chǔ)的對(duì)象。鏈表有單向鏈表和雙向鏈表之分。2.5.3存儲(chǔ)器映射右圖給出了系統(tǒng)中具有Princeton結(jié)構(gòu)時(shí)所需要的存儲(chǔ)器區(qū)域和具有Harvard結(jié)構(gòu)時(shí)所需要的存儲(chǔ)器區(qū)域。(1)在Princeton結(jié)構(gòu)中,程序中的向量和指針、變量、程序段和保存數(shù)據(jù)和堆棧的存儲(chǔ)器塊都同一物理存儲(chǔ)中但具有不同的地址。(2)在Harvard結(jié)構(gòu)中,程序段和保存數(shù)據(jù)和堆棧的存儲(chǔ)器塊具有獨(dú)立的地址空間??刂菩盘?hào)和讀寫(xiě)指令也是分開(kāi)的存儲(chǔ)器分配映射的示例
嵌入式系統(tǒng)示例(借貸卡)的存儲(chǔ)器映射需要一個(gè)2KB的存儲(chǔ)器。它還需要一個(gè)256字節(jié)的RAM,主要用于堆棧。還需要512字節(jié)的EEPROM,用來(lái)存儲(chǔ)貸方或者借方的余額,以及卡的前一次交易記錄。因此這個(gè)系統(tǒng)的存儲(chǔ)器定位器或者鏈接腳本程序可以如下定義存儲(chǔ)器映射。
1.Memory2.{ram:ORIGIN=0x10000,LENGTH=2563.eeprom:ORIGIN=0x20000,LENGTH=5124.rom:ORIGIN=0x00000,LENGTH=2K5.}嵌入式存儲(chǔ)器子系統(tǒng)的設(shè)計(jì)考慮盡量使用存儲(chǔ)密度大的存儲(chǔ)器芯片充分考慮嵌入式系統(tǒng)的功耗限制成本考慮,大多數(shù)嵌入式系統(tǒng)的存儲(chǔ)器容量與軟件的大小匹配。擴(kuò)展存儲(chǔ)器考慮片上有存儲(chǔ)器片上無(wú)存儲(chǔ)器考慮綜合成本(含電路板面積)嵌入式系統(tǒng)的存儲(chǔ)器子系統(tǒng)通常設(shè)計(jì)成模塊結(jié)構(gòu),包括ROM子系統(tǒng)、RAM子系統(tǒng)等,每個(gè)子系統(tǒng)占用一定的存儲(chǔ)空間。一體化設(shè)計(jì)與分離式設(shè)計(jì):嵌入式系統(tǒng)的存儲(chǔ)器通常與系統(tǒng)主板設(shè)計(jì)在一起,而不設(shè)計(jì)成所謂“內(nèi)存條”形式,原因是一方面嵌入式系統(tǒng)的內(nèi)存通常是固定大小的;另一方面,一體結(jié)構(gòu)可以提高系統(tǒng)的可靠性,因?yàn)榍度胧较到y(tǒng)通常工作在惡劣環(huán)境、移動(dòng)環(huán)境中。關(guān)于嵌入式處理器的中斷向量表,有兩種設(shè)計(jì)方案:一種方案是中斷向量或中斷處理程序的入口地址設(shè)置在ROM空間,一旦設(shè)置,運(yùn)行中不再更改,如大多數(shù)小規(guī)模的嵌入式處理器/控制器采取這種方式;另外,也可以把中斷向量設(shè)計(jì)在RAM空間。(2-1)一個(gè)3×3的矩陣與另外一個(gè)3×2的矩陣相乘。如果從一個(gè)寄存器到另外一個(gè)寄存器的數(shù)據(jù)傳送需要2ns,加法需要20ns,乘法需要50ns,執(zhí)行時(shí)間為多少?假設(shè)這些時(shí)間在具有MAC單元的DSP中是相同的,MAC將起到什么作用?(2-2)一個(gè)數(shù)組具有10個(gè)整數(shù),每個(gè)整數(shù)都是32位的。令每個(gè)整數(shù)等于其在數(shù)組中的索引乘以1024。令存儲(chǔ)器中的基址為0x4800。對(duì)于第0個(gè)、第4個(gè)、第9個(gè)元素,在(a)big-endian模式和(b)little-endian模式下將如何存儲(chǔ)?(2-3)我們可以假設(shè)嵌入式系統(tǒng)的存儲(chǔ)器也是一個(gè)設(shè)備。列出這樣說(shuō)的理由(提示:利用訪問(wèn)控制寄存器和虛擬文件和RAM磁盤(pán)設(shè)備的概念)。(2-4)現(xiàn)在高性能嵌入式系統(tǒng)或者使用RISC處理器,或者使用具有RISC核、代碼最優(yōu)化CISC指令集的處理器。為什么?(2-5)存儲(chǔ)器中的循環(huán)隊(duì)列具有100個(gè)字符,每個(gè)字符為32位。包括兩個(gè)隊(duì)列指針在內(nèi),總共需要多少存儲(chǔ)器空間?2.6直接存儲(chǔ)器訪問(wèn)DMAI/O設(shè)備需要將其他系統(tǒng)的數(shù)據(jù)傳送到系統(tǒng)的存儲(chǔ)器地址上。系統(tǒng)可能還需要將要傳送到其他系統(tǒng)的數(shù)據(jù)傳送到I/O設(shè)備上。當(dāng)多字節(jié)數(shù)據(jù)或者一個(gè)數(shù)據(jù)塊需要在兩個(gè)系統(tǒng)之間、在CPU不干預(yù)(除了傳送的開(kāi)始和結(jié)束之外)的情況下進(jìn)行傳送時(shí),需要直接存儲(chǔ)器訪問(wèn)(DirectMemoryAccess,DMA)。在DMA操作中三種模式:一次傳送一個(gè)字節(jié),然后放棄系統(tǒng)總線(主要用于測(cè)試和調(diào)試模式)一次進(jìn)行burst傳送,然后放棄系統(tǒng)總線。一次burst傳送可能是幾個(gè)KB。進(jìn)行批傳送,并在傳送完后放棄系統(tǒng)總線(一般在每次原子操作后,釋放一次總線控制權(quán),以讓其他總線控制器有機(jī)會(huì)可以占有總線)。
DMA傳送是在DMAC(DMA控制器)的協(xié)助下進(jìn)行的。由于DMAC只需要很少的處理器干預(yù),因而提高了I/O設(shè)備和系統(tǒng)存儲(chǔ)器之間的數(shù)據(jù)傳送效率。在傳送的過(guò)程中,系統(tǒng)地址和數(shù)據(jù)總線對(duì)于處理器來(lái)說(shuō)是不可用的,而對(duì)于與DMAC相連的IO設(shè)備是可用的(如計(jì)算機(jī)中,硬盤(pán)和系統(tǒng)存儲(chǔ)器之間的數(shù)據(jù)傳送使用的是DMAC通道)。除了處理器之外,其他的設(shè)備也可以通過(guò)DMA來(lái)獲得系統(tǒng)存儲(chǔ)器的使用權(quán)。DMAC可以為多個(gè)通道提供存儲(chǔ)器訪問(wèn)。對(duì)于每一個(gè)通道的編程,有單獨(dú)的寄存器組。在多通道DMAC的情況下,會(huì)有單獨(dú)的中斷信號(hào)。一個(gè)多通道DMAC提供來(lái)自系統(tǒng)存儲(chǔ)器和兩個(gè)(或者多個(gè)IO)設(shè)備的DMA操作。2.7接口技術(shù)2.3.3嵌入式系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)技術(shù)2.4嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程2.4.1需求分析階段2.4.2詳細(xì)設(shè)計(jì)階段2.4.3實(shí)現(xiàn)階段2.4.4測(cè)試階段需求分析系統(tǒng)測(cè)試系統(tǒng)實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)詳細(xì)設(shè)計(jì)嵌入式產(chǎn)品開(kāi)發(fā)過(guò)程2.4.1需求分析階段2.4.1.1分析用戶的需求2.4.1.2確定硬件軟件2.4.1.3檢查需求分析的結(jié)果2.4.1.4確定項(xiàng)目的約束條件2.4.1.5概要設(shè)計(jì)2.4.1.1分析用戶的需求1、分析用戶對(duì)產(chǎn)品的需求2、確認(rèn)需求3、羅列用戶的需求4、設(shè)計(jì)簡(jiǎn)單的需求表格5、需求的內(nèi)部一致性1、分析用戶對(duì)產(chǎn)品的需求用戶:一般用戶、公司內(nèi)部的市場(chǎng)部門等需求指標(biāo):功能價(jià)格系統(tǒng)的尺寸和重量功耗其他。。。2、確認(rèn)需求用戶的表達(dá)方式。。。系統(tǒng)設(shè)計(jì)者的表達(dá)方式。。。交互的一致性。。。3、羅列用戶的需求1/4(1)系統(tǒng)用于什么任務(wù)?(2)系統(tǒng)從用戶或其他源接收什么輸入?(3)系統(tǒng)從用戶或其他源輸出什么?(4)用戶想要如何同系統(tǒng)打交道?(5)系統(tǒng)的重量和體積如何?3、羅列用戶的需求2/4(6)系統(tǒng)連接何種外設(shè)?(7)系統(tǒng)是否需要運(yùn)行某些現(xiàn)存的軟件?(8)系統(tǒng)處理哪種類型的數(shù)據(jù)?(9)系統(tǒng)是否要與別的系統(tǒng)通訊?(10)系統(tǒng)是單機(jī)還是網(wǎng)絡(luò)系統(tǒng)?3、羅列用戶的需求3/4(11)系統(tǒng)的響應(yīng)時(shí)間是多少?(12)需要什么安全措施?(13)系統(tǒng)在什么樣的環(huán)境下運(yùn)行?(14)外部存儲(chǔ)媒介和內(nèi)存需要多大?(15)系統(tǒng)的可拆裝性,可靠性和牢固性的期望值是什么?3、羅列用戶的需求4/4(16)如何給系統(tǒng)供電?(17)系統(tǒng)如何向用戶通報(bào)故障?(18)是否需要任何手動(dòng)或機(jī)械代用裝置?(19)系統(tǒng)是否將具有遠(yuǎn)程診斷或更正問(wèn)題的功能?(20)其他問(wèn)題4、簡(jiǎn)單的需求表格名稱目的輸入輸出功能性能生產(chǎn)成本功耗物理尺寸和重量5、需求的內(nèi)部一致性(注)在寫(xiě)完需求以后,對(duì)它們的內(nèi)部一致性進(jìn)行檢查:是否忘記了給某個(gè)功能指定輸入或輸出?是否考慮了系統(tǒng)運(yùn)行的所有方式?是否有一些不切實(shí)際的要求?系統(tǒng)是否可以實(shí)現(xiàn)?2.4.1.2確定硬件軟件1、處理器選型2、總線的吞吐量3、操作系統(tǒng)4、編程語(yǔ)言5、第三方軟件或庫(kù)函數(shù)6、第三方的硬件:開(kāi)發(fā)板、評(píng)估板、OEM板7、其他。。。2.4.1.3對(duì)需求的結(jié)果進(jìn)行檢查原因需求分析階段可能會(huì)發(fā)生錯(cuò)誤-走彎路目的資料的全面性、工作的細(xì)致性方法和內(nèi)容干擾的信息(多余)漏掉的信息(缺少)超前的信息(一些需要在設(shè)計(jì)階段才提出的信息)矛盾(相互制約)模棱兩可無(wú)法實(shí)現(xiàn)2.4.1.4確定項(xiàng)目的約束條件約束條件:屬于項(xiàng)目實(shí)施過(guò)程中的不利因素,指的是項(xiàng)目實(shí)施過(guò)程中限制項(xiàng)目按時(shí)圓滿完成的內(nèi)部和外部因素。約束條件?是否要滿足項(xiàng)目的階段性或竣工的工期限制?項(xiàng)目的部分或全體是否限制在一個(gè)固定的預(yù)算內(nèi)?分派到該項(xiàng)目的最大人數(shù)是多少?每個(gè)人員每周在此項(xiàng)目上能工作多少小時(shí)?員工的技術(shù)知識(shí)和經(jīng)驗(yàn)是否足夠?2.4.1.4確定項(xiàng)目的約束條件約束條件2/2員工對(duì)要解決的問(wèn)題是否熟悉?員工和關(guān)鍵的人才地處何處?你是否必須要采用某種硬件?你是否必須要采用某種工具軟件?約束(限制)條件的考慮(注)約束隨時(shí)都可能出現(xiàn)約束影響所選擇的方法約束會(huì)滋長(zhǎng)新的約束太多的約束將使進(jìn)行中的項(xiàng)目成為不可能2.4.1.5概要設(shè)計(jì)1、概要設(shè)計(jì)-初步設(shè)計(jì)2、硬件設(shè)計(jì)功能設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)物理設(shè)計(jì)3、軟件設(shè)計(jì)功能分析與設(shè)計(jì)軟件模塊劃分模塊開(kāi)發(fā)與實(shí)現(xiàn)2.4.2詳細(xì)設(shè)計(jì)階段審查需求分析資料…體系結(jié)構(gòu)/整體設(shè)計(jì)…硬件與軟件劃分…硬件與軟件的設(shè)計(jì)次序…硬件設(shè)計(jì)…軟件設(shè)計(jì)…檢查設(shè)計(jì)…2.4.2.1詳細(xì)設(shè)計(jì)階段-審查分析資料審查分析資料(來(lái)自需求分析階段)。。。審查約束條件(來(lái)自需求分析階段)。。。2.4.2.2詳細(xì)設(shè)計(jì)階段-體系結(jié)構(gòu)設(shè)計(jì)描述系統(tǒng)的功能如何實(shí)現(xiàn)是體系結(jié)構(gòu)設(shè)計(jì)的目的。決定因素系統(tǒng)是硬實(shí)時(shí)系統(tǒng)還是軟實(shí)時(shí)系統(tǒng)操作系統(tǒng)是否需要嵌入物理系統(tǒng)的成本、尺寸和耗電量是否是產(chǎn)品成功的關(guān)鍵因素選擇處理器和相關(guān)硬件其他2.4.2.3詳細(xì)設(shè)計(jì)階段-硬件與軟件劃分決定哪些用硬件實(shí)現(xiàn),哪些用軟件實(shí)現(xiàn)?例如:浮點(diǎn)運(yùn)算網(wǎng)絡(luò)通信控制器實(shí)現(xiàn)的功能軟調(diào)制解調(diào)器/硬調(diào)制解調(diào)器軟件壓縮解壓/硬件壓縮解壓圖像2.4.2.4詳細(xì)設(shè)計(jì)階段-硬件與軟件設(shè)計(jì)次序方案先設(shè)計(jì)硬件先設(shè)計(jì)軟件軟硬件同時(shí)設(shè)計(jì)根據(jù)項(xiàng)目的情況自由選擇2.4.2.5詳細(xì)設(shè)計(jì)階段-硬件設(shè)計(jì)設(shè)計(jì)硬件子系統(tǒng):top-down方法分成模塊設(shè)計(jì)框圖例:CPU子系統(tǒng)、存儲(chǔ)器子系統(tǒng)等定義硬件接口I/O端口硬件寄存器共享內(nèi)存硬件中斷存儲(chǔ)器空間分配處理器的運(yùn)行速度2.4.2.6詳細(xì)設(shè)計(jì)階段-軟件設(shè)計(jì)設(shè)計(jì)軟件子系統(tǒng)總體設(shè)計(jì)、模塊設(shè)計(jì)定義軟件接口 模塊接口、函數(shù)接口2.4.2.7詳細(xì)設(shè)計(jì)階段-檢查設(shè)計(jì)小項(xiàng)目自己審查設(shè)計(jì)文檔中等項(xiàng)目拿給同事朋友并向他們解釋你的設(shè)計(jì)大型項(xiàng)目-審查會(huì)設(shè)計(jì)者應(yīng)作一個(gè)更正式的報(bào)告。由于這是一個(gè)設(shè)計(jì)審查會(huì),召集一群人,主要由工程師組成,并盡可能包括一些對(duì)項(xiàng)目有不同看法角度的成員,如做市場(chǎng)的人員、最終用戶2.4.2.8詳細(xì)設(shè)計(jì)階段-設(shè)計(jì)自動(dòng)化系統(tǒng)設(shè)計(jì)階段很重要,系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)時(shí)間之比1:2系統(tǒng)的設(shè)計(jì)需要軟件、硬件的綜合知識(shí)容易出錯(cuò)-使用自動(dòng)化工具2.4.2.10詳細(xì)設(shè)計(jì)階段-硬件平臺(tái)簡(jiǎn)介要求最好-多種評(píng)估方法多個(gè)方案,選擇最優(yōu)嵌入式系統(tǒng)硬件平臺(tái)多樣性,例如:有ARM系列(目前有幾十種基于ARM內(nèi)核的處理器被使用)、MotorolaPowerPC系列、Coldfire系列、M.core系列等、DragonBall系列,NEC公司的VR系列,Hitachi公司SH3,SH4系列等等其它2.4.3實(shí)現(xiàn)階段1、選擇開(kāi)發(fā)平臺(tái)。。。硬件平臺(tái)、嵌入式操作系統(tǒng)、開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)工具2、軟件開(kāi)發(fā)過(guò)程。。。3、開(kāi)發(fā)階段的文檔。。。2.4.3.1選擇開(kāi)發(fā)平臺(tái)
1、科研開(kāi)發(fā)階段——
選擇硬件平臺(tái)的考慮1/2處理器的處理速度項(xiàng)目的開(kāi)發(fā)人員對(duì)選擇的處理器是否熟悉處理器上的I/O功能是否滿足系統(tǒng)的要求處理器的軟件支持工具處理器的調(diào)試支持處理器制造商的支持可信度如何1、科研開(kāi)發(fā)階段——
選擇硬件部件的考慮2/2產(chǎn)品的需求量例如:PC104和定制開(kāi)發(fā)目標(biāo)市場(chǎng)的機(jī)會(huì)如何購(gòu)買和自制軟件對(duì)硬件的依賴程度評(píng)估板的使用2、科研開(kāi)發(fā)階段——
選擇操作系統(tǒng)嵌入式操作系統(tǒng)的功能,支持部件配套開(kāi)發(fā)工具的支持操作系統(tǒng)的移植難度操作系統(tǒng)是否包括特殊的調(diào)試支持操作系統(tǒng)的內(nèi)存要求如何項(xiàng)目程序員是否熟悉此操作系統(tǒng),主要指此操作系統(tǒng)通常提供的API操作系統(tǒng)是否包括所有需要的部件操作系統(tǒng)是否有目標(biāo)硬件的驅(qū)動(dòng)程序操作系統(tǒng)是否有可伸縮性3、科研開(kāi)發(fā)階段——
選擇編程語(yǔ)言考慮軟件開(kāi)發(fā)人員最熟練的語(yǔ)言是哪種語(yǔ)言使用的廣泛程度語(yǔ)言的性能如何例如:C語(yǔ)言、匯編語(yǔ)言、Java,C++等2.4.3.2科研開(kāi)發(fā)階段-軟件開(kāi)發(fā)嵌入式系統(tǒng)的軟件開(kāi)發(fā)過(guò)程準(zhǔn)備交叉開(kāi)發(fā)環(huán)境編譯和連接重定位和下載調(diào)試在主機(jī)系統(tǒng)上驗(yàn)證軟件在目標(biāo)系統(tǒng)上驗(yàn)證軟件代碼優(yōu)化-續(xù)…代碼優(yōu)化1/2清除程序中的無(wú)用代碼清除為調(diào)試所引入的代碼避免使用大型的庫(kù)例程避免使用遞歸式例程,因?yàn)樗鼈冃枰艽蟮亩褩1苊飧↑c(diǎn)操作代碼優(yōu)化2/2優(yōu)化算法——乘法可以通過(guò)左移操作來(lái)完成將訪問(wèn)最頻繁的變量聲明為寄存器變量或自動(dòng)變量只要可能,盡量使用無(wú)符號(hào)數(shù)據(jù)類型如果某個(gè)函數(shù)或例程消耗大量的計(jì)算時(shí)間,那么就將該函數(shù)或例程用匯編語(yǔ)言來(lái)編碼充分利用編譯器提供的優(yōu)化2.4.3.3科研開(kāi)發(fā)階段——文檔技術(shù)文件目錄技術(shù)任務(wù)書(shū)技術(shù)方案報(bào)告產(chǎn)品標(biāo)準(zhǔn)(草案)技術(shù)條件(進(jìn)廠)可靠性技術(shù)設(shè)計(jì)技術(shù)設(shè)計(jì)說(shuō)明書(shū)形式試驗(yàn)報(bào)告試制報(bào)告文檔1-技術(shù)文件目錄描述了所有的技術(shù)文件清單文檔2-技術(shù)任務(wù)書(shū)任務(wù)來(lái)源、設(shè)計(jì)依據(jù)產(chǎn)品用途及使用范圍主要工作原理及硬軟件分工基本參數(shù)、主要功能、技術(shù)指標(biāo)總部局、主要部件概述標(biāo)準(zhǔn)化綜合要求提出國(guó)內(nèi)外同類產(chǎn)品水平比較關(guān)鍵技術(shù)預(yù)測(cè)開(kāi)發(fā)周期估算文檔3-技術(shù)方案報(bào)告描述了科研開(kāi)發(fā)的技術(shù)方案與實(shí)際的項(xiàng)目有關(guān)文檔4-產(chǎn)品標(biāo)準(zhǔn)產(chǎn)品范圍引用標(biāo)準(zhǔn)基本參數(shù)及形式技術(shù)要求(功能、性能、影響量)試驗(yàn)方法(采用國(guó)際標(biāo)準(zhǔn))檢驗(yàn)規(guī)則文檔5-技術(shù)條件(進(jìn)廠)使用范圍技術(shù)要求試驗(yàn)方法文檔6-技術(shù)設(shè)計(jì)說(shuō)明書(shū)-硬件總體方案產(chǎn)品結(jié)構(gòu)產(chǎn)品性能電路工作原理分析、技巧、結(jié)構(gòu)工藝合理性主要故障鑒別方法文檔6-技術(shù)設(shè)計(jì)說(shuō)明書(shū)-軟件總體方案及體系結(jié)構(gòu)任務(wù)調(diào)度原理或總控流程說(shuō)明各種功能的實(shí)現(xiàn)方法、處理流程或工作原理數(shù)據(jù)庫(kù)說(shuō)明、邏輯結(jié)構(gòu)數(shù)據(jù)格式說(shuō)明內(nèi)存分配方案各部分接口設(shè)計(jì)通用子程序和標(biāo)準(zhǔn)子程序設(shè)計(jì)文檔7-形式試驗(yàn)報(bào)告文檔8-試制總結(jié)1.技術(shù)水平 國(guó)際、國(guó)內(nèi)、先進(jìn)?2.試制過(guò)程中出現(xiàn)的問(wèn)題的解決措施3.對(duì)沒(méi)有達(dá)到技術(shù)任務(wù)書(shū)要求進(jìn)行說(shuō)明2.4.4測(cè)試階段1、測(cè)試的原因2、何時(shí)測(cè)試3、測(cè)試內(nèi)容4、何時(shí)停止測(cè)試5、選擇測(cè)試用例6、實(shí)時(shí)失敗模式7、評(píng)估測(cè)試的覆蓋率8、性能測(cè)試9、維護(hù)和測(cè)試2.4.4.1測(cè)試階段-測(cè)試的原因開(kāi)發(fā)過(guò)程中已經(jīng)開(kāi)始測(cè)試了——調(diào)試原因:在軟件中找到錯(cuò)誤(在這方面測(cè)試是惟一的方法)減少用戶與公司的風(fēng)險(xiǎn)節(jié)約開(kāi)發(fā)與維護(hù)成本提高系統(tǒng)的性能2.4.4.2測(cè)試階段-何時(shí)測(cè)試分布于開(kāi)發(fā)的每個(gè)階段——debug單元測(cè)試-小模塊測(cè)試/調(diào)試回歸測(cè)試只測(cè)試一遍是不夠的。每次修改后都應(yīng)當(dāng)重新測(cè)試以確認(rèn)這些修改會(huì)不會(huì)無(wú)意中影響一些看似與之無(wú)關(guān)的行為,這被稱作回歸測(cè)試。使用測(cè)試腳本2.4.4.3測(cè)試階段-測(cè)試內(nèi)容/方法功能測(cè)試-黑盒測(cè)試覆蓋測(cè)試-白盒測(cè)試灰盒測(cè)試黑盒測(cè)試被測(cè)對(duì)象測(cè)試輸入測(cè)試輸出理想測(cè)試情況:遍歷所有輸入實(shí)際測(cè)試情況:簡(jiǎn)單枚舉輸入白盒測(cè)試-1/2if(condition1){action1();action2();}else{action3();}白盒測(cè)試-2/2switch(condition){casecondition1:action1();break; casecontion2: action2(); break; default: action3(); break;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版美容美發(fā)行業(yè)員工社會(huì)保險(xiǎn)合同4篇
- 2025年度個(gè)人品牌重型機(jī)械抵押借款合同范本4篇
- 2025版企業(yè)新媒體營(yíng)銷策略執(zhí)行合同3篇
- 2025年度美容院美容院店務(wù)管理與顧客服務(wù)合同4篇
- 2025年香港勞務(wù)派遣與人力資源共享服務(wù)合同3篇
- 基于物聯(lián)網(wǎng)的智能農(nóng)業(yè)管理系統(tǒng)2025年度委托開(kāi)發(fā)合同
- 2025版停車場(chǎng)設(shè)施設(shè)備更新與改造合同范本2篇
- 2025年度餐飲業(yè)消防安全責(zé)任合同書(shū)3篇
- 退房時(shí)2025年度房屋損害賠償協(xié)議3篇
- 2024版快遞物流服務(wù)合同書(shū)
- 化學(xué)-河南省TOP二十名校2025屆高三調(diào)研考試(三)試題和答案
- 智慧農(nóng)貿(mào)批發(fā)市場(chǎng)平臺(tái)規(guī)劃建設(shè)方案
- 林下野雞養(yǎng)殖建設(shè)項(xiàng)目可行性研究報(bào)告
- 2023年水利部黃河水利委員會(huì)招聘考試真題
- Python編程基礎(chǔ)(項(xiàng)目式微課版)教案22
- 建筑施工中常見(jiàn)的安全問(wèn)題及解決方法
- 近五年重慶中考物理試題及答案2023
- 乳腺導(dǎo)管原位癌
- 冷庫(kù)管道應(yīng)急預(yù)案
- 《學(xué)習(xí)教育重要論述》考試復(fù)習(xí)題庫(kù)(共250余題)
- 網(wǎng)易云音樂(lè)用戶情感畫(huà)像研究
評(píng)論
0/150
提交評(píng)論