| |
| /****************************************************************************************************//** |
| * @file ARM_Example.h |
| * |
| * @brief CMSIS Cortex-M3 Peripheral Access Layer Header File for |
| * ARM_Example from ARM Ltd.. |
| * |
| * @version V1.2 |
| * @date 16. April 2014 |
| * |
| * @note Generated with SVDConv V2.81e |
| * from CMSIS SVD File 'ARM_Example.svd' Version 1.2, |
| * |
| * @par ARM Limited (ARM) is supplying this software for use with Cortex-M |
| * processor based microcontroller, but can be equally used for other |
| * suitable processor architectures. This file can be freely distributed. |
| * Modifications to this file shall be clearly marked. |
| * |
| * THIS SOFTWARE IS PROVIDED "AS IS". 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. |
| * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR |
| * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. |
| * |
| *******************************************************************************************************/ |
| |
| |
| |
| /** @addtogroup ARM Ltd. |
| * @{ |
| */ |
| |
| /** @addtogroup ARM_Example |
| * @{ |
| */ |
| |
| #ifndef ARM_EXAMPLE_H |
| #define ARM_EXAMPLE_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| /* ------------------------- Interrupt Number Definition ------------------------ */ |
| |
| typedef enum { |
| /* ------------------- Cortex-M3 Processor Exceptions Numbers ------------------- */ |
| Reset_IRQn = -15, /*!< 1 Reset Vector, invoked on Power up and warm reset */ |
| NonMaskableInt_IRQn = -14, /*!< 2 Non maskable Interrupt, cannot be stopped or preempted */ |
| HardFault_IRQn = -13, /*!< 3 Hard Fault, all classes of Fault */ |
| MemoryManagement_IRQn = -12, /*!< 4 Memory Management, MPU mismatch, including Access Violation |
| and No Match */ |
| BusFault_IRQn = -11, /*!< 5 Bus Fault, Pre-Fetch-, Memory Access Fault, other address/memory |
| related Fault */ |
| UsageFault_IRQn = -10, /*!< 6 Usage Fault, i.e. Undef Instruction, Illegal State Transition */ |
| SVCall_IRQn = -5, /*!< 11 System Service Call via SVC instruction */ |
| DebugMonitor_IRQn = -4, /*!< 12 Debug Monitor */ |
| PendSV_IRQn = -2, /*!< 14 Pendable request for system service */ |
| SysTick_IRQn = -1, /*!< 15 System Tick Timer */ |
| /* ------------------- ARM_Example Specific Interrupt Numbers ------------------- */ |
| TIMER0_IRQn = 0, /*!< 0 TIMER0 */ |
| TIMER1_IRQn = 4, /*!< 4 TIMER1 */ |
| TIMER2_IRQn = 6 /*!< 6 TIMER2 */ |
| } IRQn_Type; |
| |
| |
| /** @addtogroup Configuration_of_CMSIS |
| * @{ |
| */ |
| |
| |
| /* ================================================================================ */ |
| /* ================ Processor and Core Peripheral Section ================ */ |
| /* ================================================================================ */ |
| |
| /* ----------------Configuration of the Cortex-M3 Processor and Core Peripherals---------------- */ |
| #define __CM3_REV 0x0100 /*!< Cortex-M3 Core Revision */ |
| #define __MPU_PRESENT 1 /*!< MPU present or not */ |
| #define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */ |
| #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ |
| /** @} */ /* End of group Configuration_of_CMSIS */ |
| |
| #include "core_cm3.h" /*!< Cortex-M3 processor and core peripherals */ |
| #include "system_ARMCM3.h" /*!< ARM_Example System */ |
| |
| |
| /* ================================================================================ */ |
| /* ================ Device Specific Peripheral Section ================ */ |
| /* ================================================================================ */ |
| |
| |
| /** @addtogroup Device_Peripheral_Registers |
| * @{ |
| */ |
| |
| |
| /* ------------------- Start of section using anonymous unions ------------------ */ |
| #if defined(__CC_ARM) |
| #pragma push |
| #pragma anon_unions |
| #elif defined(__ICCARM__) |
| #pragma language=extended |
| #elif defined(__GNUC__) |
| /* anonymous unions are enabled by default */ |
| #elif defined(__TMS470__) |
| /* anonymous unions are enabled by default */ |
| #elif defined(__TASKING__) |
| #pragma warning 586 |
| #else |
| #warning Not supported compiler type |
| #endif |
| |
| |
| |
| /* ================================================================================ */ |
| /* ================ TIMER0 ================ */ |
| /* ================================================================================ */ |
| |
| |
| /** |
| * @brief 32 Timer / Counter, counting up or down from different sources (TIMER0) |
| */ |
| |
| typedef struct { /*!< TIMER0 Structure */ |
| __IO uint32_t CR; /*!< Control Register */ |
| __IO uint16_t SR; /*!< Status Register */ |
| __I uint16_t RESERVED0[5]; |
| __IO uint16_t INT; /*!< Interrupt Register */ |
| __I uint16_t RESERVED1[7]; |
| __IO uint32_t COUNT; /*!< The Counter Register reflects the actual Value of the Timer/Counter */ |
| __IO uint32_t MATCH; /*!< The Match Register stores the compare Value for the MATCH condition */ |
| |
| union { |
| __O uint32_t PRESCALE_WR; /*!< The Prescale Register stores the Value for the prescaler. The |
| cont event gets divided by this value */ |
| __I uint32_t PRESCALE_RD; /*!< The Prescale Register stores the Value for the prescaler. The |
| cont event gets divided by this value */ |
| }; |
| __I uint32_t RESERVED2[9]; |
| __IO uint32_t RELOAD[4]; /*!< The Reload Register stores the Value the COUNT Register gets |
| reloaded on a when a condition was met. */ |
| } TIMER0_Type; |
| |
| |
| /* -------------------- End of section using anonymous unions ------------------- */ |
| #if defined(__CC_ARM) |
| #pragma pop |
| #elif defined(__ICCARM__) |
| /* leave anonymous unions enabled */ |
| #elif defined(__GNUC__) |
| /* anonymous unions are enabled by default */ |
| #elif defined(__TMS470__) |
| /* anonymous unions are enabled by default */ |
| #elif defined(__TASKING__) |
| #pragma warning restore |
| #else |
| #warning Not supported compiler type |
| #endif |
| |
| |
| |
| |
| /* ================================================================================ */ |
| /* ================ Peripheral memory map ================ */ |
| /* ================================================================================ */ |
| |
| #define TIMER0_BASE 0x40010000UL |
| #define TIMER1_BASE 0x40010100UL |
| #define TIMER2_BASE 0x40010200UL |
| |
| |
| /* ================================================================================ */ |
| /* ================ Peripheral declaration ================ */ |
| /* ================================================================================ */ |
| |
| #define TIMER0 ((TIMER0_Type *) TIMER0_BASE) |
| #define TIMER1 ((TIMER0_Type *) TIMER1_BASE) |
| #define TIMER2 ((TIMER0_Type *) TIMER2_BASE) |
| |
| |
| /** @} */ /* End of group Device_Peripheral_Registers */ |
| /** @} */ /* End of group ARM_Example */ |
| /** @} */ /* End of group ARM Ltd. */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| #endif /* ARM_Example_H */ |
| |