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

📄 at9200.h

📁 RT-Thread是发展中的下一代微内核嵌入式实时操作系统
💻 H
字号:
/* * File      : AT9200.h * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006, RT-Thread Develop Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://openlab.rt-thread.com/license/LICENSE * * Change Logs: * Date           Author       Notes *                Triseel       */#ifndef __AT9200_H__#define __AT9200_H__#ifdef __cplusplusextern "C" {#endif/** * @addtogroup AT9200 *//*@{*//*****************************//* CPU Mode                  *//*****************************/#define USERMODE        0x10#define FIQMODE         0x11#define IRQMODE         0x12#define SVCMODE         0x13#define ABORTMODE       0x17#define UNDEFMODE       0x1B#define MODEMASK        0x1F#define NOINT           0xC0struct rt_hw_register{	unsigned long r0;	unsigned long r1;	unsigned long r2;	unsigned long r3;	unsigned long r4;	unsigned long r5;	unsigned long r6;	unsigned long r7;	unsigned long r8;	unsigned long r9;	unsigned long r10;	unsigned long fp;	unsigned long ip;	unsigned long sp;	unsigned long lr;	unsigned long pc;	unsigned long cpsr;	unsigned long ORIG_r0;};#define REG_OUT32(BaseAddr, RegOff, Data)    (    (  *((volatile unsigned int *) (BaseAddr+(RegOff)) )  )=(rt_uint32)(Data)    ) #define REG_IN32(BaseAddr, RegOff)           (       *((volatile unsigned int *) (BaseAddr+(RegOff)) )       )#define BMP_ISSET(BmpVal, SpecifiedBit)      (  (BmpVal) & (SpecifiedBit) ? 1 : 0  )#define BMP_SET(BmpVal, SpecifiedBit)        (  (BmpVal)|= (SpecifiedBit)  )#define BMP_CLEAR(BmpVal, SpecifiedBit)      (  (BmpVal)&=~(SpecifiedBit)  )typedef enum IntVec_E{	SYS_VEC  =1,	PIOA_VEC =2,	PIOB_VEC =3,	PIOC_VEC =4,	UART0_VEC=6,	UART1_VEC=7,	UART2_VEC=8,	UART3_VEC=9,	TC01_VEC =18, 	TC02_VEC =19, 	TC04_VEC =21, 	EMAC_VEC =24, 	PHY_VEC  =25, 	IRQ4_VEC =29, 	MAX_VEC  =32, }IntVec_E;#define CPU_MASTER_CLK    60825600/*89856000*/#define LEDFLASHPORT      0x00004000#define SYS_VEC      1#define PIOA_VEC     2#define PIOB_VEC     3#define PIOC_VEC     4#define UART0_VEC    6#define UART1_VEC    7#define UART2_VEC    8#define UART3_VEC    9#define TC01_VEC     18#define TC02_VEC     19#define TC04_VEC     21#define EMAC_VEC     24#define PHY_VEC      25#define IRQ4_VEC     29#define SYS_INT_ST_BIT         (1<<0)#define SYS_INT_DBGUART_BIT    (1<<1)#define ALL_VEC      0xFFFFFFFF/*9200 functional regs base addr*/#define AT9200_BASE_MC       0xFFFFFF00#define AT9200_BASE_RTC      0xFFFFFE00#define AT9200_BASE_ST       0xFFFFFD00#define AT9200_BASE_PMC      0xFFFFFC00#define AT9200_BASE_CKGR     0xFFFFFC20#define AT9200_BASE_PIOD     0xFFFFFA00#define AT9200_BASE_PIOC     0xFFFFF800#define AT9200_BASE_PIOB     0xFFFFF600#define AT9200_BASE_PIOA     0xFFFFF400#define AT9200_BASE_DBGU     0xFFFFF200#define AT9200_BASE_PDC_DBGU 0xFFFFF300#define AT9200_BASE_AIC      0xFFFFF000#define AT9200_BASE_PDC_SPI  0xFFFE0100#define AT9200_BASE_SPI      0xFFFE0000#define AT9200_BASE_PDC_SSC2 0xFFFD8100#define AT9200_BASE_SSC2     0xFFFD8000#define AT9200_BASE_PDC_SSC1 0xFFFD4100#define AT9200_BASE_SSC1     0xFFFD4000#define AT9200_BASE_PDC_SSC0 0xFFFD0100#define AT9200_BASE_SSC0     0xFFFD0000#define AT9200_BASE_PDC_US3  0xFFFCC100#define AT9200_BASE_US3      0xFFFCC000#define AT9200_BASE_PDC_US2  0xFFFC8100#define AT9200_BASE_US2      0xFFFC8000#define AT9200_BASE_PDC_US1  0xFFFC4100#define AT9200_BASE_US1      0xFFFC4000#define AT9200_BASE_PDC_US0  0xFFFC0100#define AT9200_BASE_US0      0xFFFC0000#define AT9200_BASE_TWI      0xFFFB8000#define AT9200_BASE_PDC_MCI  0xFFFB4100#define AT9200_BASE_MCI      0xFFFB4000#define AT9200_BASE_UDP      0xFFFB0000#define AT9200_BASE_TC5      0xFFFA4080#define AT9200_BASE_TC4      0xFFFA4040#define AT9200_BASE_TC3      0xFFFA4000#define AT9200_BASE_TCB1     0xFFFA4080#define AT9200_BASE_TC2      0xFFFA0080#define AT9200_BASE_TC1      0xFFFA0040#define AT9200_BASE_TC0      0xFFFA0000#define AT9200_BASE_TCB0     0xFFFA0000#define AT9200_BASE_UHP      0x00300000#define AT9200_BASE_EMAC     0xFFFBC000#define AT9200_BASE_EBI      0xFFFFFF60#define AT9200_BASE_SMC2     0xFFFFFF70#define AT9200_BASE_SDRC     0xFFFFFF90#define AT9200_BASE_BFC      0xFFFFFFC0/*AIC relevant regs*/#define AT9200_AIC_IECR      0xFFFFF120  /*(AIC) Interrupt Enable Command Register */#define AT9200_AIC_IDCR      0xFFFFF124  /*(AIC) Interrupt Disable Command Register*/#define AT9200_AIC_ICCR      0xFFFFF128  /*(AIC) Interrupt Clear Command Register  */#define AT9200_AIC_ISCR      0xFFFFF12C  /*(AIC) Interrupt Set Command Register    */#define AT9200_AIC_SMR       0xFFFFF000  /*(AIC) Source Mode Register              */#define AT9200_AIC_EOICR     0xFFFFF130  /*(AIC) End of Interrupt Command Register */#define AT9200_AIC_DCR       0xFFFFF138  /*(AIC) Debug Control Register (Protect)  */#define AT9200_AIC_FFER      0xFFFFF140  /*(AIC) Fast Forcing Enable Register      */#define AT9200_AIC_SVR       0xFFFFF080  /*(AIC) Source Vector Register            */#define AT9200_AIC_SPU       0xFFFFF134  /*(AIC) Spurious Vector Register          */#define AT9200_AIC_FFDR      0xFFFFF144  /*(AIC) Fast Forcing Disable Register     */#define AT9200_AIC_FVR       0xFFFFF104  /*(AIC) FIQ Vector Register               */#define AT9200_AIC_FFSR      0xFFFFF148  /*(AIC) Fast Forcing Status Register      */#define AT9200_AIC_IMR       0xFFFFF110  /*(AIC) Interrupt Mask Register           */#define AT9200_AIC_ISR       0xFFFFF108  /*(AIC) Interrupt Status Register         */#define AT9200_AIC_IVR       0xFFFFF100  /*(AIC) IRQ Vector Register               */#define AT9200_AIC_CISR      0xFFFFF114  /*(AIC) Core Interrupt Status Register    */#define AT9200_AIC_IPR       0xFFFFF10C  /*(AIC) Interrupt Pending Register        *//*PMC relevant regs*/#define AT9200_PMC_SCER      0xFFFFFC00  /*(PMC) System Clock Enable Register     */#define AT9200_PMC_SCDR      0xFFFFFC04  /*(PMC) System Clock Disable Register    */#define AT9200_PMC_SCSR      0xFFFFFC08  /*(PMC) System Clock Status Register     */#define AT9200_PMC_PCER      0xFFFFFC10  /*(PMC) Peripheral Clock Enable Register */#define AT9200_PMC_PCDR      0xFFFFFC14  /*(PMC) Peripheral Clock Disable Register*/#define AT9200_PMC_PCSR      0xFFFFFC18  /*(PMC) Peripheral Clock Status Register */#define AT9200_PMC_MCKR      0xFFFFFC30  /*(PMC) Master Clock Register            */#define AT9200_PMC_IER       0xFFFFFC60  /*(PMC) Interrupt Enable Register        */#define AT9200_PMC_IDR       0xFFFFFC64  /*(PMC) Interrupt Disable Register       */#define AT9200_PMC_SR        0xFFFFFC68  /*(PMC) Status Register                  */#define AT9200_PMC_IMR       0xFFFFFC6C  /*(PMC) Interrupt Mask Register          */#define AT9200_PMC_PCKR      0xFFFFFC40  /*(PMC) Programmable Clock Register      *//*ST relevant regs bit*/#define AT9200_ST_PITS_BIT   0x01  /*reg AT9200_ST_SR*//*ST relevant regs*/#define AT9200_ST_CRTR       0xFFFFFD24  /*(ST) Current Real-time Register   */#define AT9200_ST_IMR        0xFFFFFD1C  /*(ST) Interrupt Mask Register      */#define AT9200_ST_IER        0xFFFFFD14  /*(ST) Interrupt Enable Register    */#define AT9200_ST_RTMR       0xFFFFFD0C  /*(ST) Real-time Mode Register      */#define AT9200_ST_PIMR       0xFFFFFD04  /*(ST) Period Interval Mode Register*/#define AT9200_ST_RTAR       0xFFFFFD20  /*(ST) Real-time Alarm Register     */#define AT9200_ST_IDR        0xFFFFFD18  /*(ST) Interrupt Disable Register   */#define AT9200_ST_SR         0xFFFFFD10  /*(ST) Status Register              */#define AT9200_ST_WDMR       0xFFFFFD08  /*(ST) Watchdog Mode Register       */#define AT9200_ST_CR         0xFFFFFD00  /*(ST) Control Register             *//*UART relevant regs bit*/#define AT9200_US_RXRDY_BIT      0x01   /*(UART)Rx ready(reg AT9200_UART_IER_OFF)*/#define AT9200_US_RSTRX_VAL      0x100  /*(UART)Reset Rx(reg AT9200_UART_CR_OFF)*/#define AT9200_US_TXEMPTY_VAL    0x200  /*(UART)Tx buf empty(reg AT9200_UART_CSR_OFF)*//*UART relevant regs off*/#define AT9200_UART_CR_OFF   0x00  /*(UART)Control Register*/#define AT9200_UART_MR_OFF   0x04  /*(UART)Mode Register*/#define AT9200_UART_IER_OFF  0x08  /*(UART)Interrupt Enable Register*/#define AT9200_UART_IDR_OFF  0x0C  /*(UART)Interrupt Disable Register*/#define AT9200_UART_IMR_OFF  0x10  /*(UART)Interrupt Mask Register*/#define AT9200_UART_CSR_OFF  0x14  /*(UART)Channel Status Register*/#define AT9200_UART_RHR_OFF  0x18  /*(UART)Receiver Holding Register*/#define AT9200_UART_THR_OFF  0x1C  /*(UART)Transmitter Holding Register*/#define AT9200_UART_BRGR_OFF 0x20  /*(UART)Baud Rate Generator Register*/  /*the upper 9 regs are the same in UART_x & UART_DBG*/#define AT9200_UART_RTOR_OFF 0x24  /*(UART)Receiver Time-out Register*/#define AT9200_UART_TTGR_OFF 0x28  /*(UART)Transmitter Time-guard Register*//*UART pins*/#define UARTDBG_TXD          31#define UARTDBG_RXD          30#define UART0_TXD            17#define UART0_RXD            18#define UART1_TXD            20#define UART1_RXD            21#define UART2_TXD            23#define UART2_RXD            22#define UART3_TXD            05#define UART3_RXD            06/*PIOD relevant regs*/#define AT9200_PIOD_PDSR     0xFFFFFA3C#define AT9200_PIOD_CODR     0xFFFFFA34#define AT9200_PIOD_OWER     0xFFFFFAA0#define AT9200_PIOD_MDER     0xFFFFFA50#define AT9200_PIOD_IMR      0xFFFFFA48#define AT9200_PIOD_IER      0xFFFFFA40#define AT9200_PIOD_ODSR     0xFFFFFA38#define AT9200_PIOD_SODR     0xFFFFFA30#define AT9200_PIOD_PER      0xFFFFFA00#define AT9200_PIOD_OWDR     0xFFFFFAA4#define AT9200_PIOD_PPUER    0xFFFFFA64#define AT9200_PIOD_MDDR     0xFFFFFA54#define AT9200_PIOD_ISR      0xFFFFFA4C#define AT9200_PIOD_IDR      0xFFFFFA44#define AT9200_PIOD_PDR      0xFFFFFA04#define AT9200_PIOD_ODR      0xFFFFFA14#define AT9200_PIOD_OWSR     0xFFFFFAA8#define AT9200_PIOD_ABSR     0xFFFFFA78#define AT9200_PIOD_ASR      0xFFFFFA70#define AT9200_PIOD_PPUSR    0xFFFFFA68#define AT9200_PIOD_PPUDR    0xFFFFFA60#define AT9200_PIOD_MDSR     0xFFFFFA58#define AT9200_PIOD_PSR      0xFFFFFA08#define AT9200_PIOD_OER      0xFFFFFA10#define AT9200_PIOD_OSR      0xFFFFFA18#define AT9200_PIOD_IFER     0xFFFFFA20#define AT9200_PIOD_BSR      0xFFFFFA74#define AT9200_PIOD_IFDR     0xFFFFFA24#define AT9200_PIOD_IFSR     0xFFFFFA28/*PIOC relevant regs*/#define AT9200_PIOC_IFDR     0xFFFFF824#define AT9200_PIOC_ODR      0xFFFFF814#define AT9200_PIOC_ABSR     0xFFFFF878#define AT9200_PIOC_SODR     0xFFFFF830#define AT9200_PIOC_IFSR     0xFFFFF828#define AT9200_PIOC_CODR     0xFFFFF834#define AT9200_PIOC_ODSR     0xFFFFF838#define AT9200_PIOC_IER      0xFFFFF840#define AT9200_PIOC_IMR      0xFFFFF848#define AT9200_PIOC_OWDR     0xFFFFF8A4#define AT9200_PIOC_MDDR     0xFFFFF854#define AT9200_PIOC_PDSR     0xFFFFF83C#define AT9200_PIOC_IDR      0xFFFFF844#define AT9200_PIOC_ISR      0xFFFFF84C#define AT9200_PIOC_PDR      0xFFFFF804#define AT9200_PIOC_OWSR     0xFFFFF8A8#define AT9200_PIOC_OWER     0xFFFFF8A0#define AT9200_PIOC_ASR      0xFFFFF870#define AT9200_PIOC_PPUSR    0xFFFFF868#define AT9200_PIOC_PPUDR    0xFFFFF860#define AT9200_PIOC_MDSR     0xFFFFF858#define AT9200_PIOC_MDER     0xFFFFF850#define AT9200_PIOC_IFER     0xFFFFF820#define AT9200_PIOC_OSR      0xFFFFF818#define AT9200_PIOC_OER      0xFFFFF810#define AT9200_PIOC_PSR      0xFFFFF808#define AT9200_PIOC_PER      0xFFFFF800#define AT9200_PIOC_BSR      0xFFFFF874#define AT9200_PIOC_PPUER    0xFFFFF864/*PIOB relevant regs*/#define AT9200_PIOB_OWSR     0xFFFFF6A8#define AT9200_PIOB_PPUSR    0xFFFFF668#define AT9200_PIOB_PPUDR    0xFFFFF660#define AT9200_PIOB_MDSR     0xFFFFF658#define AT9200_PIOB_MDER     0xFFFFF650#define AT9200_PIOB_IMR      0xFFFFF648#define AT9200_PIOB_OSR      0xFFFFF618#define AT9200_PIOB_OER      0xFFFFF610#define AT9200_PIOB_PSR      0xFFFFF608#define AT9200_PIOB_PER      0xFFFFF600#define AT9200_PIOB_BSR      0xFFFFF674#define AT9200_PIOB_PPUER    0xFFFFF664#define AT9200_PIOB_IFDR     0xFFFFF624#define AT9200_PIOB_ODR      0xFFFFF614#define AT9200_PIOB_ABSR     0xFFFFF678#define AT9200_PIOB_ASR      0xFFFFF670#define AT9200_PIOB_IFER     0xFFFFF620#define AT9200_PIOB_IFSR     0xFFFFF628#define AT9200_PIOB_SODR     0xFFFFF630#define AT9200_PIOB_ODSR     0xFFFFF638#define AT9200_PIOB_CODR     0xFFFFF634#define AT9200_PIOB_PDSR     0xFFFFF63C#define AT9200_PIOB_OWER     0xFFFFF6A0#define AT9200_PIOB_IER      0xFFFFF640#define AT9200_PIOB_OWDR     0xFFFFF6A4#define AT9200_PIOB_MDDR     0xFFFFF654#define AT9200_PIOB_ISR      0xFFFFF64C#define AT9200_PIOB_IDR      0xFFFFF644#define AT9200_PIOB_PDR      0xFFFFF604/*PIOA relevant regs*/#define AT9200_PIOA_IMR      0xFFFFF448  /*(PIOA) Interrupt Mask Register      */#define AT9200_PIOA_IER      0xFFFFF440  /*(PIOA) Interrupt Enable Register    */#define AT9200_PIOA_OWDR     0xFFFFF4A4  /*(PIOA) Output Write Disable Register*/#define AT9200_PIOA_ISR      0xFFFFF44C  /*(PIOA) Interrupt Status Register    */#define AT9200_PIOA_PPUDR    0xFFFFF460  /*(PIOA) Pull-up Disable Register     */#define AT9200_PIOA_MDSR     0xFFFFF458  /*(PIOA) Multi-driver Status Register */#define AT9200_PIOA_MDER     0xFFFFF450  /*(PIOA) Multi-driver Enable Register */#define AT9200_PIOA_PER      0xFFFFF400  /*(PIOA) PIO Enable Register          */#define AT9200_PIOA_PSR      0xFFFFF408  /*(PIOA) PIO Status Register          */#define AT9200_PIOA_OER      0xFFFFF410  /*(PIOA) Output Enable Register       */#define AT9200_PIOA_BSR      0xFFFFF474  /*(PIOA) Select B Register            */#define AT9200_PIOA_PPUER    0xFFFFF464  /*(PIOA) Pull-up Enable Register      */#define AT9200_PIOA_MDDR     0xFFFFF454  /*(PIOA) Multi-driver Disable Register*/#define AT9200_PIOA_PDR      0xFFFFF404  /*(PIOA) PIO Disable Register         */#define AT9200_PIOA_ODR      0xFFFFF414  /*(PIOA) Output Disable Registerr     */#define AT9200_PIOA_IFDR     0xFFFFF424  /*(PIOA) Input Filter Disable Register*/#define AT9200_PIOA_ABSR     0xFFFFF478  /*(PIOA) AB Select Status Register    */#define AT9200_PIOA_ASR      0xFFFFF470  /*(PIOA) Select A Register            */#define AT9200_PIOA_PPUSR    0xFFFFF468  /*(PIOA) Pad Pull-up Status Register  */#define AT9200_PIOA_ODSR     0xFFFFF438  /*(PIOA) Output Data Status Register  */#define AT9200_PIOA_SODR     0xFFFFF430  /*(PIOA) Set Output Data Register     */#define AT9200_PIOA_IFSR     0xFFFFF428  /*(PIOA) Input Filter Status Register */#define AT9200_PIOA_IFER     0xFFFFF420  /*(PIOA) Input Filter Enable Register */#define AT9200_PIOA_OSR      0xFFFFF418  /*(PIOA) Output Status Register       */#define AT9200_PIOA_IDR      0xFFFFF444  /*(PIOA) Interrupt Disable Register   */#define AT9200_PIOA_PDSR     0xFFFFF43C  /*(PIOA) Pin Data Status Register     */#define AT9200_PIOA_CODR     0xFFFFF434  /*(PIOA) Clear Output Data Register   */#define AT9200_PIOA_OWSR     0xFFFFF4A8  /*(PIOA) Output Write Status Register */#define AT9200_PIOA_OWER     0xFFFFF4A0  /*(PIOA) Output Write Enable Register *//*@}*/#ifdef __cplusplus}#endif#endif  /*#ifndef __AT9200_H__'s end*/

⌨️ 快捷键说明

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