久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 入門指導 > 嵌入式開發之arm狀態(tai)和thumb狀態(tai)詳解(jie)

嵌(qian)入式開(kai)發之arm狀態和thumb狀態詳解 時(shi)間:2018-08-03      來源:未(wei)知

學(xue)習嵌入式(shi)開發,那當(dang)然(ran)會涉及(ji)到arm狀態(tai)和(he)thumb狀態(tai),很(hen)多初學(xue)者對這兩(liang)個狀態(tai)一(yi)直(zhi)不是很(hen)理解(jie),都是一(yi)直(zhi)處于(yu)迷茫中,今天(tian)我就用(yong)實(shi)際的(de)例子來教給(gei)你,對于(yu)arm狀態(tai)和(he)thumb狀態(tai)的(de)學(xue)習。

我們首先(xian)先(xian)來清楚一下:arm處理(li)器的工作狀態(tai)(tai)(tai)分(fen)為3種,一是(shi):ARM狀態(tai)(tai)(tai),二是(shi):Thumb狀態(tai)(tai)(tai)及Thumb-2狀態(tai)(tai)(tai),三(san)是(shi):調試狀態(tai)(tai)(tai)

對于(yu)arm狀態(tai)(tai)和Thumb狀態(tai)(tai)我們可(ke)以用一個(ge)簡單的(de)比喻來(lai)先了(le)解一下:我們可(ke)以把(ba)ARM核比作(zuo)一個(ge)高(gao)中學校,那種包(bao)含(han)普(pu)通(tong)(tong)高(gao)中和職(zhi)業(ye)高(gao)中的(de)。普(pu)通(tong)(tong)高(gao)中就(jiu)相(xiang)當于(yu)ARM狀態(tai)(tai),職(zhi)業(ye)高(gao)中就(jiu)相(xiang)當于(yu)Thumb狀態(tai)(tai),這樣還不能理(li)解的(de)話(hua):可(ke)以認為 泡泡卡(ka)丁(ding)車 中普(pu)通(tong)(tong)模(mo)式(shi)和加(jia)速模(mo)式(shi),,卡(ka)丁(ding)車加(jia)速要等(deng)到(dao)集氣(qi)(qi)管(guan)(guan)加(jia)滿,然后“ctrl”一下,就(jiu)切換到(dao)了(le)加(jia)速模(mo)式(shi),氣(qi)(qi)放(fang)完了(le)就(jiu)又回來(lai)了(le),不管(guan)(guan)加(jia)速模(mo)式(shi)還是普(pu)通(tong)(tong)模(mo)式(shi)都(dou)是在跑(pao),只是速度不一樣而已。

而ARM狀(zhuang)(zhuang)(zhuang)態(tai)和(he)Thumb狀(zhuang)(zhuang)(zhuang)態(tai)也是可以直接通過(guo)某些(xie)指(zhi)令直接切換(huan),都(dou)是在運行程序,只不(bu)過(guo)指(zhi)令長度不(bu)一(yi)樣而已。這(zhe)個概念對初學者相當重要,因為當ARM Thumb是什么還沒弄清(qing)楚,怎么能理解(jie)兩種狀(zhuang)(zhuang)(zhuang)態(tai)呢?通過(guo)上面(mian)的(de)例子,我(wo)想大(da)家(jia)都(dou)大(da)概了(le)解(jie)了(le)ARM狀(zhuang)(zhuang)(zhuang)態(tai)和(he)Thumb狀(zhuang)(zhuang)(zhuang)態(tai)的(de)一(yi)些(xie)關系了(le)吧,那么這(zhe)樣就可以深入了(le)解(jie)ARM狀(zhuang)(zhuang)(zhuang)態(tai)是什么,Thumb狀(zhuang)(zhuang)(zhuang)態(tai)是什么了(le)。

另外(wai):ARM的M系列主要用Thumb指(zhi)(zhi)令,ARM9和A系列主要用ARM指(zhi)(zhi)令

S3C2440.S啟動代碼中(zhong)根本就沒(mei)用(yong)Thumb指令。

ARM狀態此時處理器(qi)執(zhi)行32位的(de)(de)字對齊(qi)(qi)的(de)(de)ARM指令,Thumb狀態此時處理器(qi)執(zhi)行16位的(de)(de),半字對齊(qi)(qi)的(de)(de)THUMB指令。 切(qie)換(huan)程(cheng)序:從(cong)(cong)ARM到Thumb: LDR R0,=lable+1 BX R0 從(cong)(cong)ARM到Thumb: LDR R0,=lable BX R0

1,ARM狀態(tai)

arm處理(li)器工作于32位指令(ling)(ling)的狀態,所有指令(ling)(ling)均為32位

2,thumb狀態

arm執行16位指令的狀態,即(ji)16位狀態

3,接下來就(jiu)是arm與(yu)thumb間的切換了,他們到底是如何切換的,這些是你需要掌握(wo)的

(1)由thumb狀態切換到(dao)ARM狀態

寄(ji)存器最低(di)位設置為0

BX指(zhi)令:R0[0]=0,則執行BX

R0指令將進入arm狀態

當處理器進行異(yi)常處理時,則從異(yi)常向量地址開始(shi)執行,將自動進入(ru)ARM狀態。

(2)由arm狀態切換到(dao)thumb

狀態(tai)將寄存(cun)器(qi)的(de)最低位設置為1

BX指令:R0[0]=1,則執行BX

R0指令將進入thumb狀態

注意:ARM處理器(qi)復(fu)位后開始執行(xing)代碼時總是只處于ARM狀(zhuang)態;

Cortex-M3只有Thumb-2狀(zhuang)態和調試狀(zhuang)態;

由于Thumb-2具(ju)有(you)16位/32位指(zhi)令功能,因此有(you)了thumb-2就無需Thumb了。

另外,具有Thumb-2技術的ARM處理器也無需再(zai)ARM狀(zhuang)(zhuang)態(tai)和Thumb-2狀(zhuang)(zhuang)態(tai)間進(jin)行切換了,因(yin)為thumb-2具有32位指令功能。

上面(mian)這些(xie)你(ni)(ni)都(dou)明(ming)白了嗎,其(qi)實總的(de)(de)(de)來說,arm狀(zhuang)態(tai)和Thumb狀(zhuang)態(tai)的(de)(de)(de)他(ta)們最根本(ben)的(de)(de)(de)區別就是(shi)(shi)指令的(de)(de)(de)位數不(bu)同(tong)而已,就像arm狀(zhuang)態(tai)是(shi)(shi)32位的(de)(de)(de),thumb是(shi)(shi)16位的(de)(de)(de),你(ni)(ni)只(zhi)要把他(ta)們之間的(de)(de)(de)這些(xie)東西都(dou)掌握(wo)好(hao),那對你(ni)(ni)學(xue)(xue)習(xi)arm狀(zhuang)態(tai)和thumb狀(zhuang)態(tai)是(shi)(shi)很容易(yi)的(de)(de)(de),快快學(xue)(xue)起來吧(ba)!

上一篇:學ARM嵌入式開發輕輕松松入門

下一篇:嵌入式之arm匯編指令集合,美女學霸總結

熱點(dian)文章推薦
華清學員就業榜(bang)單(dan)
高(gao)薪學員經驗分享
熱點新聞(wen)推(tui)薦
前(qian)臺專(zhuan)線:010-82525158 企(qi)業(ye)培(pei)訓洽談專(zhuan)線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部