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

📄 landzo

📁 【开源】线性CCD自适应性算法攻略
💻
📖 第 1 页 / 共 5 页
字号:
      - Core Register
      - Core NVIC Register
      - Core SCB Register
      - Core SysTick Register
      - Core Debug Register
      - Core MPU Register
      - Core FPU Register
    */

    /** \ingroup  CMSIS_core_register
        \defgroup CMSIS_CORE CMSIS Core
      Type definitions for the Cortex-M Core Registers
      @{
     */

    /** \brief  Union type to access the Application Program Status Register (APSR).
     */
    typedef union
    {
        struct
        {
#if (__CORTEX_M != 0x04)
            uint32_t _reserved0: 27;             /*!< bit:  0..26  Reserved                           */
#else
            uint32_t _reserved0: 16;             /*!< bit:  0..15  Reserved                           */
            uint32_t GE: 4;                      /*!< bit: 16..19  Greater than or Equal flags        */
            uint32_t _reserved1: 7;              /*!< bit: 20..26  Reserved                           */
#endif
            uint32_t Q: 1;                       /*!< bit:     27  Saturation condition flag          */
            uint32_t V: 1;                       /*!< bit:     28  Overflow condition code flag       */
            uint32_t C: 1;                       /*!< bit:     29  Carry condition code flag          */
            uint32_t Z: 1;                       /*!< bit:     30  Zero condition code flag           */
            uint32_t N: 1;                       /*!< bit:     31  Negative condition code flag       */
        } b;                                   /*!< Structure used for bit  access                  */
        uint32_t w;                            /*!< Type      used for word access                  */
    } APSR_Type;


    /** \brief  Union type to access the Interrupt Program Status Register (IPSR).
     */
    typedef union
    {
        struct
        {
            uint32_t ISR: 9;                     /*!< bit:  0.. 8  Exception number                   */
            uint32_t _reserved0: 23;             /*!< bit:  9..31  Reserved                           */
        } b;                                   /*!< Structure used for bit  access                  */
        uint32_t w;                            /*!< Type      used for word access                  */
    } IPSR_Type;


    /** \brief  Union type to access the Special-Purpose Program Status Registers (xPSR).
     */
    typedef union
    {
        struct
        {
            uint32_t ISR: 9;                     /*!< bit:  0.. 8  Exception number                   */
#if (__CORTEX_M != 0x04)
            uint32_t _reserved0: 15;             /*!< bit:  9..23  Reserved                           */
#else
            uint32_t _reserved0: 7;              /*!< bit:  9..15  Reserved                           */
            uint32_t GE: 4;                      /*!< bit: 16..19  Greater than or Equal flags        */
            uint32_t _reserved1: 4;              /*!< bit: 20..23  Reserved                           */
#endif
            uint32_t T: 1;                       /*!< bit:     24  Thumb bit        (read 0)          */
            uint32_t IT: 2;                      /*!< bit: 25..26  saved IT state   (read 0)          */
            uint32_t Q: 1;                       /*!< bit:     27  Saturation condition flag          */
            uint32_t V: 1;                       /*!< bit:     28  Overflow condition code flag       */
            uint32_t C: 1;                       /*!< bit:     29  Carry condition code flag          */
            uint32_t Z: 1;                       /*!< bit:     30  Zero condition code flag           */
            uint32_t N: 1;                       /*!< bit:     31  Negative condition code flag       */
        } b;                                   /*!< Structure used for bit  access                  */
        uint32_t w;                            /*!< Type      used for word access                  */
    } xPSR_Type;


    /** \brief  Union type to access the Control Registers (CONTROL).
     */
    typedef union
    {
        struct
        {
            uint32_t nPRIV: 1;                   /*!< bit:      0  Execution privilege in Thread mode */
            uint32_t SPSEL: 1;                   /*!< bit:      1  Stack to be used                   */
            uint32_t FPCA: 1;                    /*!< bit:      2  FP extension active flag           */
            uint32_t _reserved0: 29;             /*!< bit:  3..31  Reserved                           */
        } b;                                   /*!< Structure used for bit  access                  */
        uint32_t w;                            /*!< Type      used for word access                  */
    } CONTROL_Type;

    /*@} end of group CMSIS_CORE */


    /** \ingroup  CMSIS_core_register
        \defgroup CMSIS_NVIC CMSIS NVIC
      Type definitions for the Cortex-M NVIC Registers
      @{
     */

    /** \brief  Structure type to access the Nested Vectored Interrupt Controller (NVIC).
     */
    typedef struct
    {
        __IO uint32_t ISER[8];                 /*!< Offset: 0x000 (R/W)  Interrupt Set Enable Register           */
        uint32_t RESERVED0[24];
        __IO uint32_t ICER[8];                 /*!< Offset: 0x080 (R/W)  Interrupt Clear Enable Register         */
        uint32_t RSERVED1[24];
        __IO uint32_t ISPR[8];                 /*!< Offset: 0x100 (R/W)  Interrupt Set Pending Register          */
        uint32_t RESERVED2[24];
        __IO uint32_t ICPR[8];                 /*!< Offset: 0x180 (R/W)  Interrupt Clear Pending Register        */
        uint32_t RESERVED3[24];
        __IO uint32_t IABR[8];                 /*!< Offset: 0x200 (R/W)  Interrupt Active bit Register           */
        uint32_t RESERVED4[56];
        __IO uint8_t  IP[240];                 /*!< Offset: 0x300 (R/W)  Interrupt Priority Register (8Bit wide) */
        uint32_t RESERVED5[644];
        __O  uint32_t STIR;                    /*!< Offset: 0xE00 ( /W)  Software Trigger Interrupt Register     */
    }  NVIC_Type;

    /* Software Triggered Interrupt Register Definitions */
#define NVIC_STIR_INTID_Pos                 0                                          /*!< STIR: INTLINESNUM Position */
#define NVIC_STIR_INTID_Msk                (0x1FFUL << NVIC_STIR_INTID_Pos)            /*!< STIR: INTLINESNUM Mask */

    /*@} end of group CMSIS_NVIC */


    /** \ingroup  CMSIS_core_register
        \defgroup CMSIS_SCB CMSIS SCB
      Type definitions for the Cortex-M System Control Block Registers
      @{
     */

    /** \brief  Structure type to access the System Control Block (SCB).
     */
    typedef struct
    {
        __I  uint32_t CPUID;                   /*!< Offset: 0x000 (R/ )  CPUID Base Register                                   */
        __IO uint32_t ICSR;                    /*!< Offset: 0x004 (R/W)  Interrupt Control and State Register                  */
        __IO uint32_t VTOR;                    /*!< Offset: 0x008 (R/W)  Vector Table Offset Register                          */
        __IO uint32_t AIRCR;                   /*!< Offset: 0x00C (R/W)  Application Interrupt and Reset Control Register      */
        __IO uint32_t SCR;                     /*!< Offset: 0x010 (R/W)  System Control Register                               */
        __IO uint32_t CCR;                     /*!< Offset: 0x014 (R/W)  Configuration Control Register                        */
        __IO uint8_t  SHP[12];                 /*!< Offset: 0x018 (R/W)  System Handlers Priority Registers (4-7, 8-11, 12-15) */
        __IO uint32_t SHCSR;                   /*!< Offset: 0x024 (R/W)  System Handler Control and State Register             */
        __IO uint32_t CFSR;                    /*!< Offset: 0x028 (R/W)  Configurable Fault Status Register                    */
        __IO uint32_t HFSR;                    /*!< Offset: 0x02C (R/W)  HardFault Status Register                             */
        __IO uint32_t DFSR;                    /*!< Offset: 0x030 (R/W)  Debug Fault Status Register                           */
        __IO uint32_t MMFAR;                   /*!< Offset: 0x034 (R/W)  MemManage Fault Address Register                      */
        __IO uint32_t BFAR;                    /*!< Offset: 0x038 (R/W)  BusFault Address Register                             */
        __IO uint32_t AFSR;                    /*!< Offset: 0x03C (R/W)  Auxiliary Fault Status Register                       */
        __I  uint32_t PFR[2];                  /*!< Offset: 0x040 (R/ )  Processor Feature Register                            */
        __I  uint32_t DFR;                     /*!< Offset: 0x048 (R/ )  Debug Feature Register                                */
        __I  uint32_t ADR;                     /*!< Offset: 0x04C (R/ )  Auxiliary Feature Register                            */
        __I  uint32_t MMFR[4];                 /*!< Offset: 0x050 (R/ )  Memory Model Feature Register                         */
        __I  uint32_t ISAR[5];                 /*!< Offset: 0x060 (R/ )  Instruction Set Attributes Register                   */
        uint32_t RESERVED0[5];
        __IO uint32_t CPACR;                   /*!< Offset: 0x088 (R/W)  Coprocessor Access Control Register                   */
    } SCB_Type;

    /* SCB CPUID Register Definitions */
#define SCB_CPUID_IMPLEMENTER_Pos          24                                             /*!< SCB CPUID: IMPLEMENTER Position */
#define SCB_CPUID_IMPLEMENTER_Msk          (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos)          /*!< SCB CPUID: IMPLEMENTER Mask */

#define SCB_CPUID_VARIANT_Pos              20                                             /*!< SCB CPUID: VARIANT Position */
#define SCB_CPUID_VARIANT_Msk              (0xFUL << SCB_CPUID_VARIANT_Pos)               /*!< SCB CPUID: VARIANT Mask */

#define SCB_CPUID_ARCHITECTURE_Pos         16                                             /*!< SCB CPUID: ARCHITECTURE Position */
#define SCB_CPUID_ARCHITECTURE_Msk         (0xFUL << SCB_CPUID_ARCHITECTURE_Pos)          /*!< SCB CPUID: ARCHITECTURE Mask */

#define SCB_CPUID_PARTNO_Pos                4                                             /*!< SCB CPUID: PARTNO Position */
#define SCB_CPUID_PARTNO_Msk               (0xFFFUL << SCB_CPUID_PARTNO_Pos)              /*!< SCB CPUID: PARTNO Mask */

#define SCB_CPUID_REVISION_Pos              0                                             /*!< SCB CPUID: REVISION Position */
#define SCB_CPUID_REVISION_Msk             (0xFUL << SCB_CPUID_REVISION_Pos)              /*!< SCB CPUID: REVISION Mask */

    /* SCB Interrupt Control State Register Definitions */
#define SCB_ICSR_NMIPENDSET_Pos            31                                             /*!< SCB ICSR: NMIPENDSET Position */
#define SCB_ICSR_NMIPENDSET_Msk            (1UL << SCB_ICSR_NMIPENDSET_Pos)               /*!< SCB ICSR: NMIPENDSET Mask */

#define SCB_ICSR_PENDSVSET_Pos             28                                             /*!< SCB ICSR: PENDSVSET Position */
#define SCB_ICSR_PENDSVSET_Msk             (1UL << SCB_ICSR_PENDSVSET_Pos)                /*!< SCB ICSR: PENDSVSET Mask */

#define SCB_ICSR_PENDSVCLR_Pos             27                                             /*!< SCB ICSR: PENDSVCLR Position */
#define SCB_ICSR_PENDSVCLR_Msk             (1UL << SCB_ICSR_PENDSVCLR_Pos)                /*!< SCB ICSR: PENDSVCLR Mask */

#define SCB_ICSR_PENDSTSET_Pos             26                                             /*!< SCB ICSR: PENDSTSET Position */
#define SCB_ICSR_PENDSTSET_Msk             (1UL << SCB_ICSR_PENDSTSET_Pos)                /*!< SCB ICSR: PENDSTSET Mask */

#define SCB_ICSR_PENDSTCLR_Pos             25                                             /*!< SCB ICSR: PENDSTCLR Position */
#define SCB_ICSR_PENDSTCLR_Msk             (1UL << SCB_ICSR_PENDSTCLR_Pos)                /*!< SCB ICSR: PENDSTCLR Mask */

#define SCB_ICSR_ISRPREEMPT_Pos            23                                             /*!< SCB ICSR: ISRPREEMPT Position */
#define SCB_ICSR_ISRPREEMPT_Msk            (1UL << SCB_ICSR_ISRPREEMPT_Pos)               /*!< SCB ICSR: ISRPREEMPT Mask */

#define SCB_ICSR_ISRPENDING_Pos            22                                             /*!< SCB ICSR: ISRPENDING Position */
#define SCB_ICSR_ISRPENDING_Msk            (1UL << SCB_ICSR_ISRPENDING_Pos)               /*!< SCB ICSR: ISRPENDING Mask */

#define SCB_ICSR_VECTPENDING_Pos           12                                             /*!< SCB ICSR: VECTPENDING Position */
#define SCB_ICSR_VECTPENDING_Msk           (0x1FFUL << SCB_ICSR_VECTPENDING_Pos)          /*!< SCB ICSR: VECTPENDING Mask */

⌨️ 快捷键说明

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