日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

嵌入式

 噯伱^_^誒^_^ 2012-10-21

計(jì)算機(jī)硬件系統(tǒng)主要運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出設(shè)備組成。

·諾依曼結(jié)構(gòu)

馮諾依曼結(jié)構(gòu)采用單存儲(chǔ)空間,程序指令和數(shù)據(jù)公用一個(gè)存儲(chǔ)空間,使用單一的數(shù)據(jù)和地址總線(xiàn),取指令和取操作數(shù)都是通過(guò)一條總線(xiàn)分時(shí)進(jìn)行的。并且當(dāng)進(jìn)行高速運(yùn)算是,會(huì)造成數(shù)據(jù)傳輸通道的瓶頸現(xiàn)象,其工作速度較慢。

哈佛結(jié)構(gòu)是一種將程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi)的存儲(chǔ)器結(jié)構(gòu)。中央處理器首先到程序指令存儲(chǔ)器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)存儲(chǔ)器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi),可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度,從而提高了執(zhí)行速度,提高了數(shù)據(jù)的吞吐率

DRAM:動(dòng)態(tài)隨機(jī)讀寫(xiě)存儲(chǔ)器,SRAM:靜態(tài)隨機(jī)讀寫(xiě)存儲(chǔ)器。SRAM的特點(diǎn)是工作速度快,只要電源不撤除,寫(xiě)入SRAM的信息就不會(huì)消失,不需要刷新電路,同時(shí)在讀出時(shí)不破壞原來(lái)存放的信息,一經(jīng)寫(xiě)入可多次讀出,但集成度較低,功耗較大。DRAM集成度較高,功耗較低,但缺點(diǎn)是保存在DRAM中的信息隨著電容器的漏電而會(huì)逐漸消失,一般信息保存時(shí)間為2ms左右。為了保存DRAM中的信息,必須每隔12ms對(duì)其刷新一次。因此,采用 DRAM的計(jì)算機(jī)必須配置動(dòng)態(tài)刷新電路,防止信息丟失

RISC:精簡(jiǎn)指令集,CISC復(fù)雜指令集

CISC優(yōu)點(diǎn):指令越多功能越強(qiáng),強(qiáng)調(diào)代碼效率,容易和高級(jí)語(yǔ)言接軌??梢詫?duì)存儲(chǔ)器直接操作,實(shí)現(xiàn)從存儲(chǔ)器到存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)移,可加入DSP指令。
缺點(diǎn):指令太多不易記憶;CPU內(nèi)部結(jié)構(gòu)復(fù)雜造成頻率不高;指令執(zhí)行速度慢。
RISC
優(yōu)點(diǎn):指令少容易記憶,盡量將操作碼和操作數(shù)用1個(gè)16位數(shù)或32位數(shù)表示,指令整齊。CPU時(shí)鐘頻率可以做得很高,指令執(zhí)行速度快。
缺點(diǎn):同樣功能的程序,產(chǎn)生的代碼量比較大;不能對(duì)存儲(chǔ)器直接訪問(wèn),不能實(shí)現(xiàn)存儲(chǔ)器到存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)移。

ldrloader):讀取存儲(chǔ)器中的數(shù)據(jù)到寄存器   LDR R0[R1];將存儲(chǔ)器地址為R1的子數(shù)據(jù)讀入寄存器R0,strstore)將寄存器中的數(shù)據(jù)保存到存儲(chǔ)器中      STR R0,[R1];R0的數(shù)據(jù)保存到R1指定的地址中。

BootLoader在嵌入式操作系統(tǒng)中,BootLoader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行。可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。在嵌入式系統(tǒng)中,通常并沒(méi)有像BIOS那樣的固件程序(注,有的嵌入式CPU也會(huì)內(nèi)嵌一段短小的啟動(dòng)程序),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來(lái)完成。

主流ARM處理器屬于32位。字對(duì)齊分配四個(gè)存儲(chǔ)空間

T支持高密度16位的Thumb指令集 ;       D支持片上調(diào)試;

M支持64位乘法;                        I支持EmbededICE觀察硬件;

從偶數(shù)地址開(kāi)始的連續(xù)2個(gè)字節(jié)構(gòu)成一個(gè)半字;

以能被4整除的地址開(kāi)始的連續(xù)4個(gè)字節(jié)構(gòu)成一個(gè)字;

Stach: 棧,一種數(shù)據(jù)結(jié)構(gòu),它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開(kāi)始彈出數(shù)據(jù)。

寄存器R13通常作為堆棧指針(SP),用于保存待使用的寄存器的內(nèi)容。

寄存器R14稱(chēng)為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功能:

§         當(dāng)使用BL指令調(diào)用子程序時(shí),返回地址將自動(dòng)存入R14中;

§         當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小的固定偏移量)。

寄存器R15稱(chēng)為程序計(jì)數(shù)器(PC),它指向正在取指的指令。

寄存器CPSR為當(dāng)前程序狀態(tài)寄存器,在異常模式中,另外一個(gè)寄存器程序狀態(tài)保存寄存器(SPSR可以被訪問(wèn)。每種異常都有自己的SPSR,在進(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過(guò)它恢復(fù)CPSR。

異常響應(yīng):

將異常處理程序的返回地址(加固定的偏移量)保存到相應(yīng)異常模式下的LR

CPSR的當(dāng)前值保存到相應(yīng)異常模式下的SPSR;

設(shè)置CPSR為相應(yīng)的異常模式;

設(shè)置PC為相應(yīng)異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行。

異常返回:

返回到發(fā)生異常中斷的指令的下一條指令處執(zhí)行,即就是說(shuō)將LR中的值減去偏移量后移入PC;

SPSR的值復(fù)制回CPSR

清零在入口處置位的中斷禁止標(biāo)志。

地址

異常

進(jìn)入時(shí)的模式

進(jìn)入時(shí)I的狀態(tài)

進(jìn)入時(shí)F的狀態(tài)

0x00000000

復(fù)位

管理

禁止

禁止

0x00000004

未定義指令

未定義

I

F

0x00000008

軟件中斷異常

管理

禁止

F

0x0000000C

中止(預(yù)取)

中止

I

F

0x00000010

中止(數(shù)據(jù))

中止

I

F

0x00000014

保留

保留

0x00000018

IRQ

中斷

禁止

F

0x0000001C

FIQ

快速中斷

禁止

禁止

異常或入口

返回指令

返回地址

 

SWI

MOVS PC,R14_svc

R14

 

未定義的指令

MOVS PC,R14_und

R14

 

預(yù)取中止

SUBS  PC,R14_abt,#4

R144

 

快速中斷

SUBS  PC,R14_fiq,#4

R144

 

中斷

SUBS  PC,R14_irq,#4

R144

 

數(shù)據(jù)中止

SUBS  PC,R14_abt,#8

R148

 

復(fù)位

無(wú)

 

拋出異常之后,自動(dòng)觸發(fā)中斷。中斷的處理代碼會(huì)修復(fù)異常,然后返回

固件(Firmware)就是寫(xiě)入EROMEPROM(可編程只讀存儲(chǔ)器)中的程序,通俗的理解就是固化的軟件,  固件擔(dān)任著一個(gè)系統(tǒng)最基礎(chǔ)最底層工作的軟件。

ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶(hù)模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。

ARM處理器內(nèi)部共有37個(gè)用戶(hù)可訪問(wèn)的寄存器,分別為31個(gè)通用32位寄存器和6個(gè)狀態(tài)寄存器。

程序狀態(tài)寄存器   CPSR(當(dāng)前程序狀態(tài)寄存器)在任何處理器模式下被訪問(wèn)。它包含了條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志以及其他的一些控制和狀態(tài)位。每一種處理器模式下都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器,稱(chēng)為SPSR(備份程序狀態(tài)寄存器)。當(dāng)特定的異常中斷發(fā)生時(shí),這個(gè)寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容。在異常中斷退出時(shí),可以用SPSR來(lái)恢復(fù)CPSR。由于用戶(hù)模式和系統(tǒng)模式不是異?! ≈袛嗄J剑运麤](méi)有SPSR。當(dāng)用戶(hù)在用戶(hù)模式或系統(tǒng)模式訪問(wèn)SPSR,將產(chǎn)生不可預(yù)知的后果?!?/span>

§         小端存儲(chǔ)器系統(tǒng): 在小端格式中,數(shù)據(jù)的高字節(jié)存放在高地址中。

§         大端存儲(chǔ)器系統(tǒng): 在大端格式中,數(shù)據(jù)的高字節(jié)存放在低地址中。

并行口與串行口的區(qū)別是交換信息的方式不同,并行口能同時(shí)通過(guò)8條數(shù)據(jù)線(xiàn)傳輸信息,一次傳輸一個(gè)字節(jié);而串行口只能用1條線(xiàn)傳輸一位數(shù)據(jù),每次傳輸一個(gè)字節(jié)的一位。并行口由于同時(shí)傳輸更多的信息,速度明顯高于串行口,但串行口可以用于比并行口更遠(yuǎn)距離的數(shù)據(jù)傳輸。

指令:LSL邏輯左移(低位空出的位補(bǔ)0   LSR邏輯右移(高位空出的位補(bǔ)0

ASR算術(shù)右移(保持符號(hào)位不變)          ROR循環(huán)右移

RRX帶擴(kuò)展的循環(huán)右移(右移1位,高位空出的位用原C標(biāo)志值填充)

ADD:加法運(yùn)算ADD  R3,R1, #0x08    ;R3=R1+8

ADC:帶進(jìn)位加法運(yùn)算SUB:減法運(yùn)算RSB:逆向減法運(yùn)算

SBC:帶進(jìn)位減法運(yùn)算RSC:帶進(jìn)位逆向減法運(yùn)算

AND:邏輯運(yùn)算AND R3,R1, #0xFF    ;R3=R1 & 0x000000FF

ORR :邏輯運(yùn)算ORR     R3,R1, R2    ;R3=R1|R2

EOR:邏輯異或運(yùn)算EOR    R3,R1, R2,LSL 0x03   ;R3=R1 ^ (R2 ×8)

BIC:位清除運(yùn)算CMP     R3,R1     ;R3R1并影響標(biāo)志位

MUL  R3,R2,R1     ; R3=R2×R1MLA R3,R2,R1,R0     ; R3=R2×R1 + R0

B指令為簡(jiǎn)單的跳轉(zhuǎn)指令,不附帶其它功能。跳轉(zhuǎn)范圍限制在當(dāng)前指令的±32M字節(jié)地址內(nèi)

帶鏈接的分支指令——BL指令除了具有跳轉(zhuǎn)功能,還能在跳轉(zhuǎn)之前將下一條指令的地址拷貝到R14(LR) 鏈接寄存器中,它適用于子程序調(diào)用。跳轉(zhuǎn)范圍限制在當(dāng)前指令的±32M字節(jié)地址內(nèi)。

帶狀態(tài)切換的分支指令——BX指令除了具有跳轉(zhuǎn)功能,還能在跳轉(zhuǎn)的同時(shí)切換處理器狀態(tài)。其跳轉(zhuǎn)范圍不受限制。

軟件中斷產(chǎn)生指令:SWI

 

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多