主要產品系列 |
ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:
第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令,對應ARM指令集;
第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令,對應Thumb指令集。
在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。
ARM微處理器支持7種運行工作模式,分別為:
ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。
當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態(CPSR)必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:
將下一條指令的地址存入相應連接寄存器LR(Link Register),以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。 強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為:
異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:
相關閱讀:ARM體系結構、架構
聲明:本站部分內容根據互聯網資料整理而成,若侵犯您的權益,請聯系我們,我們會盡快處理。