/******************************************************************************* | |
* (c) Copyright 2009 Actel Corporation. All rights reserved. | |
* | |
* SmartFusion A2FxxxM3 Cortex Microcontroller Software Interface - Peripheral | |
* Access Layer. | |
* | |
* This file describes the interrupt assignment and peripheral registers for | |
* the SmartFusion A2FxxxM3 familly of devices. | |
* | |
* SVN $Revision: 2331 $ | |
* SVN $Date: 2010-02-26 12:02:06 +0000 (Fri, 26 Feb 2010) $ | |
*/ | |
#ifndef __A2FXXXM3_H__ | |
#define __A2FXXXM3_H__ | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
/* | |
* ========================================================================== | |
* ---------- Interrupt Number Definition ----------------------------------- | |
* ========================================================================== | |
*/ | |
typedef enum IRQn | |
{ | |
/****** Cortex-M3 Processor Exceptions Numbers *********************************************************/ | |
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ | |
HardFault_IRQn = -13, /*!< 2 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 */ | |
/****** SmartFusion specific Interrupt Numbers *********************************************************/ | |
WdogWakeup_IRQn = 0, /*!< WatchDog wakeup interrupt */ | |
BrownOut_1_5V_IRQn = 1, /*!< Supply dropped below 1.5V */ | |
BrownOut_3_3V_IRQn = 2, /*!< Supply dropped below 1.5V */ | |
RTC_Match_IRQn = 3, /*!< RTC match interrupt */ | |
RTCIF_Pub_IRQn = 4, /*!< RTC interface push button interrupt */ | |
EthernetMAC_IRQn = 5, /*!< Ethernet MAC interrupt */ | |
IAP_IRQn = 6, /*!< In Application Programming (IAP) interrupt */ | |
ENVM0_IRQn = 7, /*!< eNVM0 operation completion interrupt */ | |
ENVM1_IRQn = 8, /*!< eNVM1 operation completion interrupt */ | |
DMA_IRQn = 9, /*!< Peripheral DMA interrupt */ | |
UART0_IRQn = 10, /*!< UART0 interrupt */ | |
UART1_IRQn = 11, /*!< UART1 interrupt */ | |
SPI0_IRQn = 12, /*!< SPI0 interrupt */ | |
SPI1_IRQn = 13, /*!< SP1 interrupt */ | |
I2C0_IRQn = 14, /*!< I2C0 interrupt */ | |
I2C0_SMBAlert_IRQn = 15, /*!< I2C0 SMBus Alert interrupt */ | |
I2C0_SMBus_IRQn = 16, /*!< I2C0 SMBus Suspend interrupt */ | |
I2C1_IRQn = 17, /*!< I2C1 interrupt */ | |
I2C1_SMBAlert_IRQn = 18, /*!< I2C1 SMBus Alert interrupt */ | |
I2C1_SMBus_IRQn = 19, /*!< I2C1 SMBus Suspend interrupt */ | |
Timer1_IRQn = 20, /*!< Timer1 interrupt */ | |
Timer2_IRQn = 21, /*!< Timer2 interrupt */ | |
PLL_Lock_IRQn = 22, /*!< PLL lock interrupt */ | |
PLL_LockLost_IRQn = 23, /*!< PLL loss of lock interrupt */ | |
CommError_IRQn = 24, /*!< Communications Matrix error interrupt */ | |
Fabric_IRQn = 31, /*!< FPGA fabric interrupt */ | |
GPIO0_IRQn = 32, /*!< GPIO 0 interrupt */ | |
GPIO1_IRQn = 33, /*!< GPIO 1 interrupt */ | |
GPIO2_IRQn = 34, /*!< GPIO 2 interrupt */ | |
GPIO3_IRQn = 35, /*!< GPIO 3 interrupt */ | |
GPIO4_IRQn = 36, /*!< GPIO 4 interrupt */ | |
GPIO5_IRQn = 37, /*!< GPIO 5 interrupt */ | |
GPIO6_IRQn = 38, /*!< GPIO 6 interrupt */ | |
GPIO7_IRQn = 39, /*!< GPIO 7 interrupt */ | |
GPIO8_IRQn = 40, /*!< GPIO 8 interrupt */ | |
GPIO9_IRQn = 41, /*!< GPIO 9 interrupt */ | |
GPIO10_IRQn = 42, /*!< GPIO 10 interrupt */ | |
GPIO11_IRQn = 43, /*!< GPIO 11 interrupt */ | |
GPIO12_IRQn = 44, /*!< GPIO 12 interrupt */ | |
GPIO13_IRQn = 45, /*!< GPIO 13 interrupt */ | |
GPIO14_IRQn = 46, /*!< GPIO 14 interrupt */ | |
GPIO15_IRQn = 47, /*!< GPIO 15 interrupt */ | |
GPIO16_IRQn = 48, /*!< GPIO 16 interrupt */ | |
GPIO17_IRQn = 49, /*!< GPIO 17 interrupt */ | |
GPIO18_IRQn = 50, /*!< GPIO 18 interrupt */ | |
GPIO19_IRQn = 51, /*!< GPIO 19 interrupt */ | |
GPIO20_IRQn = 52, /*!< GPIO 20 interrupt */ | |
GPIO21_IRQn = 53, /*!< GPIO 21 interrupt */ | |
GPIO22_IRQn = 54, /*!< GPIO 22 interrupt */ | |
GPIO23_IRQn = 55, /*!< GPIO 23 interrupt */ | |
GPIO24_IRQn = 56, /*!< GPIO 24 interrupt */ | |
GPIO25_IRQn = 57, /*!< GPIO 25 interrupt */ | |
GPIO26_IRQn = 58, /*!< GPIO 26 interrupt */ | |
GPIO27_IRQn = 59, /*!< GPIO 27 interrupt */ | |
GPIO28_IRQn = 60, /*!< GPIO 28 interrupt */ | |
GPIO29_IRQn = 61, /*!< GPIO 29 interrupt */ | |
GPIO30_IRQn = 62, /*!< GPIO 30 interrupt */ | |
GPIO31_IRQn = 63, /*!< GPIO 31 interrupt */ | |
ACE_PC0_Flag0_IRQn = 64, /*!< ACE SSE program counter 0 flag 0 interrupt */ | |
ACE_PC0_Flag1_IRQn = 65, /*!< ACE SSE program counter 0 flag 1 interrupt */ | |
ACE_PC0_Flag2_IRQn = 66, /*!< ACE SSE program counter 0 flag 2 interrupt */ | |
ACE_PC0_Flag3_IRQn = 67, /*!< ACE SSE program counter 0 flag 3 interrupt */ | |
ACE_PC1_Flag0_IRQn = 68, /*!< ACE SSE program counter 1 flag 0 interrupt */ | |
ACE_PC1_Flag1_IRQn = 69, /*!< ACE SSE program counter 1 flag 1 interrupt */ | |
ACE_PC1_Flag2_IRQn = 70, /*!< ACE SSE program counter 1 flag 2 interrupt */ | |
ACE_PC1_Flag3_IRQn = 71, /*!< ACE SSE program counter 1 flag 3 interrupt */ | |
ACE_PC2_Flag0_IRQn = 72, /*!< ACE SSE program counter 2 flag 0 interrupt */ | |
ACE_PC2_Flag1_IRQn = 73, /*!< ACE SSE program counter 2 flag 1 interrupt */ | |
ACE_PC2_Flag2_IRQn = 74, /*!< ACE SSE program counter 2 flag 2 interrupt */ | |
ACE_PC2_Flag3_IRQn = 75, /*!< ACE SSE program counter 2 flag 3 interrupt */ | |
ACE_ADC0_DataValid_IRQn = 76, /*!< ACE ADC0 data valid interrupt */ | |
ACE_ADC1_DataValid_IRQn = 77, /*!< ACE ADC1 data valid interrupt */ | |
ACE_ADC2_DataValid_IRQn = 78, /*!< ACE ADC2 data valid interrupt */ | |
ACE_ADC0_CalDone_IRQn = 79, /*!< ACE ADC0 calibration done interrupt */ | |
ACE_ADC1_CalDone_IRQn = 80, /*!< ACE ADC1 calibration done interrupt */ | |
ACE_ADC2_CalDone_IRQn = 81, /*!< ACE ADC2 calibration done interrupt */ | |
ACE_ADC0_CalStart_IRQn = 82, /*!< ACE ADC0 calibration start interrupt */ | |
ACE_ADC1_CalStart_IRQn = 83, /*!< ACE ADC1 calibration start interrupt */ | |
ACE_ADC2_CalStart_IRQn = 84, /*!< ACE ADC2 calibration start interrupt */ | |
ACE_Comp0_Fall_IRQn = 85, /*!< ACE comparator 0 falling under reference interrupt */ | |
ACE_Comp1_Fall_IRQn = 86, /*!< ACE comparator 1 falling under reference interrupt */ | |
ACE_Comp2_Fall_IRQn = 87, /*!< ACE comparator 2 falling under reference interrupt */ | |
ACE_Comp3_Fall_IRQn = 88, /*!< ACE comparator 3 falling under reference interrupt */ | |
ACE_Comp4_Fall_IRQn = 89, /*!< ACE comparator 4 falling under reference interrupt */ | |
ACE_Comp5_Fall_IRQn = 90, /*!< ACE comparator 5 falling under reference interrupt */ | |
ACE_Comp6_Fall_IRQn = 91, /*!< ACE comparator 6 falling under reference interrupt */ | |
ACE_Comp7_Fall_IRQn = 92, /*!< ACE comparator 7 falling under reference interrupt */ | |
ACE_Comp8_Fall_IRQn = 93, /*!< ACE comparator 8 falling under reference interrupt */ | |
ACE_Comp9_Fall_IRQn = 94, /*!< ACE comparator 9 falling under reference interrupt */ | |
ACE_Comp10_Fall_IRQn = 95, /*!< ACE comparator 10 falling under reference interrupt */ | |
ACE_Comp11_Fall_IRQn = 96, /*!< ACE comparator 11 falling under reference interrupt */ | |
ACE_Comp0_Rise_IRQn = 97, /*!< ACE comparator 0 rising over reference interrupt */ | |
ACE_Comp1_Rise_IRQn = 98, /*!< ACE comparator 1 rising over reference interrupt */ | |
ACE_Comp2_Rise_IRQn = 99, /*!< ACE comparator 2 rising over reference interrupt */ | |
ACE_Comp3_Rise_IRQn = 100, /*!< ACE comparator 3 rising over reference interrupt */ | |
ACE_Comp4_Rise_IRQn = 101, /*!< ACE comparator 4 rising over reference interrupt */ | |
ACE_Comp5_Rise_IRQn = 102, /*!< ACE comparator 5 rising over reference interrupt */ | |
ACE_Comp6_Rise_IRQn = 103, /*!< ACE comparator 6 rising over reference interrupt */ | |
ACE_Comp7_Rise_IRQn = 104, /*!< ACE comparator 7 rising over reference interrupt */ | |
ACE_Comp8_Rise_IRQn = 105, /*!< ACE comparator 8 rising over reference interrupt */ | |
ACE_Comp9_Rise_IRQn = 106, /*!< ACE comparator 9 rising over reference interrupt */ | |
ACE_Comp10_Rise_IRQn = 107, /*!< ACE comparator 10 rising over reference interrupt */ | |
ACE_Comp11_Rise_IRQn = 108, /*!< ACE comparator 11 rising over reference interrupt */ | |
ACE_ADC0_FifoFull_IRQn = 109, /*!< ACE ADC0 FIFO full interrupt */ | |
ACE_ADC0_FifoAFull_IRQn = 110, /*!< ACE ADC0 FIFO almost full interrupt */ | |
ACE_ADC0_FifoEmpty_IRQn = 111, /*!< ACE ADC0 FIFO empty interrupt */ | |
ACE_ADC1_FifoFull_IRQn = 112, /*!< ACE ADC1 FIFO full interrupt */ | |
ACE_ADC1_FifoAFull_IRQn = 113, /*!< ACE ADC1 FIFO almost full interrupt */ | |
ACE_ADC1_FifoEmpty_IRQn = 114, /*!< ACE ADC1 FIFO empty interrupt */ | |
ACE_ADC2_FifoFull_IRQn = 115, /*!< ACE ADC2 FIFO full interrupt */ | |
ACE_ADC2_FifoAFull_IRQn = 116, /*!< ACE ADC2 FIFO almost full interrupt */ | |
ACE_ADC2_FifoEmpty_IRQn = 117, /*!< ACE ADC2 FIFO empty interrupt */ | |
ACE_PPE_Flag0_IRQn = 118, /*!< ACE post processing engine flag 0 interrupt */ | |
ACE_PPE_Flag1_IRQn = 119, /*!< ACE post processing engine flag 1 interrupt */ | |
ACE_PPE_Flag2_IRQn = 120, /*!< ACE post processing engine flag 2 interrupt */ | |
ACE_PPE_Flag3_IRQn = 121, /*!< ACE post processing engine flag 3 interrupt */ | |
ACE_PPE_Flag4_IRQn = 122, /*!< ACE post processing engine flag 4 interrupt */ | |
ACE_PPE_Flag5_IRQn = 123, /*!< ACE post processing engine flag 5 interrupt */ | |
ACE_PPE_Flag6_IRQn = 124, /*!< ACE post processing engine flag 6 interrupt */ | |
ACE_PPE_Flag7_IRQn = 125, /*!< ACE post processing engine flag 7 interrupt */ | |
ACE_PPE_Flag8_IRQn = 126, /*!< ACE post processing engine flag 8 interrupt */ | |
ACE_PPE_Flag9_IRQn = 127, /*!< ACE post processing engine flag 9 interrupt */ | |
ACE_PPE_Flag10_IRQn = 128, /*!< ACE post processing engine flag 10 interrupt */ | |
ACE_PPE_Flag11_IRQn = 129, /*!< ACE post processing engine flag 11 interrupt */ | |
ACE_PPE_Flag12_IRQn = 130, /*!< ACE post processing engine flag 12 interrupt */ | |
ACE_PPE_Flag13_IRQn = 131, /*!< ACE post processing engine flag 13 interrupt */ | |
ACE_PPE_Flag14_IRQn = 132, /*!< ACE post processing engine flag 14 interrupt */ | |
ACE_PPE_Flag15_IRQn = 133, /*!< ACE post processing engine flag 15 interrupt */ | |
ACE_PPE_Flag16_IRQn = 134, /*!< ACE post processing engine flag 16 interrupt */ | |
ACE_PPE_Flag17_IRQn = 135, /*!< ACE post processing engine flag 17 interrupt */ | |
ACE_PPE_Flag18_IRQn = 136, /*!< ACE post processing engine flag 18 interrupt */ | |
ACE_PPE_Flag19_IRQn = 137, /*!< ACE post processing engine flag 19 interrupt */ | |
ACE_PPE_Flag20_IRQn = 138, /*!< ACE post processing engine flag 20 interrupt */ | |
ACE_PPE_Flag21_IRQn = 139, /*!< ACE post processing engine flag 21 interrupt */ | |
ACE_PPE_Flag22_IRQn = 140, /*!< ACE post processing engine flag 22 interrupt */ | |
ACE_PPE_Flag23_IRQn = 141, /*!< ACE post processing engine flag 23 interrupt */ | |
ACE_PPE_Flag24_IRQn = 142, /*!< ACE post processing engine flag 24 interrupt */ | |
ACE_PPE_Flag25_IRQn = 143, /*!< ACE post processing engine flag 25 interrupt */ | |
ACE_PPE_Flag26_IRQn = 144, /*!< ACE post processing engine flag 26 interrupt */ | |
ACE_PPE_Flag27_IRQn = 145, /*!< ACE post processing engine flag 27 interrupt */ | |
ACE_PPE_Flag28_IRQn = 146, /*!< ACE post processing engine flag 28 interrupt */ | |
ACE_PPE_Flag29_IRQn = 147, /*!< ACE post processing engine flag 29 interrupt */ | |
ACE_PPE_Flag30_IRQn = 148, /*!< ACE post processing engine flag 30 interrupt */ | |
ACE_PPE_Flag31_IRQn = 149 /*!< ACE post processing engine flag 31 interrupt */ | |
} IRQn_Type; | |
/* | |
* ========================================================================== | |
* ----------- Processor and Core Peripheral Section ------------------------ | |
* ========================================================================== | |
*/ | |
/* Configuration of the Cortex-M3 Processor and Core Peripherals */ | |
#define __MPU_PRESENT 1 /*!< SmartFusion includes a MPU */ | |
#define __NVIC_PRIO_BITS 5 /*!< SmartFusion uses 5 Bits for the 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_a2fxxxm3.h" /* SmartFusion System */ | |
/******************************************************************************/ | |
/* Device Specific Peripheral registers structures */ | |
/******************************************************************************/ | |
#if defined ( __CC_ARM ) | |
/* Enable anonymous unions when building using Keil-MDK */ | |
#pragma anon_unions | |
#endif | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------- UART -----------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
union | |
{ | |
__I uint8_t RBR; | |
__O uint8_t THR; | |
__IO uint8_t DLR; | |
uint32_t RESERVED0; | |
}; | |
union | |
{ | |
__IO uint8_t DMR; | |
__IO uint8_t IER; | |
uint32_t RESERVED1; | |
}; | |
union | |
{ | |
__IO uint8_t IIR; | |
__IO uint8_t FCR; | |
uint32_t RESERVED2; | |
}; | |
__IO uint8_t LCR; | |
uint8_t RESERVED3; | |
uint16_t RESERVED4; | |
__IO uint8_t MCR; | |
uint8_t RESERVED5; | |
uint16_t RESERVED6; | |
__I uint8_t LSR; | |
uint8_t RESERVED7; | |
uint16_t RESERVED8; | |
__I uint8_t MSR; | |
uint8_t RESERVED9; | |
uint16_t RESERVED10; | |
__IO uint8_t SR; | |
uint8_t RESERVED11; | |
uint16_t RESERVED12; | |
} UART_TypeDef; | |
/*------------------------------------------------------------------------------ | |
* | |
*/ | |
typedef struct | |
{ | |
uint32_t RESERVED0[32]; | |
__IO uint32_t IER_ERBFI; | |
__IO uint32_t IER_ETBEI; | |
__IO uint32_t IER_ELSI; | |
__IO uint32_t IER_EDSSI; | |
uint32_t RESERVED1[28]; | |
__IO uint32_t FCR_ENABLE; | |
__IO uint32_t FCR_CLEAR_RX_FIFO; | |
__IO uint32_t FCR_CLEAR_TX_FIFO; | |
__IO uint32_t FCR_RXRDY_TXRDYN_EN; | |
__IO uint32_t FCR_RESERVED0; | |
__IO uint32_t FCR_RESERVED1; | |
__IO uint32_t FCR_RX_TRIG0; | |
__IO uint32_t FCR_RX_TRIG1; | |
uint32_t RESERVED2[24]; | |
__IO uint32_t LCR_WLS0; | |
__IO uint32_t LCR_WLS1; | |
__IO uint32_t LCR_STB; | |
__IO uint32_t LCR_PEN; | |
__IO uint32_t LCR_EPS; | |
__IO uint32_t LCR_SP; | |
__IO uint32_t LCR_SB; | |
__IO uint32_t LCR_DLAB; | |
uint32_t RESERVED3[24]; | |
__IO uint32_t MCR_DTR; | |
__IO uint32_t MCR_RTS; | |
__IO uint32_t MCR_OUT1; | |
__IO uint32_t MCR_OUT2; | |
__IO uint32_t MCR_LOOP; | |
uint32_t RESERVED4[27]; | |
__I uint32_t LSR_DR; | |
__I uint32_t LSR_OE; | |
__I uint32_t LSR_PE; | |
__I uint32_t LSR_FE; | |
__I uint32_t LSR_BI; | |
__I uint32_t LSR_THRE; | |
__I uint32_t LSR_TEMT; | |
__I uint32_t LSR_FIER; | |
uint32_t RESERVED5[24]; | |
__I uint32_t MSR_DCTS; | |
__I uint32_t MSR_DDSR; | |
__I uint32_t MSR_TERI; | |
__I uint32_t MSR_DDCD; | |
__I uint32_t MSR_CTS; | |
__I uint32_t MSR_DSR; | |
__I uint32_t MSR_RI; | |
__I uint32_t MSR_DCD; | |
} UART_BitBand_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------- I2C ------------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint8_t CTRL; | |
uint8_t RESERVED0; | |
uint16_t RESERVED1; | |
uint8_t STATUS; | |
uint8_t RESERVED2; | |
uint16_t RESERVED3; | |
__IO uint8_t DATA; | |
uint8_t RESERVED4; | |
uint16_t RESERVED5; | |
__IO uint8_t ADDR; | |
uint8_t RESERVED6; | |
uint16_t RESERVED7; | |
__IO uint8_t SMBUS; | |
uint8_t RESERVED8; | |
uint16_t RESERVED9; | |
__IO uint8_t FREQ; | |
uint8_t RESERVED10; | |
uint16_t RESERVED11; | |
__IO uint8_t GLITCHREG; | |
uint8_t RESERVED12; | |
uint16_t RESERVED13; | |
} I2C_TypeDef; | |
/*------------------------------------------------------------------------------ | |
* | |
*/ | |
typedef struct | |
{ | |
uint32_t CTRL_CR0; | |
uint32_t CTRL_CR1; | |
uint32_t CTRL_AA; | |
uint32_t CTRL_SI; | |
uint32_t CTRL_STO; | |
uint32_t CTRL_STA; | |
uint32_t CTRL_ENS1; | |
uint32_t CTRL_CR2; | |
uint32_t RESERVED0[56]; | |
uint32_t DATA_DIR; | |
uint32_t RESERVED1[31]; | |
uint32_t ADDR_GC; | |
} I2C_BitBand_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------- SPI ------------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t CONTROL; | |
__IO uint32_t TXRXDF_SIZE; | |
__I uint32_t STATUS; | |
__O uint32_t INT_CLEAR; | |
__I uint32_t RX_DATA; | |
__O uint32_t TX_DATA; | |
__IO uint32_t CLK_GEN; | |
__IO uint32_t SLAVE_SELECT; | |
__I uint32_t MIS; | |
__I uint32_t RIS; | |
} SPI_TypeDef; | |
typedef struct | |
{ | |
__IO uint32_t CTRL_ENABLE; | |
__IO uint32_t CTRL_MASTER; | |
__IO uint32_t CTRL_MODE[2]; | |
__IO uint32_t CTRL_RX_INT_EN; | |
__IO uint32_t CTRL_TX_INT_EN; | |
__IO uint32_t CTRL_RX_OVERFLOW_INT_EN; | |
__IO uint32_t CTRL_TX_UNDERRUN_INT_EN; | |
__IO uint32_t CTRL_TXRXDFCOUNT[16]; | |
__IO uint32_t CTRL_SPO; | |
__IO uint32_t CTRL_SPH; | |
__IO uint32_t CTRL_RESERVED[6]; | |
__IO uint32_t TXRXDF_SIZE[32]; | |
__I uint32_t STATUS_TX_DONE; | |
__I uint32_t STATUS_RX_RDY; | |
__I uint32_t STATUS_RX_CH_OV; | |
__I uint32_t STATUS_TX_CH_UV; | |
__I uint32_t STATUS_RX_FIFO_FULL; | |
__I uint32_t STATUS_RX_FIFO_FULL_NEXT; | |
__I uint32_t STATUS_RX_FIFO_EMPTY; | |
__I uint32_t STATUS_RX_FIFO_EMPTY_NEXT; | |
__I uint32_t STATUS_TX_FIFO_FULL; | |
__I uint32_t STATUS_TX_FIFO_FULL_NEXT; | |
__I uint32_t STATUS_TX_FIFO_EMPTY; | |
__I uint32_t STATUS_TX_FIFO_EMPTY_NEXT; | |
__I uint32_t STATUS_RESERVED[20]; | |
__O uint32_t INT_CLEAR_TX_DONE; | |
__O uint32_t INT_CLEAR_RX_RDY; | |
__O uint32_t INT_CLEAR_RX_OVER; | |
__O uint32_t INT_CLEAR_TX_UNDER; | |
__O uint32_t INT_CLEAR[28]; | |
__I uint32_t RX_DATA[32]; | |
__O uint32_t TX_DATA[32]; | |
__IO uint32_t CLK_GEN[32]; | |
__IO uint32_t SLAVE_SELECT[32]; | |
__I uint32_t MIS_TX_DONE; | |
__I uint32_t MIS_RX_RDY; | |
__I uint32_t MIS_RX_OVER; | |
__I uint32_t MIS_TX_UNDER; | |
__I uint32_t MIS[28]; | |
__I uint32_t RIS[32]; | |
} SPI_BitBand_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------- GPIO -----------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t GPIO_0_CFG; | |
__IO uint32_t GPIO_1_CFG; | |
__IO uint32_t GPIO_2_CFG; | |
__IO uint32_t GPIO_3_CFG; | |
__IO uint32_t GPIO_4_CFG; | |
__IO uint32_t GPIO_5_CFG; | |
__IO uint32_t GPIO_6_CFG; | |
__IO uint32_t GPIO_7_CFG; | |
__IO uint32_t GPIO_8_CFG; | |
__IO uint32_t GPIO_9_CFG; | |
__IO uint32_t GPIO_10_CFG; | |
__IO uint32_t GPIO_11_CFG; | |
__IO uint32_t GPIO_12_CFG; | |
__IO uint32_t GPIO_13_CFG; | |
__IO uint32_t GPIO_14_CFG; | |
__IO uint32_t GPIO_15_CFG; | |
__IO uint32_t GPIO_16_CFG; | |
__IO uint32_t GPIO_17_CFG; | |
__IO uint32_t GPIO_18_CFG; | |
__IO uint32_t GPIO_19_CFG; | |
__IO uint32_t GPIO_20_CFG; | |
__IO uint32_t GPIO_21_CFG; | |
__IO uint32_t GPIO_22_CFG; | |
__IO uint32_t GPIO_23_CFG; | |
__IO uint32_t GPIO_24_CFG; | |
__IO uint32_t GPIO_25_CFG; | |
__IO uint32_t GPIO_26_CFG; | |
__IO uint32_t GPIO_27_CFG; | |
__IO uint32_t GPIO_28_CFG; | |
__IO uint32_t GPIO_29_CFG; | |
__IO uint32_t GPIO_30_CFG; | |
__IO uint32_t GPIO_31_CFG; | |
__IO uint32_t GPIO_IRQ; | |
__I uint32_t GPIO_IN; | |
__IO uint32_t GPIO_OUT; | |
} GPIO_TypeDef; | |
typedef struct | |
{ | |
__IO uint32_t GPIO_0_CFG[32]; | |
__IO uint32_t GPIO_1_CFG[32]; | |
__IO uint32_t GPIO_2_CFG[32]; | |
__IO uint32_t GPIO_3_CFG[32]; | |
__IO uint32_t GPIO_4_CFG[32]; | |
__IO uint32_t GPIO_5_CFG[32]; | |
__IO uint32_t GPIO_6_CFG[32]; | |
__IO uint32_t GPIO_7_CFG[32]; | |
__IO uint32_t GPIO_8_CFG[32]; | |
__IO uint32_t GPIO_9_CFG[32]; | |
__IO uint32_t GPIO_10_CFG[32]; | |
__IO uint32_t GPIO_11_CFG[32]; | |
__IO uint32_t GPIO_12_CFG[32]; | |
__IO uint32_t GPIO_13_CFG[32]; | |
__IO uint32_t GPIO_14_CFG[32]; | |
__IO uint32_t GPIO_15_CFG[32]; | |
__IO uint32_t GPIO_16_CFG[32]; | |
__IO uint32_t GPIO_17_CFG[32]; | |
__IO uint32_t GPIO_18_CFG[32]; | |
__IO uint32_t GPIO_19_CFG[32]; | |
__IO uint32_t GPIO_20_CFG[32]; | |
__IO uint32_t GPIO_21_CFG[32]; | |
__IO uint32_t GPIO_22_CFG[32]; | |
__IO uint32_t GPIO_23_CFG[32]; | |
__IO uint32_t GPIO_24_CFG[32]; | |
__IO uint32_t GPIO_25_CFG[32]; | |
__IO uint32_t GPIO_26_CFG[32]; | |
__IO uint32_t GPIO_27_CFG[32]; | |
__IO uint32_t GPIO_28_CFG[32]; | |
__IO uint32_t GPIO_29_CFG[32]; | |
__IO uint32_t GPIO_30_CFG[32]; | |
__IO uint32_t GPIO_31_CFG[32]; | |
__IO uint32_t GPIO_IRQ[32]; | |
__I uint32_t GPIO_IN[32]; | |
__IO uint32_t GPIO_OUT[32]; | |
} GPIO_BitBand_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------- RTC ------------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t COUNTER0_REG; | |
__IO uint32_t COUNTER1_REG; | |
__IO uint32_t COUNTER2_REG; | |
__IO uint32_t COUNTER3_REG; | |
__IO uint32_t COUNTER4_REG; | |
__IO uint32_t RESERVED0[3]; | |
__IO uint32_t MATCHREG0_REG; | |
__IO uint32_t MATCHREG1_REG; | |
__IO uint32_t MATCHREG2_REG; | |
__IO uint32_t MATCHREG3_REG; | |
__IO uint32_t MATCHREG4_REG; | |
__IO uint32_t RESERVED1[3]; | |
__IO uint32_t MATCHBITS0_REG; | |
__IO uint32_t MATCHBITS1_REG; | |
__IO uint32_t MATCHBITS2_REG; | |
__IO uint32_t MATCHBITS3_REG; | |
__IO uint32_t MATCHBITS4_REG; | |
__IO uint32_t RESERVED2[3]; | |
__IO uint32_t CTRL_STAT_REG; | |
} RTC_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*---------------------------------- Timer -----------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__I uint32_t TIM1_VAL; | |
__IO uint32_t TIM1_LOADVAL; | |
__IO uint32_t TIM1_BGLOADVAL; | |
__IO uint32_t TIM1_CTRL; | |
__IO uint32_t TIM1_RIS; | |
__I uint32_t TIM1_MIS; | |
__I uint32_t TIM2_VAL; | |
__IO uint32_t TIM2_LOADVAL; | |
__IO uint32_t TIM2_BGLOADVAL; | |
__IO uint32_t TIM2_CTRL; | |
__IO uint32_t TIM2_RIS; | |
__I uint32_t TIM2_MIS; | |
__I uint32_t TIM64_VAL_U; | |
__I uint32_t TIM64_VAL_L; | |
__IO uint32_t TIM64_LOADVAL_U; | |
__IO uint32_t TIM64_LOADVAL_L; | |
__IO uint32_t TIM64_BGLOADVAL_U; | |
__IO uint32_t TIM64_BGLOADVAL_L; | |
__IO uint32_t TIM64_CTRL; | |
__IO uint32_t TIM64_RIS; | |
__I uint32_t TIM64_MIS; | |
__IO uint32_t TIM64_MODE; | |
} TIMER_TypeDef; | |
/*------------------------------------------------------------------------------ | |
* Timer bit band | |
*/ | |
typedef struct | |
{ | |
__I uint32_t TIM1_VALUE_BIT[32]; | |
__IO uint32_t TIM1_LOADVAL[32]; | |
__IO uint32_t TIM1_BGLOADVAL[32]; | |
__IO uint32_t TIM1ENABLE; | |
__IO uint32_t TIM1MODE; | |
__IO uint32_t TIM1INTEN; | |
__IO uint32_t TIM1_CTRL_RESERVED[29]; | |
__IO uint32_t TIM1_RIS[32]; | |
__I uint32_t TIM1_MIS[32]; | |
__I uint32_t TIM2_VALUE[32]; | |
__IO uint32_t TIM2_LOADVAL[32]; | |
__IO uint32_t TIM2_BGLOADVAL[32]; | |
__IO uint32_t TIM2ENABLE; | |
__IO uint32_t TIM2MODE; | |
__IO uint32_t TIM2INTEN; | |
__IO uint32_t TIM2_CTRL[29]; | |
__IO uint32_t TIM2_RIS[32]; | |
__I uint32_t TIM2_MIS[32]; | |
__I uint32_t TIM64VALUEU[32]; | |
__I uint32_t TIM64VALUEL[32]; | |
__IO uint32_t TIM64LOADVALUEU[32]; | |
__IO uint32_t TIM64LOADVALUEL[32]; | |
__IO uint32_t TIM64BGLOADVALUEU[32]; | |
__IO uint32_t TIM64BGLOADVALUEL[32]; | |
__IO uint32_t TIM64ENABLE; | |
__IO uint32_t TIM64MODE; | |
__IO uint32_t TIM64INTEN; | |
__IO uint32_t TIM64_CTRL[29]; | |
__IO uint32_t TIM64_RIS[32]; | |
__I uint32_t TIM64_MIS[32]; | |
__IO uint32_t TIM64_MODE[32]; | |
} TIMER_BitBand_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*--------------------------------- Watchdog ---------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__I uint32_t WDOGVALUE; | |
__IO uint32_t WDOGLOAD; | |
__IO uint32_t WDOGMVRP; | |
__O uint32_t WDOGREFRESH; | |
__IO uint32_t WDOGENABLE; | |
__IO uint32_t WDOGCONTROL; | |
__I uint32_t WDOGSTATUS; | |
__IO uint32_t WDOGRIS; | |
__I uint32_t WDOGMIS; | |
} WATCHDOG_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------- Real Time Clock ------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
/*----------------------------- Peripherals DMA ------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t CRTL; | |
__IO uint32_t STATUS; | |
__IO uint32_t BUFFER_A_SRC_ADDR; | |
__IO uint32_t BUFFER_A_DEST_ADDR; | |
__IO uint32_t BUFFER_A_TRANSFER_COUNT; | |
__IO uint32_t BUFFER_B_SRC_ADDR; | |
__IO uint32_t BUFFER_B_DEST_ADDR; | |
__IO uint32_t BUFFER_B_TRANSFER_COUNT; | |
} PDMA_Channel_TypeDef; | |
typedef struct | |
{ | |
__IO uint32_t RATIO_HIGH_LOW; | |
__IO uint32_t BUFFER_STATUS; | |
uint32_t RESERVED[6]; | |
PDMA_Channel_TypeDef CHANNEL[8]; | |
} PDMA_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*------------------------------ Ethernet MAC --------------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t CSR0; | |
uint32_t RESERVED0; | |
__IO uint32_t CSR1; | |
uint32_t RESERVED1; | |
__IO uint32_t CSR2; | |
uint32_t RESERVED2; | |
__IO uint32_t CSR3; | |
uint32_t RESERVED3; | |
__IO uint32_t CSR4; | |
uint32_t RESERVED4; | |
__IO uint32_t CSR5; | |
uint32_t RESERVED5; | |
__IO uint32_t CSR6; | |
uint32_t RESERVED6; | |
__IO uint32_t CSR7; | |
uint32_t RESERVED7; | |
__IO uint32_t CSR8; | |
uint32_t RESERVED8; | |
__IO uint32_t CSR9; | |
uint32_t RESERVED9; | |
uint32_t RESERVED10; | |
uint32_t RESERVED11; | |
__IO uint32_t CSR11; | |
} MAC_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*---------------------- Analog Conversion Engine (ACE) ----------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
/* Analog quad configuration */ | |
typedef struct | |
{ | |
__IO uint8_t b0; | |
uint8_t reserved0_0; | |
uint16_t reserved0_1; | |
__IO uint8_t b1; | |
uint8_t reserved1_0; | |
uint16_t reserved1_1; | |
__IO uint8_t b2; | |
uint8_t reserved2_0; | |
uint16_t reserved2_1; | |
__IO uint8_t b3; | |
uint8_t reserved3_0; | |
uint16_t reserved3_1; | |
__IO uint8_t b4; | |
uint8_t reserved4_0; | |
uint16_t reserved4_1; | |
__IO uint8_t b5; | |
uint8_t reserved5_0; | |
uint16_t reserved5_1; | |
__IO uint8_t b6; | |
uint8_t reserved6_0; | |
uint16_t reserved6_1; | |
__IO uint8_t b7; | |
uint8_t reserved7_0; | |
uint16_t reserved7_1; | |
__IO uint8_t b8; | |
uint8_t reserved8_0; | |
uint16_t reserved8_1; | |
__IO uint8_t b9; | |
uint8_t reserved9_0; | |
uint16_t reserved9_1; | |
__IO uint8_t b10; | |
uint8_t reserved10_0; | |
uint16_t reserved10_1; | |
__IO uint8_t b11; | |
uint8_t reserved11_0; | |
uint16_t reserved11_1; | |
} AQ_config_t; | |
/* ACE memory map layout */ | |
typedef struct | |
{ | |
__O uint32_t NOP; | |
__IO uint32_t SSE_TS_CTRL; | |
__IO uint32_t ADC_SYNC_CONV; | |
__IO uint32_t ANA_COMM_CTRL; | |
__IO uint32_t DAC_SYNC_CTRL; | |
__IO uint32_t PDMA_REQUEST; | |
uint32_t RESERVED0[10]; | |
__O uint32_t PC0_LO; | |
__O uint32_t PC0_HI; | |
__IO uint32_t PC0_CTRL; | |
__IO uint32_t PC0_DLY; | |
__IO uint32_t ADC0_CONV_CTRL; | |
__IO uint32_t ADC0_STC; | |
__IO uint32_t ADC0_TVC; | |
__IO uint32_t ADC0_MISC_CTRL; | |
__IO uint32_t DAC0_CTRL; | |
__IO uint32_t DAC0_BYTE0; | |
__IO uint32_t DAC0_BYTE1; | |
__IO uint32_t DAC0_BYTE2; | |
__IO uint32_t LC0; | |
__O uint32_t LC0_JMP_LO; | |
__O uint32_t LC0_JMP_HI; | |
__O uint32_t PC0_FLAGS; | |
__O uint32_t PC1_LO; | |
__O uint32_t PC1_HI; | |
__IO uint32_t PC1_CTRL; | |
__IO uint32_t PC1_DLY; | |
__IO uint32_t ADC1_CONV_CTRL; | |
__IO uint32_t ADC1_STC; | |
__IO uint32_t ADC1_TVC; | |
__IO uint32_t ADC1_MISC_CTRL; | |
__IO uint32_t DAC1_CTRL; | |
__IO uint32_t DAC1_BYTE0; | |
__IO uint32_t DAC1_BYTE1; | |
__IO uint32_t DAC1_BYTE2; | |
__IO uint32_t LC1; | |
__O uint32_t LC1_JMP_LO; | |
__O uint32_t LC1_JMP_HI; | |
__O uint32_t PC1_FLAGS; | |
__O uint32_t PC2_LO; | |
__O uint32_t PC2_HI; | |
__IO uint32_t PC2_CTRL; | |
__IO uint32_t PC2_DLY; | |
__IO uint32_t ADC2_CONV_CTRL; | |
__IO uint32_t ADC2_STC; | |
__IO uint32_t ADC2_TVC; | |
__IO uint32_t ADC2_MISC_CTRL; | |
__IO uint32_t DAC2_CTRL; | |
__IO uint32_t DAC2_BYTE0; | |
__IO uint32_t DAC2_BYTE1; | |
__IO uint32_t DAC2_BYTE2; | |
__IO uint32_t LC2; | |
__O uint32_t LC2_JMP_LO; | |
__O uint32_t LC2_JMP_HI; | |
__O uint32_t PC2_FLAGS; | |
uint32_t RESERVED1; | |
uint32_t RESERVED2; | |
__IO uint32_t SSE_RAM_LO_IDATA; | |
__IO uint32_t SSE_RAM_HI_IDATA; | |
uint32_t RESERVED3[61]; | |
AQ_config_t ACB_DATA[6]; | |
uint32_t RESERVED4[59]; | |
__IO uint32_t SSE_PC0; | |
__IO uint32_t SSE_PC1; | |
__IO uint32_t SSE_PC2; | |
uint32_t RESERVED5[57]; | |
__IO uint32_t SSE_DAC0_BYTES01; | |
__IO uint32_t SSE_DAC1_BYTES01; | |
__IO uint32_t SSE_DAC2_BYTES01; | |
uint32_t RESERVED6[61]; | |
__O uint32_t SSE_ADC0_RESULTS; | |
__O uint32_t SSE_ADC1_RESULTS; | |
__O uint32_t SSE_ADC2_RESULTS; | |
uint32_t RESERVED7[61]; | |
__O uint32_t SSE_PDMA_DATAIN; | |
uint32_t RESERVED8[63]; | |
__IO uint32_t SSE_RAM_DATA[512]; | |
__I uint32_t ADC0_STATUS; | |
__I uint32_t ADC1_STATUS; | |
__I uint32_t ADC2_STATUS; | |
__I uint32_t COMPARATOR_STATUS; | |
uint32_t RESERVED9[124]; | |
__IO uint32_t SSE_IRQ_EN; | |
__I uint32_t SSE_IRQ; | |
__O uint32_t SSE_IRQ_CLR; | |
__IO uint32_t COMP_IRQ_EN; | |
__I uint32_t COMP_IRQ; | |
__O uint32_t COMP_IRQ_CLR; | |
__IO uint32_t PPE_FIFO_IRQ_EN; | |
__I uint32_t PPE_FIFO_IRQ; | |
__O uint32_t PPE_FIFO_IRQ_CLR; | |
__IO uint32_t PPE_FLAGS0_IRQ_EN; | |
__I uint32_t PPE_FLAGS0_IRQ; | |
__O uint32_t PPE_FLAGS0_IRQ_CLR; | |
__IO uint32_t PPE_FLAGS1_IRQ_EN; | |
__I uint32_t PPE_FLAGS1_IRQ; | |
__O uint32_t PPE_FLAGS1_IRQ_CLR; | |
__IO uint32_t PPE_FLAGS2_IRQ_EN; | |
__I uint32_t PPE_FLAGS2_IRQ; | |
__O uint32_t PPE_FLAGS2_IRQ_CLR; | |
__IO uint32_t PPE_FLAGS3_IRQ_EN; | |
__I uint32_t PPE_FLAGS3_IRQ; | |
__O uint32_t PPE_FLAGS3_IRQ_CLR; | |
__IO uint32_t PPE_SFFLAGS_IRQ_EN; | |
__I uint32_t PPE_SFFLAGS_IRQ; | |
__O uint32_t PPE_SFFLAGS_IRQ_CLR; | |
__IO uint32_t FPGA_FLAGS_SEL; | |
uint32_t RESERVED10[39]; | |
__IO uint32_t PPE_PDMA_CTRL; | |
__I uint32_t PDMA_STATUS; | |
__IO uint32_t PPE_PDMA_DATAOUT; | |
uint32_t RESERVED11[61]; | |
__I uint32_t PPE_NOP; | |
__IO uint32_t PPE_CTRL; | |
__IO uint32_t PPE_PC_ETC; | |
__IO uint32_t PPE_SF; | |
__IO uint32_t PPE_SCRATCH; | |
uint32_t RESERVED12; | |
__IO uint32_t ALU_CTRL; | |
__I uint32_t ALU_STATUS; | |
__IO uint32_t ALU_A; | |
uint32_t RESERVED50; | |
__IO uint32_t ALU_B; | |
uint32_t RESERVED53; | |
__IO uint32_t ALU_C; | |
uint32_t RESERVED51; | |
__IO uint32_t ALU_D; | |
uint32_t RESERVED52; | |
__IO uint32_t ALU_E; | |
uint32_t RESERVED54; | |
__IO uint32_t PPE_FPTR; | |
uint32_t RESERVED55; | |
__IO uint32_t PPE_FLAGS0; | |
__IO uint32_t PPE_FLAGS1; | |
__IO uint32_t PPE_FLAGS2; | |
__IO uint32_t PPE_FLAGS3; | |
__IO uint32_t PPE_SFFLAGS; | |
uint32_t RESERVED13[11]; | |
__IO uint32_t ADC0_FIFO_CTRL; | |
__I uint32_t ADC0_FIFO_STATUS; | |
__IO uint32_t ADC0_FIFO_DATA; | |
__IO uint32_t ADC1_FIFO_CTRL; | |
__I uint32_t ADC1_FIFO_STATUS; | |
__IO uint32_t ADC1_FIFO_DATA; | |
__IO uint32_t ADC2_FIFO_CTRL; | |
__I uint32_t ADC2_FIFO_STATUS; | |
__IO uint32_t ADC2_FIFO_DATA; | |
uint32_t RESERVED14[19]; | |
__I uint32_t ADC0_FIFO_DATA_PEEK; | |
__I uint32_t ADC0_FIFO_DATA0; | |
__I uint32_t ADC0_FIFO_DATA1; | |
__I uint32_t ADC0_FIFO_DATA2; | |
__I uint32_t ADC0_FIFO_DATA3; | |
__I uint32_t ADC1_FIFO_DATA_PEEK; | |
__I uint32_t ADC1_FIFO_DATA0; | |
__I uint32_t ADC1_FIFO_DATA1; | |
__I uint32_t ADC1_FIFO_DATA2; | |
__I uint32_t ADC1_FIFO_DATA3; | |
__I uint32_t ADC2_FIFO_DATA_PEEK; | |
__I uint32_t ADC2_FIFO_DATA0; | |
__I uint32_t ADC2_FIFO_DATA1; | |
__I uint32_t ADC2_FIFO_DATA2; | |
__I uint32_t ADC2_FIFO_DATA3; | |
uint32_t RESERVED15[177]; | |
__IO uint32_t PPE_RAM_DATA[512]; | |
} ACE_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*------------------------ In Application Programming ------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t IAP_IR; | |
__IO uint32_t IAP_DR2; | |
__IO uint32_t IAP_DR3; | |
__IO uint32_t IAP_DR5; | |
__IO uint32_t IAP_DR26; | |
__IO uint32_t IAP_DR32; | |
__IO uint32_t IAP_DR; | |
__IO uint32_t IAP_DR_LENGTH; | |
__IO uint32_t IAP_TAP_NEW_STATE; | |
__IO uint32_t IAP_TAP_CONTROL; | |
__I uint32_t IAP_STATUS; | |
} IAP_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*---------------------- eNVM Special Function Registers ---------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t STATUS; | |
__IO uint32_t CONTROL; | |
__IO uint32_t ENABLE; | |
uint32_t RESERVED0; | |
__IO uint32_t CONFIG_0; | |
__IO uint32_t CONFIG_1; | |
__IO uint32_t PAGE_STATUS_0; | |
__IO uint32_t PAGE_STATUS_1; | |
__IO uint32_t SEGMENT; | |
__IO uint32_t ENVM_SELECT; | |
} NVM_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*---------------------- eNVM Special Function Registers ---------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t MSSIRQ_EN0; | |
__IO uint32_t MSSIRQ_EN1; | |
__IO uint32_t MSSIRQ_EN2; | |
__IO uint32_t MSSIRQ_EN3; | |
__IO uint32_t MSSIRQ_EN4; | |
__IO uint32_t MSSIRQ_EN5; | |
__IO uint32_t MSSIRQ_EN6; | |
__IO uint32_t MSSIRQ_EN7; | |
__I uint32_t MSSIRQ_SRC0; | |
__I uint32_t MSSIRQ_SRC1; | |
__I uint32_t MSSIRQ_SRC2; | |
__I uint32_t MSSIRQ_SRC3; | |
__I uint32_t MSSIRQ_SRC4; | |
__I uint32_t MSSIRQ_SRC5; | |
__I uint32_t MSSIRQ_SRC6; | |
__I uint32_t MSSIRQ_SRC7; | |
__IO uint32_t FIIC_MR; | |
} MSS_IRQ_CTRL_TypeDef; | |
/*----------------------------------------------------------------------------*/ | |
/*------------------------------ System Registers ----------------------------*/ | |
/*----------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
__IO uint32_t ESRAM_CR; | |
__IO uint32_t ENVM_CR; | |
__IO uint32_t ENVM_REMAP_SYS_CR; | |
__IO uint32_t ENVM_REMAP_FAB_CR; | |
__IO uint32_t FAB_PROT_SIZE_CR; | |
__IO uint32_t FAB_PROT_BASE_CR; | |
__IO uint32_t AHB_MATRIX_CR; | |
__IO uint32_t MSS_SR; | |
__IO uint32_t CLR_MSS_SR; | |
__IO uint32_t EFROM_CR; | |
__IO uint32_t IAP_CR; | |
__IO uint32_t SOFT_IRQ_CR; | |
__IO uint32_t SOFT_RST_CR; | |
__IO uint32_t DEVICE_SR; | |
__IO uint32_t SYSTICK_CR; | |
__IO uint32_t EMC_MUX_CR; | |
__IO uint32_t EMC_CS_0_CR; | |
__IO uint32_t EMC_CS_1_CR; | |
__IO uint32_t MSS_CLK_CR; | |
__IO uint32_t MSS_CCC_DIV_CR; | |
__IO uint32_t MSS_CCC_MUX_CR; | |
__IO uint32_t MSS_CCC_PLL_CR; | |
__IO uint32_t MSS_CCC_DLY_CR; | |
__IO uint32_t MSS_CCC_SR; | |
__IO uint32_t MSS_RCOSC_CR; | |
__IO uint32_t VRPSM_CR; | |
__IO uint32_t RESERVED; | |
__IO uint32_t FAB_IF_CR; | |
__IO uint32_t FAB_APB_HIWORD_DR; | |
__IO uint32_t LOOPBACK_CR; | |
__IO uint32_t MSS_IO_BANK_CR; | |
__IO uint32_t GPIN_SOURCE_CR; | |
__IO uint32_t TEST_SR; | |
__IO uint32_t RED_REP_ADDR0; | |
__I uint32_t RED_REP_LOW_LOCS0; | |
__I uint32_t RED_REP_HIGH_LOCS0; | |
__IO uint32_t RED_REP_ADDR1; | |
__I uint32_t RED_REP_LOW_LOCS1; | |
__I uint32_t RED_REP_HIGH_LOCS1; | |
__IO uint32_t FABRIC_CR; | |
uint32_t RESERVED1[24]; | |
__IO uint32_t IOMUX_CR[83]; | |
} SYSREG_TypeDef; | |
#define SYSREG_ENVM_SOFTRESET_MASK (uint32_t)0x00000001 | |
#define SYSREG_ESRAM0_SOFTRESET_MASK (uint32_t)0x00000002 | |
#define SYSREG_ESRAM1_SOFTRESET_MASK (uint32_t)0x00000004 | |
#define SYSREG_EMC_SOFTRESET_MASK (uint32_t)0x00000008 | |
#define SYSREG_MAC_SOFTRESET_MASK (uint32_t)0x00000010 | |
#define SYSREG_PDMA_SOFTRESET_MASK (uint32_t)0x00000020 | |
#define SYSREG_TIMER_SOFTRESET_MASK (uint32_t)0x00000040 | |
#define SYSREG_UART0_SOFTRESET_MASK (uint32_t)0x00000080 | |
#define SYSREG_UART1_SOFTRESET_MASK (uint32_t)0x00000100 | |
#define SYSREG_SPI0_SOFTRESET_MASK (uint32_t)0x00000200 | |
#define SYSREG_SPI1_SOFTRESET_MASK (uint32_t)0x00000400 | |
#define SYSREG_I2C0_SOFTRESET_MASK (uint32_t)0x00000800 | |
#define SYSREG_I2C1_SOFTRESET_MASK (uint32_t)0x00001000 | |
#define SYSREG_ACE_SOFTRESET_MASK (uint32_t)0x00002000 | |
#define SYSREG_GPIO_SOFTRESET_MASK (uint32_t)0x00004000 | |
#define SYSREG_IAP_SOFTRESET_MASK (uint32_t)0x00008000 | |
#define SYSREG_EXT_SOFTRESET_MASK (uint32_t)0x00010000 | |
#define SYSREG_FPGA_SOFTRESET_MASK (uint32_t)0x00020000 | |
#define SYSREG_F2M_RESET_ENABLE_MASK (uint32_t)0x00040000 | |
#define SYSREG_PADRESET_ENABLE_MASK (uint32_t)0x00080000 | |
/******************************************************************************/ | |
/* Peripheral memory map */ | |
/******************************************************************************/ | |
#define UART0_BASE 0x40000000U | |
#define SPI0_BASE 0x40001000U | |
#define I2C0_BASE 0x40002000U | |
#define MAC_BASE 0x40003000U | |
#define PDMA_BASE 0x40004000U | |
#define TIMER_BASE 0x40005000U | |
#define WATCHDOG_BASE 0x40006000U | |
#define H2F_IRQ_CTRL_BASE 0x40007000U | |
#define UART1_BASE 0x40010000U | |
#define SPI1_BASE 0x40011000U | |
#define I2C1_BASE 0x40012000U | |
#define GPIO_BASE 0x40013000U | |
#define RTC_BASE 0x40014100U | |
#define FROM_BASE 0x40015000U | |
#define IAP_BASE 0x40016000U | |
#define ACE_BASE 0x40020000U | |
#define FPGA_FABRIC_RAM_BASE 0x40040000U | |
#define FPGA_FABRIC_BASE 0x40050000U | |
#define ENVM_BASE 0x60000000U | |
#define ENVM_REGS_BASE 0x60100000U | |
#define SYSREG_BASE 0xE0042000U | |
/******************************************************************************/ | |
/* bitband address calcualtion macro */ | |
/******************************************************************************/ | |
#define BITBAND_ADDRESS(X) ((X & 0xF0000000U) + 0x02000000U + ((X & 0xFFFFFU) << 5)) | |
/******************************************************************************/ | |
/* Peripheral declaration */ | |
/******************************************************************************/ | |
#define UART0 ((UART_TypeDef *) UART0_BASE) | |
#define UART0_BITBAND ((UART_BitBand_TypeDef *) BITBAND_ADDRESS(UART0_BASE)) | |
#define SPI0 ((SPI_TypeDef *) SPI0_BASE) | |
#define SPI0_BITBAND ((SPI_BitBand_TypeDef *) BITBAND_ADDRESS(SPI0_BASE)) | |
#define I2C0 ((I2C_TypeDef *) I2C0_BASE) | |
#define I2C0_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C0_BASE)) | |
#define MAC ((MAC_TypeDef *) MAC_BASE) | |
#define PDMA ((PDMA_TypeDef *) PDMA_BASE) | |
#define TIMER ((TIMER_TypeDef *) TIMER_BASE) | |
#define TIMER_BITBAND ((TIMER_BitBand_TypeDef *) BITBAND_ADDRESS(TIMER_BASE)) | |
#define WATCHDOG ((WATCHDOG_TypeDef *) WATCHDOG_BASE) | |
#define MSS_IRQ_CTRL ((MSS_IRQ_CTRL_TypeDef *) H2F_IRQ_CTRL_BASE) | |
#define UART1 ((UART_TypeDef *) UART1_BASE) | |
#define UART1_BITBAND ((UART_BitBand_TypeDef *) BITBAND_ADDRESS(UART1_BASE)) | |
#define SPI1 ((SPI_TypeDef *) SPI1_BASE) | |
#define SPI1_BITBAND ((SPI_BitBand_TypeDef *) BITBAND_ADDRESS(SPI1_BASE)) | |
#define I2C1 ((I2C_TypeDef *) I2C1_BASE) | |
#define I2C1_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C1_BASE)) | |
#define GPIO ((GPIO_TypeDef *) GPIO_BASE) | |
#define GPIO_BITBAND ((GPIO_BitBand_TypeDef *) BITBAND_ADDRESS(GPIO_BASE)) | |
#define RTC ((RTC_TypeDef *) RTC_BASE) | |
#define FROM ((void *) FROM_BASE) | |
#define IAP ((IAP_TypeDef *) IAP_BASE) | |
#define ACE ((ACE_TypeDef *) ACE_BASE) | |
#define FPGA_FABRIC_RAM ((void *) FPGA_FABRIC_RAM_BASE) | |
#define FPGA_FABRIC ((void *) FPGA_FABRIC_BASE) | |
#define ENVM ((void *) ENVM_BASE) | |
#define ENVM_REGS ((NVM_TypeDef *) ENVM_REGS_BASE) | |
#define SYSREG ((SYSREG_TypeDef *) SYSREG_BASE) | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif /* __A2FXXXM3_H__ */ | |