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

📄 s3c4510b.h

📁 移植的arm内核芯片 s3c4510 的ucos-ii的源码
💻 H
字号:
/*************************************************************************/
/*                                                                       */
/* FILE NAME                                      VERSION                */
/*                                                                       */
/*      netstart.h                     		  KS32C50100   : version 1.0 */
/*                                                                       */
/* COMPONENT                                                             */
/*                                                                       */
/*                                                                       */
/* DESCRIPTION                                                           */
/*                                                                       */
/*      Board Specific Routines for netstart series.                     */
/*                                                                       */
/* AUTHOR                                                                */
/*                                                                       */
/*                                                                       */
/* DATA STRUCTURES                                                       */
/*                                                                       */
/*                                                                       */
/* FUNCTIONS                                                             */
/*                                                                       */
/*                                                                       */
/*************************************************************************/
#ifndef _NETSTART_H
#define _NETSTART_H

//#include <std.h>
#include "C_optdef.h"

#define BD_LAN_STOP     {}
#define DEBUG   0           /* DEBUG mode */

#define REG32         volatile unsigned long

/*------------------------------------------------------------------------
 *	  ASIC Address Definition
 *----------------------------------------------------------------------*/
#define VPint    *(volatile unsigned int *)
#define VPshort  *(volatile unsigned short *)
#define VPchar   *(volatile unsigned char *)

/* Special Register Start Address After System Reset */
#define _SPSTR_RESET    (VPint(0x0000000))
#define Base_Addr		0x3ff0000
#define INTADDR 		(Reset_Addr+0x20)		
#define SPSTR      		(VPint(Base_Addr))

/* *********************** */
/* System Manager Register */
/* *********************** */
#define SYSCFG		(VPint(Base_Addr+0x0000))
#define CLKCON      (VPint(Base_Addr+0x3000))
#define EXTACON0	(VPint(Base_Addr+0x3008))
#define EXTACON1	(VPint(Base_Addr+0x300c))
#define EXTDBWTH	(VPint(Base_Addr+0x3010))
#define ROMCON0		(VPint(Base_Addr+0x3014))
#define ROMCON1		(VPint(Base_Addr+0x3018))
#define ROMCON2		(VPint(Base_Addr+0x301c))
#define ROMCON3		(VPint(Base_Addr+0x3020))
#define ROMCON4		(VPint(Base_Addr+0x3024))
#define ROMCON5		(VPint(Base_Addr+0x3028))
#define DRAMCON0	(VPint(Base_Addr+0x302c))
#define DRAMCON1	(VPint(Base_Addr+0x3030))
#define DRAMCON2	(VPint(Base_Addr+0x3034))
#define DRAMCON3	(VPint(Base_Addr+0x3038))
#define REFEXTCON	(VPint(Base_Addr+0x303c))

/* *********************** */
/* Ethernet BDMA Register  */
/* *********************** */
#define BDMATXCON	(VPint(Base_Addr+0x9000))
#define BDMARXCON	(VPint(Base_Addr+0x9004))
#define BDMATXPTR	(VPint(Base_Addr+0x9008))
#define BDMARXPTR	(VPint(Base_Addr+0x900c))
#define BDMARXLSZ	(VPint(Base_Addr+0x9010))
#define BDMASTAT	(VPint(Base_Addr+0x9014))

/* Content Address Memory */
#define CAM_BaseAddr	(Base_Addr + 0x9100)
#define CAM_BASE	(VPint(Base_Addr+0x9100))
#define CAM_Reg(x)  (VPint(CAM_BaseAddr+(x*0x4)))

#define BDMATXBUF	(VPint(Base_Addr+0x9200))
#define BDMARXBUF	(VPint(Base_Addr+0x9800))

/* *********************** */
/* Ethernet MAC Register   */
/* *********************** */
#define MACCON		(VPint(Base_Addr+0xa000))
#define CAMCON		(VPint(Base_Addr+0xa004))
#define MACTXCON	(VPint(Base_Addr+0xa008))
#define MACTXSTAT	(VPint(Base_Addr+0xa00c))
#define MACRXCON	(VPint(Base_Addr+0xa010))
#define MACRXSTAT	(VPint(Base_Addr+0xa014))
#define STADATA		(VPint(Base_Addr+0xa018))
#define STACON		(VPint(Base_Addr+0xa01c))
#define CAMEN		(VPint(Base_Addr+0xa028))
#define EMISSCNT	(VPint(Base_Addr+0xa03c))
#define EPZCNT		(VPint(Base_Addr+0xa040))
#define ERMPZCNT	(VPint(Base_Addr+0xa044))
#define ETXSTAT		(VPint(Base_Addr+0x9040))
#define MACRXDESTR	(VPint(Base_Addr+0xa064))
#define MACRXSTATEM	(VPint(Base_Addr+0xa090))
#define MACRXFIFO	(VPint(Base_Addr+0xa200))

/**************************************************/
/* KS32C50100 : HDLC Channel A                    */
/**************************************************/
#define HMODEA 		(VPint(Base_Addr+0x7000))
#define HCONA 		(VPint(Base_Addr+0x7004))
#define HSTATA  	(VPint(Base_Addr+0x7008))
#define HINTENA 	(VPint(Base_Addr+0x700c))
#define HTXFIFOCA 	(VPint(Base_Addr+0x7010))
#define HTXFIFOTA 	(VPint(Base_Addr+0x7014))
#define HRXFIFOA 	(VPint(Base_Addr+0x7018))
#define HBRGTCA		(VPint(Base_Addr+0x701c))
#define HPRMBA	 	(VPint(Base_Addr+0x7020))
#define HSAR0A 		(VPint(Base_Addr+0x7024))
#define HSAR1A	 	(VPint(Base_Addr+0x7028))
#define HSAR2A	 	(VPint(Base_Addr+0x702c))
#define HSAR3A	 	(VPint(Base_Addr+0x7030))
#define HMASKA 		(VPint(Base_Addr+0x7034))
#define HDMATXPTRA 	(VPint(Base_Addr+0x7038))
#define HDMARXPTRA 	(VPint(Base_Addr+0x703c))
#define HMFLRA 		(VPint(Base_Addr+0x7040))
#define HRBSRA 		(VPint(Base_Addr+0x7044))
#define HDLCBaseAddr	  	(Base_Addr+0x7000)
	
/**************************************************/
/* KS32C50100 : HDLC Channel B                    */
/**************************************************/
#define HMODEB 		(VPint(Base_Addr+0x8000))
#define HCONB 		(VPint(Base_Addr+0x8004))
#define HSTATB  	(VPint(Base_Addr+0x8008))
#define HINTENB 	(VPint(Base_Addr+0x800c))
#define HTXFIFOCB 	(VPint(Base_Addr+0x8010))
#define HTXFIFOTB 	(VPint(Base_Addr+0x8014))
#define HRXFIFOB 	(VPint(Base_Addr+0x8018))
#define HBRGTCB		(VPint(Base_Addr+0x801c))
#define HPRMBB	 	(VPint(Base_Addr+0x8020))
#define HSAR0B 		(VPint(Base_Addr+0x8024))
#define HSAR1B	 	(VPint(Base_Addr+0x8028))
#define HSAR2B	 	(VPint(Base_Addr+0x802c))
#define HSAR3B	 	(VPint(Base_Addr+0x8030))
#define HMASKB 		(VPint(Base_Addr+0x8034))
#define HDMATXPTRB 	(VPint(Base_Addr+0x8038))
#define HDMARXPTRB 	(VPint(Base_Addr+0x803c))
#define HMFLRB 		(VPint(Base_Addr+0x8040))
#define HRBSRB 		(VPint(Base_Addr+0x8044))


/********************/
/* I2C Bus Register */
/********************/
#define IICCON	 	(VPint(Base_Addr+0xf000))
#define IICBUF	 	(VPint(Base_Addr+0xf004))
#define IICPS	 	(VPint(Base_Addr+0xf008))
#define IICCOUNT 	(VPint(Base_Addr+0xf00c))

/********************/
/*    GDMA 0        */
/********************/
#define GDMACON0	(VPint(Base_Addr+0xb000))
#define GDMA0_RUN_ENABLE (VPint(Base_Addr+0xb020))
#define GDMASRC0	(VPint(Base_Addr+0xb004))
#define GDMADST0	(VPint(Base_Addr+0xb008))
#define GDMACNT0	(VPint(Base_Addr+0xb00c))

/********************/
/*    GDMA 1        */
/********************/
#define GDMACON1	(VPint(Base_Addr+0xc000))
#define GDMA1_RUN_ENABLE (VPint(Base_Addr+0xc020))
#define GDMASRC1	(VPint(Base_Addr+0xc004))
#define GDMADST1	(VPint(Base_Addr+0xc008))
#define GDMACNT1	(VPint(Base_Addr+0xc00c))

/********************/
/*      UART 0      */
/********************/
#define UARTLCON0   (VPint(Base_Addr+0xd000))
#define UARTCONT0   (VPint(Base_Addr+0xd004))
#define UARTSTAT0   (VPint(Base_Addr+0xd008))
#define UARTTXH0    (VPint(Base_Addr+0xd00c))
#define UARTRXB0    (VPint(Base_Addr+0xd010))
#define UARTBRD0    (VPint(Base_Addr+0xd014))

/********************/
/*     UART 1       */
/********************/
#define UARTLCON1   (VPint(Base_Addr+0xe000))
#define UARTCONT1   (VPint(Base_Addr+0xe004))
#define UARTSTAT1   (VPint(Base_Addr+0xe008))
#define UARTTXH1    (VPint(Base_Addr+0xe00c))
#define UARTRXB1    (VPint(Base_Addr+0xe010))
#define UARTBRD1    (VPint(Base_Addr+0xe014))

/********************/
/*  Timer Register  */
/********************/
#define TMOD  	  	(VPint(Base_Addr+0x6000))
#define TDATA0		(VPint(Base_Addr+0x6004))
#define TDATA1		(VPint(Base_Addr+0x6008))
#define TCNT0		(VPint(Base_Addr+0x600c))
#define TCNT1		(VPint(Base_Addr+0x6010))

/**********************/
/* I/O Port Interface */
/**********************/
#define IOPMOD	  	(VPint(Base_Addr+0x5000))
#define IOPCON  	(VPint(Base_Addr+0x5004))
#define IOPDATA 	(VPint(Base_Addr+0x5008))

/*********************************/
/* Interrupt Controller Register */
/*********************************/
#define INTMODE     (VPint(Base_Addr+0x4000))
#define INTPEND     (VPint(Base_Addr+0x4004))
#define INTMASK     (VPint(Base_Addr+0x4008))

#define INTPRI0     (VPint(Base_Addr+0x400c))
#define INTPRI1		(VPint(Base_Addr+0x4010))
#define INTPRI2		(VPint(Base_Addr+0x4014))
#define INTPRI3		(VPint(Base_Addr+0x4018))
#define INTPRI4		(VPint(Base_Addr+0x401c))
#define INTPRI5		(VPint(Base_Addr+0x4020))
#define INTOFFSET	(VPint(Base_Addr+0x4024))
#define INTPNDPRI	(VPint(Base_Addr+0x4028))
#define INTPNDTST	(VPint(Base_Addr+0x402C))

/**********************************/
/* Enable HDLC Interrupt for DISI */
/**********************************/
#define BD_ALLOW_INTERRUPTS     INTMASK &= ~(1<<(0xc000))
#define BD_DISALLOW_INTERRUPTS  INTMASK |=  (1<<(0xc000))

///////////////////////////////////////////////////////
//Define all isr address 
///////////////////////////////////////////////////////

//ISR related to ARM exception 
//#define pISR_RESET		(*(unsigned *)(_ISR_STARTADDRESS+4*0))
#define pISR_ArmUndef	(*(unsigned *)(_ISR_STARTADDRESS+4*1))
#define pISR_ArmSwi		(*(unsigned *)(_ISR_STARTADDRESS+4*2))
#define pISR_ArmPre		(*(unsigned *)(_ISR_STARTADDRESS+4*3))
#define pISR_ArmAbort	(*(unsigned *)(_ISR_STARTADDRESS+4*4))
#define pISR_ArmRev		(*(unsigned *)(_ISR_STARTADDRESS+4*5))
#define pISR_ArmIrq		(*(unsigned *)(_ISR_STARTADDRESS+4*6))
#define pISR_ArmFiq		(*(unsigned *)(_ISR_STARTADDRESS+4*7))

//ISR related to prioty start address defines
#define pISR_PRIOTY0	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*0))
#define pISR_PRIOTY1	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*1))
#define pISR_PRIOTY2	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*2))
#define pISR_PRIOTY3	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*3))
#define pISR_PRIOTY4	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*4))
#define pISR_PRIOTY5	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*5))
#define pISR_PRIOTY6	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*6))
#define pISR_PRIOTY7	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*7))
#define pISR_PRIOTY8	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*8))
#define pISR_PRIOTY9	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*9))
#define pISR_PRIOTY10	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*10))
#define pISR_PRIOTY11	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*11))
#define pISR_PRIOTY12	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*12))
#define pISR_PRIOTY13	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*13))
#define pISR_PRIOTY14	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*14))
#define pISR_PRIOTY15	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*15))
#define pISR_PRIOTY16	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*16))
#define pISR_PRIOTY17	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*17))
#define pISR_PRIOTY18	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*18))
#define pISR_PRIOTY19	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*19))
#define pISR_PRIOTY20	(*(unsigned *)(_PRIO_ISR_STARTADDR+4*20))

//INTR MASK CONSTANT DEFINE
#define ALL_INTR_MASK	0x003FFFFF

#define BIT_EXINT0				(0x01<<0)
#define BIT_EXINT1				(0x01<<1)
#define BIT_EXINT2				(0x01<<2)
#define BIT_EXINT3				(0x01<<3)
#define BIT_UART0_TXINTR		(0x01<<4)
#define BIT_UART0_RXINTR		(0x01<<5)
#define BIT_UART1_TXINTR		(0x01<<6)
#define BIT_UART1_RXINTR		(0x01<<7)
#define BIT_GDMA0_INTR			(0x01<<8)
#define BIT_GDMA1_INTR			(0x01<<9)
#define BIT_TIMER0_INTR			(0x01<<10)
#define BIT_TIMER1_INTR			(0x01<<11)
#define BIT_HDLCA_TXINTR		(0x01<<12)
#define BIT_HDLCA_RXINTR		(0x01<<13)
#define BIT_HDLCB_TXINTR		(0x01<<14)
#define BIT_HDLCB_RXINTR		(0x01<<15)
#define BIT_NET_BDMA_TXINTR		(0x01<<16)
#define BIT_NET_BDMA_RXINTR		(0x01<<17)
#define BIT_NET_MAC_TXINTR		(0x01<<18)
#define BIT_NET_MAC_RXINTR		(0x01<<19)
#define BIT_IIC_INTR			(0x01<<20)
#define BIT_GLOBAL_INTR			(0x01<<21)



#endif /* _NETSTART_H */

⌨️ 快捷键说明

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