ARM NVIC控制器(基於cortex-M4)【轉】


轉自: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)時才能寫該位

------脫命散人[記]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM