email:[email protected]
blog:kangear.blog.chinaunix.net
《嵌入式系統開發與應用教程(第2版)》上介紹說:有兩種狀態arm狀態和thumb狀態,當時初學甚為不解,現在一知半解時再看忽然想到了現實中的例子:
arm核就好比乙個高中學校,那種包含普通高中和職業高中的。普通高中就相當於arm狀態,職業高中就相當於thumb狀態,這樣還不能理解的話:可以認為 泡泡卡丁車 中普通模式和加速模式,,卡丁車加速要等到集氣管加滿,然後「ctrl」一下,就切換到了加速模式,氣放完了就又回來了,不管加速模式還是普通模式都是在跑,只是速度不一樣而已。
而arm狀態和thumb狀態可以直接通過某些指令直接切換,都是在執行程式,只不過指令長度不一樣而已。這個概念對初學者相當重要,因為當arm thumb是什麼還沒弄清楚,怎麼能理解兩種狀態呢?
他們之間的關係清楚了,這樣就可以深入了解arm狀態是什麼,thumb狀態是什麼了。
另外:arm的m系列主要用thumb指令,arm9和a系列主要用arm指令。
s3c2440.s啟動**中根本就沒用thumb指令。
ARM狀態和THUMB狀態
在arm的體系結構中,可以工作在三種不同的狀態,一是arm狀態,二是thumb狀態及thumb 2狀態,三是除錯狀態。嵌入式系統開發與應用教程 第2版 上介紹說 有兩種狀態arm狀態和thumb狀態,當時初學甚為不解,現在一知半解時再看忽然想到了顯示中的例子 arm核就好比乙個高中學校,那種包含普通...
ARM指令狀態切換到Thumb指令狀態
注意上面的中的黃色箭頭是我按單步執行後,按了一下後,箭頭所在的位置,這時的r15的值是0x00000004,表示正在執行的指令的位址,當r15的值為0x00000000時,黃色箭頭你說在 呢,當然是在ldr那條指令那裡了,並且表示ldr指令並沒有執行。請大家再看,r0的值為什麼是0x0000000d...
ARM指令狀態切換到Thumb指令狀態
注意上面的中的黃色箭頭是我按單步執行後,按了一下後,箭頭所在的位置,這時的r15的值是0x00000004,表示正在執行的指令的位址,當r15的值為0x00000000時,黃色箭頭你說在 呢,當然是在ldr那條指令那裡了,並且表示ldr指令並沒有執行。請大家再看,r0的值為什麼是0x0000000d...