轉自:https://www.cnblogs.com/wangyanwen/p/11448535.html
中斷控制寄存器映射
中斷寄存器的基地址為0xE000E000,所有中斷控制/狀態寄存器都只能在特權級下訪問(除軟件觸發中斷寄存器外),寄存器映射列表見表3-2。也可以參考cortex-m4使用手冊,並推薦使用CMSIS函數來訪問相關功能。
表3-2 中斷寄存器映射
偏移量 |
名稱 |
位寬 |
類型 |
復位值 |
描述 |
0x100-0x11C |
ISER0-ISER7 |
32 |
R/W |
0x00000000 |
中斷使能寄存器,寄存器0為(IRQ0~IRQ31),以此類推 |
0x180-0x19C |
ICER0-ICER7 |
32 |
R/W |
0x00000000 |
中斷清除使能寄存器,寄存器0為(IRQ0~IRQ31),以此類推 |
0x200-0x21C |
ISPR0-ISPR7 |
32 |
R/W |
0x00000000 |
中斷掛起寄存器,寄存器0為(IRQ0~IRQ31),以此類推 |
0x280-0x29C |
ICPR0-ICPR7 |
32 |
R/W |
0x00000000 |
中斷掛起清除寄存器寄存器0為(IRQ0~IRQ31),以此類推 |
0x300-0x31C |
IABR0-IABR7 |
32 |
RO |
0x00000000 |
中斷活動狀態寄存器寄存器0為(IRQ0~IRQ31),以此類推 |
0x400-0x4EF |
IPR0-IPR59 |
32 |
R/W |
0x00000000 |
中斷優先級寄存器0寄存器0為(IRQ0~IRQ3),以此類推 |
0xD08 |
VTOR |
32 |
R/W |
0x00000000 |
向量表偏移寄存器 |
0xD0C |
AIRCR |
32 |
R/W |
0x00000000 |
應用中斷控制寄存器 |
上表中將同類寄存器放在同一行描述,每個寄存器按4字節偏移增加,用戶可自行計算出所需的寄存器地址偏移量。例如:要獲取IPR2的地址,則在IPR0的基地址偏移量上增加8個字節,偏移量為0x400 + 0x8 = 0x408,則其實際地址為0xE000E408,其余寄存器偏移量計算以此類推。
中斷使能寄存器(ISER)
偏移量:0x100
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:0 |
SETENA |
0x00000000 |
R/W |
中斷使能控制: 1:使能中斷 0:不影響 |
中斷清除使能寄存器(ICER)
偏移量:0x180
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:0 |
CLRENA |
0x00000000 |
R/W |
中斷清除使能控制: 1:禁止中斷 0:不影響 |
中斷掛起寄存器(ISPR)
偏移量:0x200
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:0 |
SETPEND |
0x00000000 |
R/W |
中斷掛起控制: 1:中斷掛起 0:中斷未掛起 |
中斷掛起清除寄存器(ICPR)
偏移量:0x280
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:0 |
CLRPEND |
0x00000000 |
R/W |
中斷掛起清除控制: 1:清除掛起中斷 0:不清除掛起中斷 |
中斷活動狀態寄存器(IABR)
偏移量:0x300
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:0 |
ACTIVE |
0x00000000 |
RO |
中斷掛起清除控制: 1:ISR執行中或者被搶占或者壓棧 0:ISR未執行或者壓棧 |
中斷優先級寄存器(IPR)
偏移量:0x400~0x41C
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
7:0 |
PRI_n |
0x00 |
R/W |
中斷n的優先級控制,受AIRCR影響。 |
向量表偏移寄存器(VTOR)
偏移量:0xD08
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:30 |
Reserved |
0x0 |
R/W |
保留 |
29 |
TBLBASE |
0 |
R/W |
向量表映射域: 0:Code 1:RAM |
28:7 |
TBLOFF |
0x000000 |
R/W |
向量表偏移地址 |
6:0 |
Reserved |
0x00 |
R/W |
保留 |
應用中斷控制寄存器(AIRCR)
偏移量:0xD0C
復位值:0x00000000
位域 |
名稱 |
復位值 |
類型 |
描述 |
31:16 |
VECTKEY |
0x0000 |
R/W |
寄存器配置解鎖控制。寫該寄存器時,該段位域須為0x05FA,否則寫操作被忽略。 讀該寄存器時,該段位域值為0xFA05 |
15:2 |
Reserved |
0x0000 |
R/W |
保留 |
1 |
VECTCLR |
0 |
R/W |
清除正在執行的中斷: 1:清除所有中斷信息,包括NMI和fault 0:不清除 |
0 |
VECTRESET |
0 |
R/W |
系統復位位,復位整個系統(除調試系統): 1:復位系統 0:不復位系統 在調試時,當core被掛起(halted)時才能寫該位 |