📄 hw_nvic.h
字号:
//*****************************************************************************
//
// hw_nvic.h - Macros used when accessing the NVIC hardware.
//
// Copyright (c) 2005-2011 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement
//
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
//
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
//
// This is part of revision 6852 of the Stellaris Firmware Development Package.
//
//*****************************************************************************
#ifndef __HW_NVIC_H__
#define __HW_NVIC_H__
//*****************************************************************************
//
// The following are defines for the NVIC register addresses.
//
//*****************************************************************************
#define NVIC_INT_TYPE 0xE000E004 // Interrupt Controller Type Reg
#define NVIC_ACTLR 0xE000E008 // Auxiliary Control
#define NVIC_ST_CTRL 0xE000E010 // SysTick Control and Status
// Register
#define NVIC_ST_RELOAD 0xE000E014 // SysTick Reload Value Register
#define NVIC_ST_CURRENT 0xE000E018 // SysTick Current Value Register
#define NVIC_ST_CAL 0xE000E01C // SysTick Calibration Value Reg
#define NVIC_EN0 0xE000E100 // Interrupt 0-31 Set Enable
#define NVIC_EN1 0xE000E104 // Interrupt 32-54 Set Enable
#define NVIC_DIS0 0xE000E180 // Interrupt 0-31 Clear Enable
#define NVIC_DIS1 0xE000E184 // Interrupt 32-54 Clear Enable
#define NVIC_PEND0 0xE000E200 // Interrupt 0-31 Set Pending
#define NVIC_PEND1 0xE000E204 // Interrupt 32-54 Set Pending
#define NVIC_UNPEND0 0xE000E280 // Interrupt 0-31 Clear Pending
#define NVIC_UNPEND1 0xE000E284 // Interrupt 32-54 Clear Pending
#define NVIC_ACTIVE0 0xE000E300 // Interrupt 0-31 Active Bit
#define NVIC_ACTIVE1 0xE000E304 // Interrupt 32-54 Active Bit
#define NVIC_PRI0 0xE000E400 // Interrupt 0-3 Priority
#define NVIC_PRI1 0xE000E404 // Interrupt 4-7 Priority
#define NVIC_PRI2 0xE000E408 // Interrupt 8-11 Priority
#define NVIC_PRI3 0xE000E40C // Interrupt 12-15 Priority
#define NVIC_PRI4 0xE000E410 // Interrupt 16-19 Priority
#define NVIC_PRI5 0xE000E414 // Interrupt 20-23 Priority
#define NVIC_PRI6 0xE000E418 // Interrupt 24-27 Priority
#define NVIC_PRI7 0xE000E41C // Interrupt 28-31 Priority
#define NVIC_PRI8 0xE000E420 // Interrupt 32-35 Priority
#define NVIC_PRI9 0xE000E424 // Interrupt 36-39 Priority
#define NVIC_PRI10 0xE000E428 // Interrupt 40-43 Priority
#define NVIC_PRI11 0xE000E42C // Interrupt 44-47 Priority
#define NVIC_PRI12 0xE000E430 // Interrupt 48-51 Priority
#define NVIC_PRI13 0xE000E434 // Interrupt 52-53 Priority
#define NVIC_CPUID 0xE000ED00 // CPU ID Base
#define NVIC_INT_CTRL 0xE000ED04 // Interrupt Control and State
#define NVIC_VTABLE 0xE000ED08 // Vector Table Offset
#define NVIC_APINT 0xE000ED0C // Application Interrupt and Reset
// Control
#define NVIC_SYS_CTRL 0xE000ED10 // System Control
#define NVIC_CFG_CTRL 0xE000ED14 // Configuration and Control
#define NVIC_SYS_PRI1 0xE000ED18 // System Handler Priority 1
#define NVIC_SYS_PRI2 0xE000ED1C // System Handler Priority 2
#define NVIC_SYS_PRI3 0xE000ED20 // System Handler Priority 3
#define NVIC_SYS_HND_CTRL 0xE000ED24 // System Handler Control and State
#define NVIC_FAULT_STAT 0xE000ED28 // Configurable Fault Status
#define NVIC_HFAULT_STAT 0xE000ED2C // Hard Fault Status
#define NVIC_DEBUG_STAT 0xE000ED30 // Debug Status Register
#define NVIC_MM_ADDR 0xE000ED34 // Memory Management Fault Address
#define NVIC_FAULT_ADDR 0xE000ED38 // Bus Fault Address
#define NVIC_MPU_TYPE 0xE000ED90 // MPU Type
#define NVIC_MPU_CTRL 0xE000ED94 // MPU Control
#define NVIC_MPU_NUMBER 0xE000ED98 // MPU Region Number
#define NVIC_MPU_BASE 0xE000ED9C // MPU Region Base Address
#define NVIC_MPU_ATTR 0xE000EDA0 // MPU Region Attribute and Size
#define NVIC_MPU_BASE1 0xE000EDA4 // MPU Region Base Address Alias 1
#define NVIC_MPU_ATTR1 0xE000EDA8 // MPU Region Attribute and Size
// Alias 1
#define NVIC_MPU_BASE2 0xE000EDAC // MPU Region Base Address Alias 2
#define NVIC_MPU_ATTR2 0xE000EDB0 // MPU Region Attribute and Size
// Alias 2
#define NVIC_MPU_BASE3 0xE000EDB4 // MPU Region Base Address Alias 3
#define NVIC_MPU_ATTR3 0xE000EDB8 // MPU Region Attribute and Size
// Alias 3
#define NVIC_DBG_CTRL 0xE000EDF0 // Debug Control and Status Reg
#define NVIC_DBG_XFER 0xE000EDF4 // Debug Core Reg. Transfer Select
#define NVIC_DBG_DATA 0xE000EDF8 // Debug Core Register Data
#define NVIC_DBG_INT 0xE000EDFC // Debug Reset Interrupt Control
#define NVIC_SW_TRIG 0xE000EF00 // Software Trigger Interrupt
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_INT_TYPE register.
//
//*****************************************************************************
#define NVIC_INT_TYPE_LINES_M 0x0000001F // Number of interrupt lines (x32)
#define NVIC_INT_TYPE_LINES_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_ACTLR register.
//
//*****************************************************************************
#define NVIC_ACTLR_DISFOLD 0x00000004 // Disable IT Folding
#define NVIC_ACTLR_DISWBUF 0x00000002 // Disable Write Buffer
#define NVIC_ACTLR_DISMCYC 0x00000001 // Disable Interrupts of Multiple
// Cycle Instructions
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_ST_CTRL register.
//
//*****************************************************************************
#define NVIC_ST_CTRL_COUNT 0x00010000 // Count Flag
#define NVIC_ST_CTRL_CLK_SRC 0x00000004 // Clock Source
#define NVIC_ST_CTRL_INTEN 0x00000002 // Interrupt Enable
#define NVIC_ST_CTRL_ENABLE 0x00000001 // Enable
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_ST_RELOAD register.
//
//*****************************************************************************
#define NVIC_ST_RELOAD_M 0x00FFFFFF // Reload Value
#define NVIC_ST_RELOAD_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_ST_CURRENT
// register.
//
//*****************************************************************************
#define NVIC_ST_CURRENT_M 0x00FFFFFF // Current Value
#define NVIC_ST_CURRENT_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_ST_CAL register.
//
//*****************************************************************************
#define NVIC_ST_CAL_NOREF 0x80000000 // No reference clock
#define NVIC_ST_CAL_SKEW 0x40000000 // Clock skew
#define NVIC_ST_CAL_ONEMS_M 0x00FFFFFF // 1ms reference value
#define NVIC_ST_CAL_ONEMS_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_EN0 register.
//
//*****************************************************************************
#define NVIC_EN0_INT_M 0xFFFFFFFF // Interrupt Enable
#define NVIC_EN0_INT0 0x00000001 // Interrupt 0 enable
#define NVIC_EN0_INT1 0x00000002 // Interrupt 1 enable
#define NVIC_EN0_INT2 0x00000004 // Interrupt 2 enable
#define NVIC_EN0_INT3 0x00000008 // Interrupt 3 enable
#define NVIC_EN0_INT4 0x00000010 // Interrupt 4 enable
#define NVIC_EN0_INT5 0x00000020 // Interrupt 5 enable
#define NVIC_EN0_INT6 0x00000040 // Interrupt 6 enable
#define NVIC_EN0_INT7 0x00000080 // Interrupt 7 enable
#define NVIC_EN0_INT8 0x00000100 // Interrupt 8 enable
#define NVIC_EN0_INT9 0x00000200 // Interrupt 9 enable
#define NVIC_EN0_INT10 0x00000400 // Interrupt 10 enable
#define NVIC_EN0_INT11 0x00000800 // Interrupt 11 enable
#define NVIC_EN0_INT12 0x00001000 // Interrupt 12 enable
#define NVIC_EN0_INT13 0x00002000 // Interrupt 13 enable
#define NVIC_EN0_INT14 0x00004000 // Interrupt 14 enable
#define NVIC_EN0_INT15 0x00008000 // Interrupt 15 enable
#define NVIC_EN0_INT16 0x00010000 // Interrupt 16 enable
#define NVIC_EN0_INT17 0x00020000 // Interrupt 17 enable
#define NVIC_EN0_INT18 0x00040000 // Interrupt 18 enable
#define NVIC_EN0_INT19 0x00080000 // Interrupt 19 enable
#define NVIC_EN0_INT20 0x00100000 // Interrupt 20 enable
#define NVIC_EN0_INT21 0x00200000 // Interrupt 21 enable
#define NVIC_EN0_INT22 0x00400000 // Interrupt 22 enable
#define NVIC_EN0_INT23 0x00800000 // Interrupt 23 enable
#define NVIC_EN0_INT24 0x01000000 // Interrupt 24 enable
#define NVIC_EN0_INT25 0x02000000 // Interrupt 25 enable
#define NVIC_EN0_INT26 0x04000000 // Interrupt 26 enable
#define NVIC_EN0_INT27 0x08000000 // Interrupt 27 enable
#define NVIC_EN0_INT28 0x10000000 // Interrupt 28 enable
#define NVIC_EN0_INT29 0x20000000 // Interrupt 29 enable
#define NVIC_EN0_INT30 0x40000000 // Interrupt 30 enable
#define NVIC_EN0_INT31 0x80000000 // Interrupt 31 enable
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_EN1 register.
//
//*****************************************************************************
#define NVIC_EN1_INT_M 0x007FFFFF // Interrupt Enable
#define NVIC_EN1_INT32 0x00000001 // Interrupt 32 enable
#define NVIC_EN1_INT33 0x00000002 // Interrupt 33 enable
#define NVIC_EN1_INT34 0x00000004 // Interrupt 34 enable
#define NVIC_EN1_INT35 0x00000008 // Interrupt 35 enable
#define NVIC_EN1_INT36 0x00000010 // Interrupt 36 enable
#define NVIC_EN1_INT37 0x00000020 // Interrupt 37 enable
#define NVIC_EN1_INT38 0x00000040 // Interrupt 38 enable
#define NVIC_EN1_INT39 0x00000080 // Interrupt 39 enable
#define NVIC_EN1_INT40 0x00000100 // Interrupt 40 enable
#define NVIC_EN1_INT41 0x00000200 // Interrupt 41 enable
#define NVIC_EN1_INT42 0x00000400 // Interrupt 42 enable
#define NVIC_EN1_INT43 0x00000800 // Interrupt 43 enable
#define NVIC_EN1_INT44 0x00001000 // Interrupt 44 enable
#define NVIC_EN1_INT45 0x00002000 // Interrupt 45 enable
#define NVIC_EN1_INT46 0x00004000 // Interrupt 46 enable
#define NVIC_EN1_INT47 0x00008000 // Interrupt 47 enable
#define NVIC_EN1_INT48 0x00010000 // Interrupt 48 enable
#define NVIC_EN1_INT49 0x00020000 // Interrupt 49 enable
#define NVIC_EN1_INT50 0x00040000 // Interrupt 50 enable
#define NVIC_EN1_INT51 0x00080000 // Interrupt 51 enable
#define NVIC_EN1_INT52 0x00100000 // Interrupt 52 enable
#define NVIC_EN1_INT53 0x00200000 // Interrupt 53 enable
#define NVIC_EN1_INT54 0x00400000 // Interrupt 54 enable
//*****************************************************************************
//
// The following are defines for the bit fields in the NVIC_DIS0 register.
//
//*****************************************************************************
#define NVIC_DIS0_INT_M 0xFFFFFFFF // Interrupt Disable
#define NVIC_DIS0_INT0 0x00000001 // Interrupt 0 disable
#define NVIC_DIS0_INT1 0x00000002 // Interrupt 1 disable
#define NVIC_DIS0_INT2 0x00000004 // Interrupt 2 disable
#define NVIC_DIS0_INT3 0x00000008 // Interrupt 3 disable
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -