📄 s3c4510.h.svn-base
字号:
/*
* File : s3c4510.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://www.fayfayspace.org/license/LICENSE.
*
* Change Logs:
* Date Author Notes
* 2006-03-13 Bernard first version
*/
#ifndef __S3C4510_H__
#define __S3C4510_H__
/*!
* \file s3c4510.h
* \brief samsung 4510 definitions
*/
#ifdef __cplusplus
extern "C" {
#endif
/*!
* \addtogroup xgs3c4510
*/
/*@{*/
/*------------------------------------------------------------------------
* ASIC Address Definition
*----------------------------------------------------------------------*/
#define S3C_REG *(volatile unsigned int *)
/* Special Register Start Address After System Reset */
#define _SPSTR_RESET (S3C_REG(0x1000000))
#define S3C4510_BASE_ADDR 0x3ff0000
#define S3C4510_SRAM_ADDR 0x3fe0000
#define INTADDR (Reset_Addr+0x20)
#define SPSTR (S3C_REG(S3C4510_BASE_ADDR))
/* *********************** */
/* System Manager Register */
/* *********************** */
#define SYSCFG (S3C_REG(S3C4510_BASE_ADDR+0x0000))
#define CLKCON (S3C_REG(S3C4510_BASE_ADDR+0x3000))
#define EXTACON0 (S3C_REG(S3C4510_BASE_ADDR+0x3008))
#define EXTACON1 (S3C_REG(S3C4510_BASE_ADDR+0x300c))
#define EXTDBWTH (S3C_REG(S3C4510_BASE_ADDR+0x3010))
#define ROMCON0 (S3C_REG(S3C4510_BASE_ADDR+0x3014))
#define ROMCON1 (S3C_REG(S3C4510_BASE_ADDR+0x3018))
#define ROMCON2 (S3C_REG(S3C4510_BASE_ADDR+0x301c))
#define ROMCON3 (S3C_REG(S3C4510_BASE_ADDR+0x3020))
#define ROMCON4 (S3C_REG(S3C4510_BASE_ADDR+0x3024))
#define ROMCON5 (S3C_REG(S3C4510_BASE_ADDR+0x3028))
#define DRAMCON0 (S3C_REG(S3C4510_BASE_ADDR+0x302c))
#define DRAMCON1 (S3C_REG(S3C4510_BASE_ADDR+0x3030))
#define DRAMCON2 (S3C_REG(S3C4510_BASE_ADDR+0x3034))
#define DRAMCON3 (S3C_REG(S3C4510_BASE_ADDR+0x3038))
#define REFEXTCON (S3C_REG(S3C4510_BASE_ADDR+0x303c))
/* *********************** */
/* Ethernet BDMA Register */
/* *********************** */
#define BDMATXCON (S3C_REG(S3C4510_BASE_ADDR+0x9000))
#define BDMARXCON (S3C_REG(S3C4510_BASE_ADDR+0x9004))
#define BDMATXPTR (S3C_REG(S3C4510_BASE_ADDR+0x9008))
#define BDMARXPTR (S3C_REG(S3C4510_BASE_ADDR+0x900c))
#define BDMARXLSZ (S3C_REG(S3C4510_BASE_ADDR+0x9010))
#define BDMASTAT (S3C_REG(S3C4510_BASE_ADDR+0x9014))
/* Content Address Memory */
#define CAM_BaseAddr (S3C4510_BASE_ADDR + 0x9100)
#define CAM_BASE (S3C_REG(S3C4510_BASE_ADDR+0x9100))
#define CAM_Reg(x) (S3C_REG(CAM_BaseAddr+(x*0x4)))
#define BDMATXBUF (S3C_REG(S3C4510_BASE_ADDR+0x9200))
#define BDMARXBUF (S3C_REG(S3C4510_BASE_ADDR+0x9800))
/* *********************** */
/* Ethernet MAC Register */
/* *********************** */
#define MACCON (S3C_REG(S3C4510_BASE_ADDR+0xa000))
#define CAMCON (S3C_REG(S3C4510_BASE_ADDR+0xa004))
#define MACTXCON (S3C_REG(S3C4510_BASE_ADDR+0xa008))
#define MACTXSTAT (S3C_REG(S3C4510_BASE_ADDR+0xa00c))
#define MACRXCON (S3C_REG(S3C4510_BASE_ADDR+0xa010))
#define MACRXSTAT (S3C_REG(S3C4510_BASE_ADDR+0xa014))
#define STADATA (S3C_REG(S3C4510_BASE_ADDR+0xa018))
#define STACON (S3C_REG(S3C4510_BASE_ADDR+0xa01c))
#define CAMEN (S3C_REG(S3C4510_BASE_ADDR+0xa028))
#define EMISSCNT (S3C_REG(S3C4510_BASE_ADDR+0xa03c))
#define EPZCNT (S3C_REG(S3C4510_BASE_ADDR+0xa040))
#define ERMPZCNT (S3C_REG(S3C4510_BASE_ADDR+0xa044))
#define ETXSTAT (S3C_REG(S3C4510_BASE_ADDR+0x9040))
#define MACRXDESTR (S3C_REG(S3C4510_BASE_ADDR+0xa064))
#define MACRXSTATEM (S3C_REG(S3C4510_BASE_ADDR+0xa090))
#define MACRXFIFO (S3C_REG(S3C4510_BASE_ADDR+0xa200))
/**************************************************/
/* KS32C50100 : HDLC Channel A */
/**************************************************/
#define HMODEA (S3C_REG(S3C4510_BASE_ADDR+0x7000))
#define HCONA (S3C_REG(S3C4510_BASE_ADDR+0x7004))
#define HSTATA (S3C_REG(S3C4510_BASE_ADDR+0x7008))
#define HINTENA (S3C_REG(S3C4510_BASE_ADDR+0x700c))
#define HTXFIFOCA (S3C_REG(S3C4510_BASE_ADDR+0x7010))
#define HTXFIFOTA (S3C_REG(S3C4510_BASE_ADDR+0x7014))
#define HRXFIFOA (S3C_REG(S3C4510_BASE_ADDR+0x7018))
#define HBRGTCA (S3C_REG(S3C4510_BASE_ADDR+0x701c))
#define HPRMBA (S3C_REG(S3C4510_BASE_ADDR+0x7020))
#define HSAR0A (S3C_REG(S3C4510_BASE_ADDR+0x7024))
#define HSAR1A (S3C_REG(S3C4510_BASE_ADDR+0x7028))
#define HSAR2A (S3C_REG(S3C4510_BASE_ADDR+0x702c))
#define HSAR3A (S3C_REG(S3C4510_BASE_ADDR+0x7030))
#define HMASKA (S3C_REG(S3C4510_BASE_ADDR+0x7034))
#define HDMATXPTRA (S3C_REG(S3C4510_BASE_ADDR+0x7038))
#define HDMARXPTRA (S3C_REG(S3C4510_BASE_ADDR+0x703c))
#define HMFLRA (S3C_REG(S3C4510_BASE_ADDR+0x7040))
#define HRBSRA (S3C_REG(S3C4510_BASE_ADDR+0x7044))
#define HDLCBaseAddr (S3C4510_BASE_ADDR+0x7000)
/**************************************************/
/* KS32C50100 : HDLC Channel B */
/**************************************************/
#define HMODEB (S3C_REG(S3C4510_BASE_ADDR+0x8000))
#define HCONB (S3C_REG(S3C4510_BASE_ADDR+0x8004))
#define HSTATB (S3C_REG(S3C4510_BASE_ADDR+0x8008))
#define HINTENB (S3C_REG(S3C4510_BASE_ADDR+0x800c))
#define HTXFIFOCB (S3C_REG(S3C4510_BASE_ADDR+0x8010))
#define HTXFIFOTB (S3C_REG(S3C4510_BASE_ADDR+0x8014))
#define HRXFIFOB (S3C_REG(S3C4510_BASE_ADDR+0x8018))
#define HBRGTCB (S3C_REG(S3C4510_BASE_ADDR+0x801c))
#define HPRMBB (S3C_REG(S3C4510_BASE_ADDR+0x8020))
#define HSAR0B (S3C_REG(S3C4510_BASE_ADDR+0x8024))
#define HSAR1B (S3C_REG(S3C4510_BASE_ADDR+0x8028))
#define HSAR2B (S3C_REG(S3C4510_BASE_ADDR+0x802c))
#define HSAR3B (S3C_REG(S3C4510_BASE_ADDR+0x8030))
#define HMASKB (S3C_REG(S3C4510_BASE_ADDR+0x8034))
#define HDMATXPTRB (S3C_REG(S3C4510_BASE_ADDR+0x8038))
#define HDMARXPTRB (S3C_REG(S3C4510_BASE_ADDR+0x803c))
#define HMFLRB (S3C_REG(S3C4510_BASE_ADDR+0x8040))
#define HRBSRB (S3C_REG(S3C4510_BASE_ADDR+0x8044))
/********************/
/* I2C Bus Register */
/********************/
#define IICCON (S3C_REG(S3C4510_BASE_ADDR+0xf000))
#define IICBUF (S3C_REG(S3C4510_BASE_ADDR+0xf004))
#define IICPS (S3C_REG(S3C4510_BASE_ADDR+0xf008))
#define IICCOUNT (S3C_REG(S3C4510_BASE_ADDR+0xf00c))
/********************/
/* GDMA 0 */
/********************/
#define GDMACON0 (S3C_REG(S3C4510_BASE_ADDR+0xb000))
#define GDMA0_RUN_ENABLE (S3C_REG(S3C4510_BASE_ADDR+0xb020))
#define GDMASRC0 (S3C_REG(S3C4510_BASE_ADDR+0xb004))
#define GDMADST0 (S3C_REG(S3C4510_BASE_ADDR+0xb008))
#define GDMACNT0 (S3C_REG(S3C4510_BASE_ADDR+0xb00c))
/********************/
/* GDMA 1 */
/********************/
#define GDMACON1 (S3C_REG(S3C4510_BASE_ADDR+0xc000))
#define GDMA1_RUN_ENABLE (S3C_REG(S3C4510_BASE_ADDR+0xc020))
#define GDMASRC1 (S3C_REG(S3C4510_BASE_ADDR+0xc004))
#define GDMADST1 (S3C_REG(S3C4510_BASE_ADDR+0xc008))
#define GDMACNT1 (S3C_REG(S3C4510_BASE_ADDR+0xc00c))
/********************/
/* UART 0 */
/********************/
#define UARTLCON0 (S3C_REG(S3C4510_BASE_ADDR+0xd000))
#define UARTCONT0 (S3C_REG(S3C4510_BASE_ADDR+0xd004))
#define UARTSTAT0 (S3C_REG(S3C4510_BASE_ADDR+0xd008))
#define UARTTXH0 (S3C_REG(S3C4510_BASE_ADDR+0xd00c))
#define UARTRXB0 (S3C_REG(S3C4510_BASE_ADDR+0xd010))
#define UARTBRD0 (S3C_REG(S3C4510_BASE_ADDR+0xd014))
/********************/
/* UART 1 */
/********************/
#define UARTLCON1 (S3C_REG(S3C4510_BASE_ADDR+0xe000))
#define UARTCONT1 (S3C_REG(S3C4510_BASE_ADDR+0xe004))
#define UARTSTAT1 (S3C_REG(S3C4510_BASE_ADDR+0xe008))
#define UARTTXH1 (S3C_REG(S3C4510_BASE_ADDR+0xe00c))
#define UARTRXB1 (S3C_REG(S3C4510_BASE_ADDR+0xe010))
#define UARTBRD1 (S3C_REG(S3C4510_BASE_ADDR+0xe014))
/********************/
/* Timer Register */
/********************/
#define TMOD (S3C_REG(S3C4510_BASE_ADDR+0x6000))
#define TDATA0 (S3C_REG(S3C4510_BASE_ADDR+0x6004))
#define TDATA1 (S3C_REG(S3C4510_BASE_ADDR+0x6008))
#define TCNT0 (S3C_REG(S3C4510_BASE_ADDR+0x600c))
#define TCNT1 (S3C_REG(S3C4510_BASE_ADDR+0x6010))
/**********************/
/* I/O Port Interface */
/**********************/
#define IOPMOD (S3C_REG(S3C4510_BASE_ADDR+0x5000))
#define IOPCON (S3C_REG(S3C4510_BASE_ADDR+0x5004))
#define IOPDATA (S3C_REG(S3C4510_BASE_ADDR+0x5008))
/*********************************/
/* Interrupt Controller Register */
/*********************************/
#define INTMODE (S3C_REG(S3C4510_BASE_ADDR+0x4000))
#define INTPEND (S3C_REG(S3C4510_BASE_ADDR+0x4004))
#define INTMASK (S3C_REG(S3C4510_BASE_ADDR+0x4008))
#define INTPRI0 (S3C_REG(S3C4510_BASE_ADDR+0x400c))
#define INTPRI1 (S3C_REG(S3C4510_BASE_ADDR+0x4010))
#define INTPRI2 (S3C_REG(S3C4510_BASE_ADDR+0x4014))
#define INTPRI3 (S3C_REG(S3C4510_BASE_ADDR+0x4018))
#define INTPRI4 (S3C_REG(S3C4510_BASE_ADDR+0x401c))
#define INTPRI5 (S3C_REG(S3C4510_BASE_ADDR+0x4020))
#define INTOFFSET (S3C_REG(S3C4510_BASE_ADDR+0x4024))
#define INTPNDPRI (S3C_REG(S3C4510_BASE_ADDR+0x4028))
#define INTPNDTST (S3C_REG(S3C4510_BASE_ADDR+0x402C))
#define INTE0 0
#define INTE1 1
#define INTE2 2
#define INTE3 3
#define INTUART0_TX 4
#define INTUART0_RX 5
#define INTUART1_TX 6
#define INTUART1_RX 7
#define INTGDMA0 8
#define INTGDMA1 9
#define INTTIMER0 10
#define INTTIMER1 11
#define INTHDLC0_TX 12
#define INTHDLC0_RX 13
#define INTHDLC1_TX 14
#define INTHDLC1_RX 15
#define INTETH_BDMA_TX 16
#define INTETH_BDMA_RX 17
#define INTETH_MAC_TX 18
#define INTETH_MAC_RX 19
#define INTIIC 20
#define INTGLOBAL 21
/*****************************/
/* 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 0xc0
struct 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;
};
/*@}*/
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -