mirror of
https://github.com/digistump/DigistumpArduino.git
synced 2025-04-28 23:59:01 -07:00
114 lines
5.1 KiB
C
114 lines
5.1 KiB
C
![]() |
/**************************************************************************//**
|
||
|
* @file ARMCM3.h
|
||
|
* @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File
|
||
|
* for CM3 Device Series
|
||
|
* @version V1.05
|
||
|
* @date 26. July 2011
|
||
|
*
|
||
|
* @note
|
||
|
* Copyright (C) 2010-2011 ARM Limited. All rights reserved.
|
||
|
*
|
||
|
* @par
|
||
|
* ARM Limited (ARM) is supplying this software for use with Cortex-M
|
||
|
* processor based microcontrollers. This file can be freely distributed
|
||
|
* within development tools that are supporting such ARM based processors.
|
||
|
*
|
||
|
* @par
|
||
|
* 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.
|
||
|
*
|
||
|
******************************************************************************/
|
||
|
|
||
|
|
||
|
#ifndef ARMCM3_H
|
||
|
#define ARMCM3_H
|
||
|
|
||
|
/*
|
||
|
* ==========================================================================
|
||
|
* ---------- Interrupt Number Definition -----------------------------------
|
||
|
* ==========================================================================
|
||
|
*/
|
||
|
|
||
|
typedef enum IRQn
|
||
|
{
|
||
|
/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/
|
||
|
NonMaskableInt_IRQn = -14, /*!< 2 Cortex-M3 Non Maskable Interrupt */
|
||
|
HardFault_IRQn = -13, /*!< 3 Cortex-M3 Hard Fault Interrupt */
|
||
|
MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
|
||
|
BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
|
||
|
UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
|
||
|
SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
|
||
|
DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
|
||
|
PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
|
||
|
SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
|
||
|
|
||
|
/****** ARMCM3 specific Interrupt Numbers ********************************************************/
|
||
|
GPIO_IRQn = 0 /*!< GPIO Interrupt */
|
||
|
} IRQn_Type;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ==========================================================================
|
||
|
* ----------- Processor and Core Peripheral Section ------------------------
|
||
|
* ==========================================================================
|
||
|
*/
|
||
|
|
||
|
/* Configuration of the Cortex-M3 Processor and Core Peripherals */
|
||
|
#define __CM3_REV 0x0201 /*!< Core Revision r2p1 */
|
||
|
#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 */
|
||
|
|
||
|
|
||
|
#include <core_cm3.h> /* Cortex-M3 processor and core peripherals */
|
||
|
#include "system_ARMCM3.h" /* System Header */
|
||
|
|
||
|
|
||
|
/******************************************************************************/
|
||
|
/* Device Specific Peripheral registers structures */
|
||
|
/******************************************************************************/
|
||
|
|
||
|
/*--------------------- General Purpose Input and Ouptut ---------------------*/
|
||
|
typedef union
|
||
|
{
|
||
|
__IO uint32_t WORD;
|
||
|
__IO uint8_t BYTE[4];
|
||
|
} GPIO_Data_TypeDef;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
GPIO_Data_TypeDef DATA [256];
|
||
|
__O uint32_t DIR;
|
||
|
uint32_t RESERVED[3];
|
||
|
__O uint32_t IE;
|
||
|
} ARM_GPIO_TypeDef;
|
||
|
|
||
|
|
||
|
/******************************************************************************/
|
||
|
/* Peripheral memory map */
|
||
|
/******************************************************************************/
|
||
|
/* Peripheral and SRAM base address */
|
||
|
#define ARM_SRAM_BASE (( uint32_t)0x20000000UL)
|
||
|
#define ARM_PERIPH_BASE (( uint32_t)0x40000000UL)
|
||
|
|
||
|
/* Peripheral memory map */
|
||
|
#define ARM_GPIO_BASE ARM_PERIPH_BASE
|
||
|
|
||
|
#define ARM_GPIO0_BASE (ARM_GPIO_BASE)
|
||
|
#define ARM_GPIO1_BASE (ARM_GPIO_BASE + 0x0800UL)
|
||
|
#define ARM_GPIO2_BASE (ARM_GPIO_BASE + 0x1000UL)
|
||
|
|
||
|
|
||
|
/******************************************************************************/
|
||
|
/* Peripheral declaration */
|
||
|
/******************************************************************************/
|
||
|
#define ARM_GPIO0 ((ARM_GPIO_TypeDef *) ARM_GPIO0_BASE)
|
||
|
#define ARM_GPIO1 ((ARM_GPIO_TypeDef *) ARM_GPIO1_BASE)
|
||
|
#define ARM_GPIO2 ((ARM_GPIO_TypeDef *) ARM_GPIO2_BASE)
|
||
|
|
||
|
|
||
|
#endif /* ARMCM3_H */
|