⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mk40x256vmd100.h

📁 freescale k40/k60 cortex m4 library
💻 H
📖 第 1 页 / 共 5 页
字号:
/*
** ###################################################################
**     Processor:           MK40X256VMD100
**     Compilers:           Freescale C/C++ for Embedded ARM
**                          IAR ANSI C/C++ Compiler for ARM
**     Reference manual:    K40P144M100SF2RM, Rev. 3, 4 Nov 2010
**     Version:             rev. 1.0, 2011-01-14
**
**     Abstract:
**         This header file implements peripheral memory map for MK40X256VMD100
**         processor.
**
**     Copyright: 1997 - 2011 Freescale Semiconductor, Inc. All Rights Reserved.
**
**     http:                 www.freescale.com
**     mail:                 support@freescale.com
**
**     Revisions:
**     - rev. 0.1 (2010-04-10)
**         Initial version
**     - rev. 0.2 (2010-08-31)
**         TSI base address fixed
**     - rev. 0.3 (2010-09-05)
**         AXBS registers for unimplemented masters/slaves removed
**     - rev. 0.4 (2010-09-06)
**         Corrected operand type-cast in bit group REG_<regType>_<groupName>(x) macros according to MISRA rules.
**     - rev. 0.5 (2010-09-24)
**         Registers updated according to the new reference manual revision - Rev. 1, 10 Sept 2010
**         CRC - 16-bit registers joined to 32-bit registers
**         RTC - prefix of symbol for peripheral instance base addresses changed  SRTC -> RTC
**         LPTMR - change of register prefix - LPT0 -> LPTMR0
**         SPI - HCR register removed
**         TSI - STATUS register removed; THRESHLD0-15 registers removed; several bits of the SCANC register removed
**         USB - change of register prefix USBOTG -> USB
**     - rev. 0.6 (2010-10-01)
**         CAN - Message buffers registers added (#MTWX43663)
**         TSI - THRESHLD0-15 registers reverted back
**     - rev. 0.7 (2010-10-26)
**         Added new #define symbols <periphInstance>_<regType>(index1,2,...) for macros accessing register arrays with fixed peripheral base address.
**     - rev. 0.8 (2010-10-27)
**         Registers updated according to the new reference manual revision - Rev. 2, 15 Oct 2010
**         ADC - Peripheral register PGA bit definition has been fixed, bits PGALP, PGACHP removed.
**         CAN - Peripheral register MCR bit definition has been fixed, bit WAKSRC removed.
**         CRC - Peripheral register layout structure has been extended with 8/16-bit access to shadow registers.
**         CMP - Peripheral base pointer macro renamed from HSCMPx_BASE_PTR to CMPx_BASE_PTR.
**         DMA - Peripheral base pointer define macro name has been changed from eDMA_BASE_PTR to DMA_BASE_PTR.
**         GPIO - Port Output Enable Register (POER) renamed to Port Data Direction Register (PDDR), all POER related macros fixed to PDDR.
**         I2S - Prefix of register names changed from "I2S_" to "I2S0_".
**         LCD - Peripheral base pointer macro name has been changed from SLCD_BASE_PTR to LCD_BASE_PTR.
**         LCD - Peripheral register layout structure has been extended with 8-bit access to LCD waveform registers.
**         NV - Non-volatile Flash register FOPT bit definition redefined, FPROTx address and register names prefix fixed from "NV" to "F".
**         PDB - Peripheral register layout structure has been extended for Channel n and DAC n register array access (#MTWX44115).
**         PDB - Prefix of register accessor macro changed from "PDB_" to "PDB0_".
**         RFSYS - System regfile registers have been added (#MTWX43999)
**         RFVBAT - VBAT  regfile registers have been added (#MTWX43999)
**         RTC - Peripheral register CR bit definition has been fixed, bit OTE removed.
**         TSI - STATUS, SCANC register bit definition have been fixed, bit groups CAPTRM, DELVOL and AMCLKDIV added.
**         TSI - Prefix of register names changed from "TSI_" to "TSI0_".
**         USB - Peripheral base pointer define macro name has been changed USBOTG0_BASE_PTR to USB0_BASE_PTR.
**         USB - Prefix of register names changed from "USBOTG0_" to "USB0_".
**         VREF - Peripheral register TRM removed.
**     - rev. 0.9 (2010-11-11)
**         Registers updated according to the new reference manual revision - Rev. 3, 4 Nov 2010
**         CAN - Individual Matching Element Update (IMEU) feature has been removed.
**         CAN - Support for INT_CANx_IMEU, INT_CANx_Lost_Rx interrupts has been removed.
**         CAN - Peripheral register layout structure has been fixed, registers IMEUR, LRFR have been removed.
**         CAN - Peripheral register CTRL2 bit definition has been fixed, bits IMEUMASK, LOSTRMMSK, LOSTRLMSK, IMEUEN have been removed.
**         CAN - Peripheral register ESR2 bit definition has been fixed, bits IMEUF, LOSTRMF, LOSTRLF have been removed.
**         NV - Fixed offset address of BACKKEYx, FPROTx registers.
**         TSI - Peripheral register layout structure has been fixed, register WUCNTR has been removed.
**     - rev. 0.10 (2010-11-30)
**         EWM - Peripheral base pointer EWM_BASE_PTR address has been fixed from 0x4005F000u to 0x40061000u (#MTWX44776).
**     - rev. 0.11 (2010-12-17)
**         AIPS0, AIPS1 - Fixed offset of PACRE-PACRP registers (#MTWX45259).
**     - rev. 1.0 (2011-01-14)
**         Added BITBAND_REG() macro to provide access to register bits using bit band region.
**         Added checking of memory map version if two memory map files are included in a project (#MTWX45472).
**
** ###################################################################
*/

/*! \file MK40X256VMD100.h */
/*! \version 1.0 */
/*! \date 2011-01-14 */
/*! \brief Peripheral memory map for MK40X256VMD100 */
/*! \detailed This header file implements peripheral memory map for MK40X256VMD100
      processor. */


/* ----------------------------------------------------------------------------
   -- MCU activation
   ---------------------------------------------------------------------------- */

/* Prevention from multiple including the same memory map */
#if !defined(MCU_MK40X256VMD100)  /* Check if memory map has not been already included */
#define MCU_MK40X256VMD100

/* Check if another memory map has not been also included */
#if (defined(MCU_ACTIVE))
  #error MK40X256VMD100 memory map: There is already included another memory map. Only one memory map can be included.
#endif /* (defined(MCU_ACTIVE)) */
#define MCU_ACTIVE

#include <stdint.h>

/*! Memory map version 1.0 */
#define MCU_MEM_MAP_VERSION 0x0100u

/*!
 * \def BITBAND_REG(reg,bit)
 * \brief Macro to access a single bit of a peripheral register (bit band region 0x40000000 to 0x400FFFFF) using the bit-band alias region access.
 * \param Reg Register to access
 * \param Bit Bit number to access
 * \return Value of the targeted bit in the bit band region.
 */
#define BITBAND_REG(Reg,Bit) (*((uint32_t volatile*)(0x42000000u + (32u*((uint32_t)&(Reg) - (uint32_t)0x40000000u)) + (4u*((uint32_t)(Bit))))))

/* ----------------------------------------------------------------------------
   -- Interrupt vector numbers
   ---------------------------------------------------------------------------- */

/*! \addtogroup Interrupt_vector_numbers Interrupt vector numbers */
/*! \{ */

/*! Interrupt Number Definitions */
typedef enum {
  INT_Initial_Stack_Pointer    = 0,                /*!< Initial stack pointer */
  INT_Initial_Program_Counter  = 1,                /*!< Initial program counter */
  INT_NMI                      = 2,                /*!< Non-maskable interrupt */
  INT_Hard_Fault               = 3,                /*!< Hard fault exception */
  INT_Reserved4                = 4,                /*!< Reserved interrupt 4 */
  INT_Bus_Fault                = 5,                /*!< Bus fault exception */
  INT_Usage_Fault              = 6,                /*!< Usage fault exception */
  INT_Reserved7                = 7,                /*!< Reserved interrupt 7 */
  INT_Reserved8                = 8,                /*!< Reserved interrupt 8 */
  INT_Reserved9                = 9,                /*!< Reserved interrupt 9 */
  INT_Reserved10               = 10,               /*!< Reserved interrupt 10 */
  INT_SVCall                   = 11,               /*!< A supervisor call exception */
  INT_DebugMonitor             = 12,               /*!< Debug Monitor */
  INT_Reserved13               = 13,               /*!< Reserved interrupt 13 */
  INT_PendableSrvReq           = 14,               /*!< PendSV exception - request for system level service */
  INT_SysTick                  = 15,               /*!< SysTick Interrupt */
  INT_DMA0                     = 16,               /*!< DMA Channel 0 Transfer Complete */
  INT_DMA1                     = 17,               /*!< DMA Channel 1 Transfer Complete */
  INT_DMA2                     = 18,               /*!< DMA Channel 2 Transfer Complete */
  INT_DMA3                     = 19,               /*!< DMA Channel 3 Transfer Complete */
  INT_DMA4                     = 20,               /*!< DMA Channel 4 Transfer Complete */
  INT_DMA5                     = 21,               /*!< DMA Channel 5 Transfer Complete */
  INT_DMA6                     = 22,               /*!< DMA Channel 6 Transfer Complete */
  INT_DMA7                     = 23,               /*!< DMA Channel 7 Transfer Complete */
  INT_DMA8                     = 24,               /*!< DMA Channel 8 Transfer Complete */
  INT_DMA9                     = 25,               /*!< DMA Channel 9 Transfer Complete */
  INT_DMA10                    = 26,               /*!< DMA Channel 10 Transfer Complete */
  INT_DMA11                    = 27,               /*!< DMA Channel 11 Transfer Complete */
  INT_DMA12                    = 28,               /*!< DMA Channel 12 Transfer Complete */
  INT_DMA13                    = 29,               /*!< DMA Channel 13 Transfer Complete */
  INT_DMA14                    = 30,               /*!< DMA Channel 14 Transfer Complete */
  INT_DMA15                    = 31,               /*!< DMA Channel 15 Transfer Complete */
  INT_DMA_Error                = 32,               /*!< DMA Error Interrupt */
  INT_MCM                      = 33,               /*!< Normal Interrupt */
  INT_FTFL                     = 34,               /*!< FTFL Interrupt */
  INT_Read_Collision           = 35,               /*!< Read Collision Interrupt */
  INT_LVD_LVW                  = 36,               /*!< Low Voltage Detect, Low Voltage Warning */
  INT_LLW                      = 37,               /*!< Low Leakage Wakeup */
  INT_Watchdog                 = 38,               /*!< WDOG Interrupt */
  INT_Reserved39               = 39,               /*!< Reserved interrupt 39 */
  INT_I2C0                     = 40,               /*!< I2C0 interrupt */
  INT_I2C1                     = 41,               /*!< I2C1 interrupt */
  INT_SPI0                     = 42,               /*!< SPI0 Interrupt */
  INT_SPI1                     = 43,               /*!< SPI1 Interrupt */
  INT_SPI2                     = 44,               /*!< SPI2 Interrupt */
  INT_CAN0_ORed_Message_buffer = 45,               /*!< CAN0 OR'd Message Buffers Interrupt */
  INT_CAN0_Bus_Off             = 46,               /*!< CAN0 Bus Off Interrupt */
  INT_CAN0_Error               = 47,               /*!< CAN0 Error Interrupt */
  INT_CAN0_Tx_Warning          = 48,               /*!< CAN0 Tx Warning Interrupt */
  INT_CAN0_Rx_Warning          = 49,               /*!< CAN0 Rx Warning Interrupt */
  INT_CAN0_Wake_Up             = 50,               /*!< CAN0 Wake Up Interrupt */
  INT_Reserved51               = 51,               /*!< Reserved interrupt 51 */
  INT_Reserved52               = 52,               /*!< Reserved interrupt 52 */
  INT_CAN1_ORed_Message_buffer = 53,               /*!< CAN1 OR'd Message Buffers Interrupt */
  INT_CAN1_Bus_Off             = 54,               /*!< CAN1 Bus Off Interrupt */
  INT_CAN1_Error               = 55,               /*!< CAN1 Error Interrupt */
  INT_CAN1_Tx_Warning          = 56,               /*!< CAN1 Tx Warning Interrupt */
  INT_CAN1_Rx_Warning          = 57,               /*!< CAN1 Rx Warning Interrupt */
  INT_CAN1_Wake_Up             = 58,               /*!< CAN1 Wake Up Interrupt */
  INT_Reserved59               = 59,               /*!< Reserved interrupt 59 */
  INT_Reserved60               = 60,               /*!< Reserved interrupt 60 */
  INT_UART0_RX_TX              = 61,               /*!< UART0 Receive/Transmit interrupt */
  INT_UART0_ERR                = 62,               /*!< UART0 Error interrupt */
  INT_UART1_RX_TX              = 63,               /*!< UART1 Receive/Transmit interrupt */
  INT_UART1_ERR                = 64,               /*!< UART1 Error interrupt */
  INT_UART2_RX_TX              = 65,               /*!< UART2 Receive/Transmit interrupt */
  INT_UART2_ERR                = 66,               /*!< UART2 Error interrupt */
  INT_UART3_RX_TX              = 67,               /*!< UART3 Receive/Transmit interrupt */
  INT_UART3_ERR                = 68,               /*!< UART3 Error interrupt */
  INT_UART4_RX_TX              = 69,               /*!< UART4 Receive/Transmit interrupt */
  INT_UART4_ERR                = 70,               /*!< UART4 Error interrupt */
  INT_UART5_RX_TX              = 71,               /*!< UART5 Receive/Transmit interrupt */
  INT_UART5_ERR                = 72,               /*!< UART5 Error interrupt */
  INT_ADC0                     = 73,               /*!< ADC0 interrupt */
  INT_ADC1                     = 74,               /*!< ADC1 interrupt */
  INT_CMP0                     = 75,               /*!< CMP0 interrupt */
  INT_CMP1                     = 76,               /*!< CMP1 interrupt */
  INT_CMP2                     = 77,               /*!< CMP2 interrupt */
  INT_FTM0                     = 78,               /*!< FTM0 fault, overflow and channels interrupt */
  INT_FTM1                     = 79,               /*!< FTM1 fault, overflow and channels interrupt */
  INT_FTM2                     = 80,               /*!< FTM2 fault, overflow and channels interrupt */
  INT_CMT                      = 81,               /*!< CMT interrupt */
  INT_RTC                      = 82,               /*!< RTC interrupt */
  INT_Reserved83               = 83,               /*!< Reserved interrupt 83 */
  INT_PIT0                     = 84,               /*!< PIT timer channel 0 interrupt */
  INT_PIT1                     = 85,               /*!< PIT timer channel 1 interrupt */
  INT_PIT2                     = 86,               /*!< PIT timer channel 2 interrupt */
  INT_PIT3                     = 87,               /*!< PIT timer channel 3 interrupt */
  INT_PDB0                     = 88,               /*!< PDB0 Interrupt */
  INT_USB0                     = 89,               /*!< USB0 interrupt */
  INT_USBDCD                   = 90,               /*!< USBDCD Interrupt */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -