版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)教案武漢創(chuàng)維特信息技術(shù)11/13/2022疥判烤忠貝雷肺材鋅舞外恒廓拭業(yè)尿丟簽疫束婪揪墟輿婉漱鉗哲蓬臣?jí)凼钗錆h創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型提綱13245ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM處理器的存放器組織ARM處理器的工作模式ARM微處理器系列67第二章ARM體系結(jié)構(gòu)及編程模型ARM異常處理ARM處理器的工作狀態(tài)ARM處理器的存儲(chǔ)器格式埔躁鉀救柜耍吩風(fēng)升嘲悔樣菏摻嶼款證坊靡郝廁連嶄走拱記療謗她聶磐派武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型2ARM-AdvancedRISCMachines
ARM〔AdvancedRISCMachines〕,既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)1991年ARM公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。買帛決韓彎竄蜂注諒射命恐狽茄澳閻逮掃鳳嚼喲算荒吸淄簾揚(yáng)中孿但肩綽武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型3ARM公司的Chipless模式世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)置其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,參加適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場(chǎng)。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。我國(guó)的中興集成電路、大唐電訊、中芯國(guó)際和上海華虹,以及國(guó)外的一些公司如德州儀器、意法半導(dǎo)體、Philips、Intel、Samsung等都推出了自己設(shè)計(jì)的基于ARM核的處理器。疊禱群滇轎磨閹琶魁原刮臍狄鏟閘猙閏峨蚊服貍慰斃饞端湊儒愚撩旦覆途武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型4ARM微處理器的應(yīng)用領(lǐng)域
工業(yè)控制領(lǐng)域:作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場(chǎng)的大局部市場(chǎng)份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM微控制器的低功耗、高性價(jià)比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn)。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)到目前為止,ARM微處理器及技術(shù)的應(yīng)用已經(jīng)廣泛深入到國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域佑懦櫥洶熬謝會(huì)恨蜜判蟄禿碑肉潭隘忱戌顏應(yīng)孫兌班戈竿柔崗婪泄跌棘躁武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型5ARM微處理器的應(yīng)用領(lǐng)域ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。此外,ARM在語(yǔ)音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對(duì)DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。消費(fèi)類電子產(chǎn)品:ARM技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。成像和平安產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大局部采用ARM技術(shù)。中的32位SIM智能卡也采用了ARM技術(shù)?!V氟乙續(xù)屯歇么好灶枚壤瘴宰兆利橢閱沽霉遭梳宙峽嗚瓣跋舌耳豌奔嵌拈武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型6ARM微處理器的特點(diǎn)—低功耗、低本錢、高性能采用RISC指令集ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)低功耗、低本錢、高性能使用大量的存放器ARM/THUMB指令支持三/五級(jí)流水線尸尾樊廉拖拓失碟酞舞鄂匣駒溝矽響躍服門襟翱茂斗懈續(xù)殖殲撮酵演遠(yuǎn)倦武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型7ARM微處理器的特點(diǎn)—采用RISC體系結(jié)構(gòu)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)采用RISC架構(gòu)的ARM處理器一般具有如下特點(diǎn):固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單、基本尋址方式有2~3種;使用單周期指令,便于流水線操作執(zhí)行;大量使用存放器,數(shù)據(jù)處理指令只對(duì)存放器進(jìn)行操作,只有加載/存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率。透藩囑愚躁器看素新擒展嶄訃汝杠詞恫霸顛醛勇邱錘埔八玫嬸淹鑒余嘩梁武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型8ARM微處理器的特點(diǎn)—大量使用存放器ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM處理器共有37個(gè)存放器,被分為假設(shè)干個(gè)組,這些存放器包括:31個(gè)通用存放器,包括程序計(jì)數(shù)器〔PC指針〕,均為32位的存放器;6個(gè)狀態(tài)存放器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位。漫郎釩屠叮坤室禿鴿歌漁殘撐攢熱數(shù)繪鐳瀾忱澀渣肆娥艙酉凰卿憎眷邯嚏武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型9ARM微處理器的特點(diǎn)—高效的指令系統(tǒng)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM微處理器支持兩種指令集:ARM指令集和Thumb指令集。ARM指令為32位的長(zhǎng)度,Thumb指令為16位長(zhǎng)度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。鎖事迎呂昔晤儡船忘鯉仲酶啡剩漆株肘露撬窟密郎約鋸俱贈(zèng)杏些燎端律唯武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型10ARM微處理器的特點(diǎn)—其他技術(shù)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:所有的指令都可根據(jù)前面的執(zhí)行結(jié)果斷定是否被執(zhí)行,從而提高指令的執(zhí)行效率??捎眉虞d/存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率??稍谝粭l數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理。在循環(huán)處理中使用地址的自動(dòng)增減來(lái)提高運(yùn)行效率。雛刊郎列楔巒饅筏精慢設(shè)君零珍驚宙洗皿檄眩聳肩勁乖晃舌赦靠喬蹄緬躲武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型11ARM微處理器系列
ARM微處理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、ARM9E和ARM10為4個(gè)通用處理器系列,每一個(gè)系列提供一套相對(duì)獨(dú)特的性能來(lái)滿足不同應(yīng)用領(lǐng)域的需求。SecurCore系列專門為平安要求較高的應(yīng)用而設(shè)計(jì)。拯憶膚偶晴糾伐錦顫署希秩衣習(xí)擊伐依鎳壘耐囤澗段云哺啃西薦八楊茨班武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型12ARM7微處理器系列
ARM7系列是為低功耗的32位RISC處理器,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7系列有如下特點(diǎn):具有嵌入式ICE-RT邏輯,調(diào)試開(kāi)發(fā)方便;極低的功耗,適合對(duì)功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu);代碼密度高,并兼容16位的Thumb指令集;對(duì)操作系統(tǒng)的支持廣泛,如WindowsCE、Linux、PalmOS等;指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級(jí)換代;主頻最高可達(dá)130M,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。ARM微處理器系列憑蔑牌們魯稅唆號(hào)聊長(zhǎng)賠基必渣嗅娟揉鳥(niǎo)哀疫淆敝鞏弓匪懼畸雕庇喧瞇乳武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型13ARM7微處理器系列ARM微處理器系列主要應(yīng)用領(lǐng)域:工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動(dòng)等多種多媒體和嵌入式應(yīng)用。ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的根本含義為:T:支持16為壓縮指令集Thumb;D:支持片上Debug;M:內(nèi)嵌硬件乘法器〔Multiplier〕I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn);仰啤酒磕娜涸攝縮娟瘟架冪倪刑忽泛競(jìng)屠嵌戊猖蛤藤咐仰氫凸魯麗勉趨躥武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型14ARM9微處理器系列
ARM微處理器系列ARM9系列微處理器在高性能和低功耗特性方面提供最正確的表現(xiàn)。具有以下特點(diǎn):5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。哈紡置輯包瘓鱗征巒嚷嘉弄性臟挺府迂蠕溜就撬髓賺塢終含肩昏摟湃螺葵武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型15ARM9微處理器系列ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)備、儀器儀表、平安系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。ARM微處理器系列ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場(chǎng)合。萎琉椎泌鈔誤詳?shù)嵯瑸┬┭瓝旌聶C(jī)苞蹭纂眺湘草隘著粥振衫沾多技女汁疆武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型16ARM9E微處理器系列
ARM微處理器系列ARM9E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP9浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的處理能力。主頻最高可達(dá)300M。奠楔霞最見(jiàn)窗冊(cè)掉迂郎堅(jiān)榜憑徘巨矽儉輩囚愚詣包楚熔締鼓條惺消耐巫眠武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型17ARM9E微處理器系列ARM9E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。ARM微處理器系列ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型,以適用于不同的應(yīng)用場(chǎng)合。繁殉豎虎惕浦圣沃迢哄榔溉滄儡廄蛹毫析登殖徑豎礁捂幅務(wù)奸紅稚膽妻杉武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型18ARM10E微處理器系列
ARM微處理器系列ARM10E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。6級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP10浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的處理能力主頻最高可達(dá)400M。內(nèi)嵌并行讀/寫操作部件。液伎厚兩乍靜凸躊羞潦勝滋滁浙霍赦悄廠賬呂奶苑困測(cè)糾呼賦深豁菇藻唉武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型19ARM10E微處理器系列ARM10E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。ARM微處理器系列ARM10E系列微處理器包含ARM1020E、ARM1022E和ARM1026EJ-S三種類型,以適用于不同的應(yīng)用場(chǎng)合。拎鍬丁衣帆粘墊嘗癰菌如悶凸檄赴貍琉墟娩牧閩霜菏嗽投肋晶拎凡撒逛擔(dān)武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型20SecurCore微處理器系列
ARM微處理器系列SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)各種主要特點(diǎn)外,還在系統(tǒng)平安方面具有如下的特點(diǎn):帶有靈活的保護(hù)單元,確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的平安。采用軟內(nèi)核技術(shù),防止外部對(duì)其進(jìn)行掃描探測(cè)。可集成用戶自己的平安特性和其他協(xié)處理器。睡位樟瘧廷騾材到貧例午爛拉偶躥磋梧闊是擾說(shuō)章孺軟部浸及葫推與蟹倡武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型21SecurCore微處理器系列SecurCore系列微處理器主要應(yīng)用于一些對(duì)平安性要求較高的應(yīng)用產(chǎn)品及應(yīng)用系統(tǒng),如電子商務(wù)、電子政務(wù)、電子銀行業(yè)務(wù)、網(wǎng)絡(luò)和認(rèn)證系統(tǒng)等領(lǐng)域。ARM微處理器系列SecurCore系列微處理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四種類型,以適用于不同的應(yīng)用場(chǎng)合。愉張癥勸娶輝笑蕪膩龜含臨撈凈蓬撬殿賣蟹絢瞬拷毅瘁傻戶凹驗(yàn)煥中閃申武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型22StrongARM微處理器系列
ARM微處理器系列IntelStrongARM處理器是便攜式通訊產(chǎn)品和消費(fèi)類電子產(chǎn)品的理想選擇,已成功應(yīng)用于多家公司的掌上電腦系列產(chǎn)品。IntelStrongARMSA-1100處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器。它融合了Intel公司的設(shè)計(jì)和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,采用在軟件上兼容ARMv4體系結(jié)構(gòu)、同時(shí)采用具有Intel技術(shù)優(yōu)點(diǎn)的體系結(jié)構(gòu)。溜俐求液映暢銅豌結(jié)刪叛嗎軸韌豪苛刨窯棘寵勁縫歌碑裙?fàn)柼抗骺召e耗爸武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型23Xscale處理器
ARM微處理器系列Xscale處理器是基于ARMv5TE體系結(jié)構(gòu)的解決方案,是一款全性能、高性價(jià)比、低功耗的處理器。它支持16位的Thumb指令和DSP指令集,已使用在數(shù)字移動(dòng)、個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場(chǎng)合。Xscale處理器是Intel目前主要推廣的一款A(yù)RM微處理器。墟女橫賴假設(shè)找捷傻侍搖渡啥菌淑潮謬擺巴隔喻淫卷褲擎皂軌寧棵塵暇鞭瓷武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型24ARM微處理器的工作狀態(tài)
ARM微處理器的工作狀態(tài)從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。葵膩砂祖曲兜籌肄訣鴉蔗茫篙況粗映續(xù)廊格寸刑剛巡還盧宅揚(yáng)勉夢(mèng)寧熄恕武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型25ARM與THUMBTHUMB指令是ARM指令的子集ARM微處理器的工作狀態(tài)可以相互調(diào)用,只要遵循一定的調(diào)用規(guī)那么Thumb指令與ARM指令的時(shí)間效率和空間效率關(guān)系為:存儲(chǔ)空間約為ARM代碼的60%~70%指令數(shù)比ARM代碼多約30%~40%存儲(chǔ)器為32位時(shí)ARM代碼比Thumb代碼快約40%存儲(chǔ)器為16位時(shí)Thumb比ARM代碼快約40~50%使用Thumb代碼,存儲(chǔ)器的功耗會(huì)降低約30%次涼潞潑拍薯韶以漂吳絡(luò)須壁肝稠擺滬扔縱土止模琴胚趟狗陋姑瘦格博哄武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型26狀態(tài)切換方法
ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,ARM微處理器的工作狀態(tài)在開(kāi)始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。村撕輛溝荷疾鄰惹屢莉錄穿詢荒拉霹回奢禁待谷砍坎尹轄公薊喉榮良膀挾武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型27進(jìn)入Thumb狀態(tài)當(dāng)操作數(shù)存放器的狀態(tài)位〔位0〕為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常〔如IRQ、FIQ、Undef、Abort、SWI等〕,那么異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。ARM微處理器的工作狀態(tài)救硒蛋姻梭佃血繡甫痞瘧祟?yuàn)Z氏占騁蠟裙嵌挑他腥堿禹篡譴呸覆往鮮妹制武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型28切換到ARM狀態(tài)當(dāng)操作數(shù)存放器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。ARM微處理器的工作狀態(tài)在處理器進(jìn)行異常處理時(shí),把PC指針?lè)湃氘惓DJ芥溄哟娣牌髦?,并從異常向量地址開(kāi)始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。胖嚨葷娶霄掏譚蛙爐舷耘儉窒九釜隙彼甕博惹雪武叭粘妊喪欄臘鶴辦慷銹武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型29處理器模式ARM微處理器的工作模式usr:ARM處理器正常的程序執(zhí)行狀態(tài)fiq:用于高速數(shù)據(jù)傳輸或通道處理irq:用于通用的中斷處理svc:操作系統(tǒng)使用的保護(hù)模式abt:用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)sys:運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)und:當(dāng)出現(xiàn)未定義指令終止時(shí)進(jìn)入該模式汗蘑霍肚荔輥唱伊佩抒扼飾衙協(xié)屆還曲報(bào)醇陡朝莆繡壟默其李潑趣輻玻遲武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型30用戶模式和特權(quán)模式ARM微處理器的工作模式除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式特權(quán)模式下,程序可以訪問(wèn)所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。特權(quán)模式中,除系統(tǒng)模式外,其他5種模式又稱為異常模式大多數(shù)的用戶程序運(yùn)行在用戶模式下,此時(shí),應(yīng)用程序不能夠訪問(wèn)一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序也不能直接進(jìn)行處理器模式的切換。用戶模式下,當(dāng)需要進(jìn)行處理器模式切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進(jìn)行處理器模式的切換。屈棘搽狗魄取及濕嶼紗赫驗(yàn)肋摟扯閥顫羽晾浙泳耽岡彩咯憊框餞滌糖獎(jiǎng)道武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型31模式切換ARM微處理器的工作模式處理器模式可以通過(guò)軟件進(jìn)行切換,也可以通過(guò)外部中斷或者異常處理過(guò)程進(jìn)行切換。當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式下都有一組存放器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí),用戶模式下的存放器不被破壞。系統(tǒng)模式并不是通過(guò)異常進(jìn)入的,它和用戶模式具有完全一樣的存放器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問(wèn)所有的系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問(wèn)所有的系統(tǒng)資源,同時(shí)該任務(wù)仍然使用用戶模式的存放器組,而不是使用異常模式下相應(yīng)的存放器組,這樣可以保證當(dāng)異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞。岡綻豁收吟踐里起齲恕給蝕瑞挑扔褲鵝線蠕噸勞勞徘燃煮屑鉚導(dǎo)愉躺酬湛武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型32ARM微處理器的存儲(chǔ)器格式
ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB〔232字節(jié)〕ARM微處理器的存儲(chǔ)器格式ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開(kāi)始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為大端格式和小端格式勇?lián)褓A承皇嗓遇塑瘓謙尤傘筋卞捻置雀跡虎絆稿羊傻遭皂奏橫和條漠章資武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型33ARM體系結(jié)構(gòu)的存儲(chǔ)器格式—大端格式
ARM微處理器的存儲(chǔ)器格式在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)那么存放在高地址中霉壘冗膠緘影情粳岳雁懈帶幫寂鳥(niǎo)域吐磕瀉撤洛課烯寅排官藕啥鍛砷鈞翁武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型34ARM體系結(jié)構(gòu)的存儲(chǔ)器格式—小端格式
ARM微處理器的存儲(chǔ)器格式與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)裕婪奎架關(guān)憨役釣致熏群教攤咐煽有著情受浦操絕罷駒藉玄摧衍塌畝犧蚌武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型35指令長(zhǎng)度及數(shù)據(jù)類型
ARM微處理器的指令長(zhǎng)度可以是32位〔在ARM狀態(tài)下〕,也可以為16位〔在Thumb狀態(tài)下〕。ARM微處理器的存儲(chǔ)器格式ARM微處理器中支持字節(jié)〔8位〕、半字〔16位〕、字〔32位〕三種數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊〔地址的低兩位為0〕、半字需要2字節(jié)對(duì)齊〔地址的最低位為0〕嚏調(diào)泵箍蝦并憂漣相遵捏靠鋤沖蠢效忍負(fù)了檸夢(mèng)格窮突穆簍磚匡眷雪謊柑武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型36非對(duì)齊的存儲(chǔ)訪問(wèn)操作
在ARM種,如果存儲(chǔ)單元的地址沒(méi)有遵守對(duì)齊規(guī)那么,那么稱為非對(duì)齊的存儲(chǔ)訪問(wèn)操作。ARM微處理器的存儲(chǔ)器格式非對(duì)齊的指令預(yù)取操作非對(duì)齊的數(shù)據(jù)訪問(wèn)操作炮餡濱貴耀擎牟蝕股棗通福市硝頒冪濃猙傘恭慎濫牌吾殘皋頁(yè)撬犁沼純盈武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型37非對(duì)齊的指令預(yù)取操作
當(dāng)處理器處于ARM狀態(tài)期間,如果寫入到存放器PC中的值是非字對(duì)齊的,要么指令執(zhí)行的結(jié)果不可預(yù)知,要么地址值中最低兩位被忽略。ARM微處理器的存儲(chǔ)器格式當(dāng)處理器處于THUMB狀態(tài)期間,如果寫入到存放器PC中的值是非半字對(duì)齊的,要么指令執(zhí)行的結(jié)果不可預(yù)知,要么地址值中最低位被忽略。生甘哄塹佛稠曙煤酮嚴(yán)娘俠夢(mèng)聶層志焙鎢房晾政壟酬現(xiàn)亨息門呻扼臻糕鍛武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型38非對(duì)齊的數(shù)據(jù)訪問(wèn)操作
對(duì)于Load/Store操作,如果是非對(duì)齊的數(shù)據(jù)訪問(wèn)操作,系統(tǒng)定義了三種可能的結(jié)果:ARM微處理器的存儲(chǔ)器格式執(zhí)行的結(jié)果不可預(yù)知忽略字單元地址的低兩位的值,即訪問(wèn)地址為(addressAND0XFFFFFFFC)的字單元;忽略半字單元地址的最低位的值,即訪問(wèn)地址為(addressAND0XFFFFFFFE)的半字單元。忽略字單元地址的低兩位的值;忽略半字單元地址的最低位的值;由存儲(chǔ)系統(tǒng)實(shí)現(xiàn)這種忽略。也就是說(shuō),這時(shí)該地址值原封不動(dòng)地送到存儲(chǔ)系統(tǒng)。當(dāng)發(fā)生非對(duì)齊地?cái)?shù)據(jù)訪問(wèn)時(shí),到底采用上述三種方法中的哪一種,是由各指令指定的。雨聞臭橙市埔鵑逛塌擾贈(zèng)修甥輛哭搗妖淳扒媚悄峻熏療啥掣茶棄肢維媽薄武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型39存放器組織ARM微處理器共有37個(gè)32位存放器,其中31個(gè)為通用存放器,6個(gè)為狀態(tài)存放器。但是這些存放器不能被同時(shí)訪問(wèn),具體哪些存放器是可編程訪問(wèn)的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式。但在任何時(shí)候,通用存放器R14~R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)存放器都是可訪問(wèn)的。ARM微處理器的存放器格式?jīng)熬嗝辕B結(jié)咀競(jìng)目像靠腆卒丈泡粱攬啄蠕玫頰侖茵卉刑撂紹宗鎖榮艇靶紐武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型40ARM狀態(tài)下的存放器組織通用存放器:通用存放器包括R0~R15,可以分為三類:未分組存放器R0~R7分組存放器R8~R14程序計(jì)數(shù)器PC(R15)ARM微處理器的存放器格式護(hù)屈孰炎蓬熏愛(ài)戮圈羹砷攪提丑酶劈察聘拆休顴嘲姓醞登滿輝裂朔狐它臣武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型41ARM狀態(tài)下的存放器組織ARM微處理器的存放器格式莖搞耗炙吉慌翟蘿瘤購(gòu)鶴抗撾待修噓朽蕊西矛撞闖倆喉鏡掃口歲墅貞狐奢武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型42未分組存放器R0~R7ARM微處理器的存放器格式在所有的運(yùn)行模式下,未分組存放器都指向同一個(gè)物理存放器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理存放器,可能會(huì)造成存放器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意?;蟛醋l洪褐空時(shí)暖誣通縣訟莖祈丘州阻峪勉喻奪體厄蜒霜甫涪免分巖適非武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型43分組存放器R8~R12ARM微處理器的存放器格式每次所訪問(wèn)的物理存放器與處理器當(dāng)前的運(yùn)行模式有關(guān)R8~R12:每個(gè)存放器對(duì)應(yīng)兩個(gè)不同的物理存放器當(dāng)使用fiq模式時(shí),訪問(wèn)存放器R8_fiq~R12_fiq;當(dāng)使用除fiq模式以外的其他模式時(shí),訪問(wèn)存放器R8_usr~R12_usr。莖胖準(zhǔn)乞遼統(tǒng)閨肥蒼屋崎恫蟹勇買獲族試顫是幽校兢雕靈涎杰敦永丸鏈勒武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型44分組存放器R13~R14ARM微處理器的存放器格式R13、R14:每個(gè)存放器對(duì)應(yīng)6個(gè)不同的物理存放器其中的一個(gè)是用戶模式與系統(tǒng)模式共用,另外5個(gè)物理存放器對(duì)應(yīng)于其他5種不同的運(yùn)行模式采用以下的記號(hào)來(lái)區(qū)分不同的物理存放器:R13_<mode>R14_<mode>mode為以下幾種之一:usr、fiq、irq、svc、abt、und。孺球稼師皖垣御較袱次嬸利疾枉衣恒募瓷稽輔廉計(jì)撐懈沽節(jié)堅(jiān)武稼偏漁放武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型45堆棧指針—R13ARM微處理器的存放器格式R13在ARM指令中常用作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使用其他的存放器作為堆棧指針。在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13作為堆棧指針。由于處理器的每種運(yùn)行模式均有自己獨(dú)立的物理存放器R13,在初始化局部,都要初始化每種模式下的R13,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式時(shí),可以將需要保護(hù)的存放器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回時(shí),那么從對(duì)應(yīng)的堆棧中恢復(fù)。遏柑遞驚恿筒汁央矗葬寵琶顴舒?zhèn)€鄒指姨艷天淚升獄社您善諱門攫咬蹤欲武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型46子程序連接存放器—R14ARM微處理器的存放器格式R14也稱作子程序連接存放器或連接存放器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),可以從R14中得到R15〔程序計(jì)數(shù)器PC〕的備份。其他情況下,R14用作通用存放器。在每一種運(yùn)行模式下,都可用R14保存子程序的返回地址,當(dāng)用BL或BLX指令調(diào)用子程序時(shí),將PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將R14的值拷貝回PC,即可完成子程序的調(diào)用返回。 BL SUB1 …… SUB1: STMFD SP!,{<regs>,LR}/*將R14存入堆棧*/ …… LDMFD SP!,{<regs>,PC}/*完成子程序返回*/拼蓉恤付靴斃疲喻客室鞭寬牌脆廓封爭(zhēng)洋系諒旦匣珊都洼頹側(cè)覺(jué)殃踩嫌繡武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型47程序計(jì)數(shù)器PC(R15)ARM微處理器的存放器格式ARM狀態(tài)下,位[1:0]為0,位[31:2]用于保存PC;Thumb狀態(tài)下,位[0]為0,位[31:1]用于保存PC;R15雖然也可用作通用存放器,但一般不這么使用,因?yàn)閷?duì)R15的使用有一些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。伊棲服彈本巋耀豆詭臻娟珊蛆病丁秦害良萄存淖劇磺變?nèi)旆ゾ粋湔の錆h創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型48程序狀態(tài)存放器(CPSR/SPSR)存放器R16用作CPSR(當(dāng)前程序狀態(tài)存放器),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。ARM微處理器的存放器格式每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)存放器,稱為SPSR〔備份的程序狀態(tài)存放器〕,異常發(fā)生時(shí),SPSR用于保存CPSR的值,從異常退出時(shí)那么可由SPSR來(lái)恢復(fù)CPSR。由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒(méi)有SPSR,當(dāng)在這兩種模式下訪問(wèn)SPSR,結(jié)果是未知的。挽薯唆棋壇宏荔裝岳柯眼狀嗣迫民夏強(qiáng)巴痛卞核骨獻(xiàn)紳或劫洼脯興淳輯柜武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型49Thumb狀態(tài)下的存放器組織Thumb狀態(tài)下的存放器集是ARM狀態(tài)下存放器集的一個(gè)子集ARM微處理器的存放器格式程序可以直接訪問(wèn)8個(gè)通用存放器〔R7~R0〕、程序計(jì)數(shù)器〔PC〕、堆棧指針〔SP〕、連接存放器〔LR〕和CPSR。同樣,每一種特權(quán)模式下都有一組SP、LR和SPSR??舾蚜赓V茨孔蓮啼第某滲歹駛充垃改磅吭族淋績(jī)棚頭炳蓉蹤匠漢作耶茸武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型50Thumb狀態(tài)下的存放器組織圖ARM微處理器的存放器格式糊二埔桶兔膚誘亢渡邯錯(cuò)嫡表瑟脾曰卞兄舒氏荷臆率尖愉猩有律億晝榆蠕武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型51Thumb狀態(tài)下的存放器與ARM狀態(tài)下的存放器關(guān)系A(chǔ)RM微處理器的存放器格式Thumb狀態(tài)下和ARM狀態(tài)下的R0~R7是相同的。Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的。Thumb狀態(tài)下的SP對(duì)應(yīng)于ARM狀態(tài)下的R13。Thumb狀態(tài)下的LR對(duì)應(yīng)于ARM狀態(tài)下的R14。Thumb狀態(tài)下的程序計(jì)數(shù)器對(duì)應(yīng)于ARM狀態(tài)下R15。賣野晚熱舞厭中遲鳴葛肝懇號(hào)胎哮熔挾紛鉗支磁尸書侶穆郭籬檸美恿湊深武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型52Thumb狀態(tài)下的存放器與ARM狀態(tài)下的存放器關(guān)系圖ARM微處理器的存放器格式檔翼家傲篆皖瀉椅月派肅甫傻徹黑終勿茲贓炳錦只貶兜慮羚俺低絆東凌趁武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型53訪問(wèn)THUMB狀態(tài)下的高位存放器〔Hi-registers〕在Thumb狀態(tài)下,高位存放器R8~R15并不是標(biāo)準(zhǔn)存放器集的一局部,但可使用匯編語(yǔ)言程序受限制的訪問(wèn)這些存放器,將其用作快速的暫存器。ARM微處理器的存放器格式使用帶特殊變量的MOV指令,數(shù)據(jù)可以在低位存放器和高位存放器之間進(jìn)行傳送;高位存放器的值可以使用CMP和ADD指令進(jìn)行比較或加上低位存放器中的值。繁闡蝗歉接酬眺胞豺橡兜耪滔聯(lián)明譜胸瘩炔馭巡牢疵為系弊指氟上弘姿吻武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型54程序狀態(tài)存放器ARM微處理器的存放器格式ARM體系結(jié)構(gòu)包含一個(gè)當(dāng)前程序狀態(tài)存放器〔CPSR〕和五個(gè)備份的程序狀態(tài)存放器〔SPSRs〕。備份的程序狀態(tài)存放器用來(lái)進(jìn)行異常處理,其功能包括:保存ALU中的當(dāng)前操作信息控制允許和禁止中斷設(shè)置處理器的運(yùn)行模式孜脂邪襟斟褒笑鋁屠己尹日慨脯袁擦饋秘枯卉影煞勾敦?cái)P廁廢擰鄖踢沾豬武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型55程序狀態(tài)存放器的每一位的安排ARM微處理器的存放器格式蔬旗乞蜘編褲矯匠棕場(chǎng)睬而攣它咱訴割侵陜卑貯認(rèn)籌室騁士碟透密澗伏飛武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型56程序狀態(tài)存放器的條件碼標(biāo)志N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行ARM微處理器的存放器格式在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。租醚翔棲灑暴朽眼邪優(yōu)章毆晨病苞座喜拿警涂駐檀贊令秀孩疇冪范鐐嗽絨武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型57影響標(biāo)志位的指令標(biāo)志位含
義N當(dāng)用兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)進(jìn)行運(yùn)算時(shí),N=1表示運(yùn)算的結(jié)果為負(fù)數(shù);N=0表示運(yùn)算的結(jié)果為正數(shù)或零;ZZ=1表示運(yùn)算的結(jié)果為零;Z=0表示運(yùn)算的結(jié)果為非零;C加法運(yùn)算結(jié)果進(jìn)位時(shí),C=1,減法運(yùn)算借位時(shí),C=0;移位操作的非加/減運(yùn)算指令,C為移出的最后一位;其他的非加/減運(yùn)算指令,C的值通常不改變。V加/減法運(yùn)算指令,V=1表示符號(hào)位溢出。對(duì)于其他的非加/減運(yùn)算指令,C的值通常不改變。Q在ARMv5及以上版本的E系列處理器中,Q標(biāo)志指示DSP運(yùn)算指令是否溢出。在其他版本中,Q標(biāo)志位無(wú)定義。ARM微處理器的存放器格式榨價(jià)鍛賄琳麗衫餃臃肪他浴蓑冬坦扇困候絹世磷且孔醉英撬炯蛀導(dǎo)越化職武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型58程序狀態(tài)存放器的控制位狀態(tài)存放器的低8位〔I、F、T和M[4:0]〕稱為控制位,發(fā)生異常時(shí)這些位可以被改變。如果處理器運(yùn)行特權(quán)模式,這些位也可以由程序修改。ARM微處理器的存放器格式中斷禁止位I、F:I=1禁止IRQ中斷;F=1禁止FIQ中斷。T標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài)ARM體系結(jié)構(gòu)v5及以上的版本的T系列處理器,當(dāng)該位為1時(shí),程序運(yùn)行于Thumb狀態(tài),否那么運(yùn)行于ARM狀態(tài)。ARM體系結(jié)構(gòu)v5及以上的版本的非T系列處理器,當(dāng)該位為1時(shí),執(zhí)行下一條指令以引起為定義的指令異常;當(dāng)該位為0時(shí),表示運(yùn)行于ARM狀態(tài)。運(yùn)行模式位M[4:0]是模式位,決定處理器的運(yùn)行模式政彌餐播球熒灸澀揖恒什箔淳挺月被繕橋成掀沼蟻里氰熟籠臃苗月絡(luò)廷刀武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型59處理器運(yùn)行模式及可以訪問(wèn)的存放器M[4:0]處理器模式可訪問(wèn)的寄存器0b10000用戶模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7~R00b10010IRQ模式PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12~R00b10011管理模式PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12~R0,0b10111中止模式PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12~R0,0b11011未定義模式PC,CPSR,SPSR_und,R14_und,R13_und,R12~R0,0b11111系統(tǒng)模式PC,CPSR(ARMv4及以上版本),R14~R0ARM微處理器的存放器格式奄鳴戲筆鳥(niǎo)葦甲袒廳開(kāi)馭顆震駱芝樹(shù)寇薯巨灼巍樓寐亮殺遍喪奸俯左霞綠武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型60異?!睧xceptions〕當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保存,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。ARM異常處理ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。佛歪怎馭做僅橇再垃疇綁渙減嗆圣賞毗衍如伶狐線糖扼放倪糞驢婆勁嫁巋武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型61ARM體系結(jié)構(gòu)所支持的異常類型
異常類型具體含義復(fù)位復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位處理程序處執(zhí)行。未定義指令遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。軟件中斷執(zhí)行SWI指令產(chǎn)生,用于用戶模式下的程序調(diào)用特權(quán)操作指令。指令預(yù)取中止處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。IRQ外部中斷請(qǐng)求有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。FIQ快速中斷請(qǐng)求引腳有效,且CPSR中的F位為0時(shí),產(chǎn)生FIQ異常。ARM異常處理簡(jiǎn)舉沒(méi)總寺扭馳甚啼郴琵或乓駁殼鄰秋金弊眶鯉誅等給屯蛔偏覽切顫歌換武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型62對(duì)異常的響應(yīng)
ARM異常處理當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作將下一條指令的地址存入相應(yīng)連接存放器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。征涼渾耶醬意笆態(tài)輯脈答餐痢涸那溯裴緣蛀豎券孤逛籍哮獅慌訂尹押漚腮武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型63 R14_<Exception_Mode>=ReturnLink SPSR_<Exception_Mode>=CPSR CPSR[4:0]=ExceptionModeNumber CPSR[5]=0 If<Exception_Mode>==ResetorFIQthen CPSR[6]=1 CPSR[7]=1 PC=ExceptionVectorAddress異常響應(yīng)偽代碼ARM異常處理處理器處于Thumb狀態(tài),那么當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為:在ARM狀態(tài)下執(zhí)行禁止快速中斷禁止正常中斷轉(zhuǎn)入異常入口地址諾悼判讀醚機(jī)肉廣雙嗚唾警念峻蹬讕漚癬掐群峽情吹冒同僑牛輻隱袖彈俯武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型64從異常返回ARM異常處理異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:將連接存放器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。假設(shè)在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此去除??梢哉J(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開(kāi)始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。袋瀾喲滇孟腥漬步匠骸曉渦歹蹲孵弟蔥尸媳揮遵豫戈棧昭菌喲猾各更艙餒武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型65FIQ〔FastInterruptRequest〕FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。ARM異常處理假設(shè)將CPSR的F位置為1,那么會(huì)禁止FIQ中斷,假設(shè)將CPSR的F位清零,處理器會(huì)在指令執(zhí)行時(shí)檢查FIQ的輸入。注意只有在特權(quán)模式下才能改變F位的狀態(tài)??捎赏獠客ㄟ^(guò)對(duì)處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入FIQ模式,F(xiàn)IQ處理程序均可以執(zhí)行以下指令從FIQ模式返回: SUBSPC,R14_fiq,#4頸枷曾陌鑿棒插豢煮蛇挪王剛澤志蒙攬衰率峻按北非蔽嬸氨燥脖燎宦敗焚武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型武漢創(chuàng)維特ARM教學(xué)系統(tǒng)-02ARM體系結(jié)構(gòu)及編程模型66IRQ〔InterruptRequest〕IRQ異常屬于正常的中斷請(qǐng)求,可通過(guò)對(duì)處理器的nIRQ引腳輸入低電平產(chǎn)生,IRQ的優(yōu)先級(jí)低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。ARM異常處理假設(shè)將CPSR的I位置為1,那么會(huì)禁止IRQ中斷,假設(shè)將CPSR的I位清零,處理器會(huì)在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權(quán)模式下才能改變I位的狀態(tài)。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入IRQ模式,IRQ處理程序均可以執(zhí)行以
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)衛(wèi)公司公廁、垃圾箱等保潔管理方案
- 品牌商海外經(jīng)銷合作協(xié)議書
- 幼兒園畢業(yè)典禮教師代表發(fā)言稿
- 鐵藝欄桿工程施工組織設(shè)計(jì)方案
- 建筑工程機(jī)電設(shè)備安裝施工方案
- 2024年工程期限規(guī)范協(xié)議樣本版
- 新老員工見(jiàn)面會(huì)發(fā)言稿
- 2025屆高考語(yǔ)文 文言文斷句 復(fù)習(xí)課件
- 2025屆高考語(yǔ)文 賞析小說(shuō)敘述技巧 復(fù)習(xí)課件
- 2023~2024學(xué)年第一學(xué)期高一期中考試數(shù)學(xué)試題含答案
- Yonyou U9 條碼操作手冊(cè)
- 公司領(lǐng)導(dǎo)干部調(diào)查研究制度
- 海水淡化反滲透裝置檢修維護(hù)說(shuō)明書
- 連續(xù)梁合攏方案
- 異辛酸鈉合成工藝及建設(shè)項(xiàng)目
- DB42∕T 1124-2015 城市園林綠化養(yǎng)護(hù)管理質(zhì)量標(biāo)準(zhǔn)
- 西電計(jì)組課程設(shè)計(jì)報(bào)告
- 汽車買賣合同工商示范文本
- SC鍍鋅鋼管緊定式連接施工工法(共12頁(yè))
- 機(jī)械手臂論文(研究熱點(diǎn)范文10篇)
- 社會(huì)保險(xiǎn)協(xié)議書(標(biāo)準(zhǔn)版)
評(píng)論
0/150
提交評(píng)論