📄 at9200.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 + -