、通用目的暫存器
r0~r7
r0-r7 也被稱為低組暫存器。所有指令都能訪問它們。它們的字長全是 32 位,復位後的初始值是不可預料的。
2
、通用目的暫存器
r8-r12
r8-r12 也被稱為高組暫存器。這是因為只有很少的 16 位 thumb 指令能訪問它們, 32 位的thumb-2 指令則不受限制。它們也是 32 位字長,且復位後的初始值是不可預料的。
3
、特殊功能暫存器
程式狀態暫存器:apsr, ipsr, epsr ---- 通過mrs/msr 指令,這3 個psrs 即可以單獨訪問,也可以組合訪問(2 個組合,3 個
組合都可以)。當使用三合一的方式訪問時,應使用名字「xpsr」或者「psr」。
n:負條件碼標誌位,運算結果小於0,n=1, 大於等於0,n=0;primask, faultmask 和 basepri:控制異常的使能和除能z:零條件碼標誌位,運算結果為0,z=1;
c:進製條件碼標誌位,運算指令產生進製(無符號加法溢位),c=1;
v:溢位條件碼標誌位,運算溢位(有符號加法溢位), v=1;
q:飽和條件碼標誌位;
ipsr:處於執行緒模式時,該位域為0;在手柄模式下,該位域為當前異常的異常號。
epsr:
t:thumb狀態, t=1,arm狀態,t=0;
控制暫存器control:其一用於定義特權級別,其二用於選擇當前使用哪個堆疊指標。
、堆疊指標
r13r13 是堆疊指標。在 cm3 處理器核心中共有兩個堆疊指標,於是也就支援兩個堆疊。當引用 r13(或寫作 sp)時,引用到的是當前正在使用的那乙個,另乙個必須用特殊的指令來訪問( mrs,msr指令)。
主堆疊指標(msp),或寫作 sp_main。這是預設的堆疊指標,它由 os 核心、異常服務例程以及所有需要特權訪問的應用程式**來使用。
程序堆疊指標(psp),或寫作 sp_process。用於常規的應用程式**(不處於異常服用例程中時)。
5
、連線暫存器
r14r14 是連線暫存器( lr)。在乙個匯程式設計序中,你可以把它寫作 both lr 和 r14。 lr 用於在呼叫子程式時儲存返回位址。例如,當你在使用 bl(分支並連線, branch and link)指令時,就自動填充 lr的值。
6
、程式計數器
r15r15 是程式計數器,在彙編**中一般我們都都叫它的外號「 pc」。因為 cm3 內部使用了指令流水線,讀 pc 時返回的值是當前指令的位址+4。
Cortex M3暫存器組
暫存器組 宗旨 技術的學習是有限的,分享的精神是無限的。通用目的暫存器 r0 r7 r0 r7 也被稱為低組暫存器。所有指令都能訪問它們。它們的字長全是 32 位,復位後的初始值是不可預料的。2 通用目的暫存器 r8 r12 r8 r12 也被稱為高組暫存器。這是因為只有很少的 16 位 thumb...
Cortex M3儲存器對映
cortexm3儲存器系統 宗旨 技術的學習是有限的,分享的精神是無限的。cm3 只有乙個單一固定的儲存器對映。這一點極大地方便了軟體在各種 cm3 微控制器間的移植。儲存空間的一些位置用於除錯元件等私有外設,這個位址段被稱為 私有外設區 私有外設區的元件包括 快閃儲存器位址過載及斷點單元 fpb ...
Cortex M3異常筆記
異常型別 cortex m3編號為1 15對應系統異常,大於等於16的全部是核心級額外部中斷,除個別異常 復位,nmi,硬fault 的優先順序被定死之外,其他異常優先順序都是可以程式設計的。如果乙個發生的異常不能即刻響應,就稱它被 懸起 pending 少數異常時不能被懸起的。乙個異常被懸起的原因...