2016-09-30 113 views

回答

0

您還沒有指定哪個ARM指令的版本設置你使用,但 你幾乎肯定會發現它在保存的程序狀態寄存器(SPSR)。

具體來說,你想知道T-bit的價值。

T位

T位反映了操作狀態:

  • 當T比特被設置,則處理器在Thumb狀態
  • 執行當T位是清楚,處理器在ARM狀態下執行。

運行狀態由CPTBIT外部信號反映。

就像旁邊一樣,如果您嘗試從中斷返回,您通常不需要擔心中斷是否來自拇指代碼或ARM代碼。有特殊的中斷返回指令,應該爲您處理。

在最後的ARM平臺,我的工作,你可以簡單地做movs pc, lr從中斷返回,同時恢復先前的執行狀態。

+0

使用lpc2378的進程 – tracy00

+1

它唯一的例外是_does_,它來自哪個狀態,是一個未定義的指令,其中LR偏移量是來自ARM的+4而來自Thumb的+2。對於其他任何情況,LR偏移量完全取決於異常類型(特別是對於SVC,確實爲0)。 – Notlikethat

相關問題