www.pudn.com > multitaskRTC.rar > 44B.H, change:2006-03-27,size:15467b


 
 
#ifndef __44B0X_H__ 
#define __44B0X_H__ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
#include "option.h" 
 
/* System */ 
#define rSYSCFG		(*(volatile unsigned *)0x1c00000) 
 
/* Cache */ 
#define rNCACHBE0	(*(volatile unsigned *)0x1c00004) 
#define rNCACHBE1	(*(volatile unsigned *)0x1c00008) 
 
/* Bus control */ 
#define rSBUSCON	(*(volatile unsigned *)0x1c40000) 
     
/* Memory control */ 
#define rBWSCON		(*(volatile unsigned *)0x1c80000) 
#define rBANKCON0	(*(volatile unsigned *)0x1c80004) 
#define rBANKCON1	(*(volatile unsigned *)0x1c80008) 
#define rBANKCON2	(*(volatile unsigned *)0x1c8000c) 
#define rBANKCON3	(*(volatile unsigned *)0x1c80010) 
#define rBANKCON4	(*(volatile unsigned *)0x1c80014) 
#define rBANKCON5	(*(volatile unsigned *)0x1c80018) 
#define rBANKCON6	(*(volatile unsigned *)0x1c8001c) 
#define rBANKCON7	(*(volatile unsigned *)0x1c80020) 
#define rREFRESH	(*(volatile unsigned *)0x1c80024) 
#define rBANKSIZE	(*(volatile unsigned *)0x1c80028) 
#define rMRSRB6		(*(volatile unsigned *)0x1c8002c) 
#define rMRSRB7		(*(volatile unsigned *)0x1c80030) 
 
/* UART */ 
#define rULCON0		(*(volatile unsigned *)0x1d00000) 
#define rULCON1		(*(volatile unsigned *)0x1d04000) 
#define rUCON0		(*(volatile unsigned *)0x1d00004) 
#define rUCON1		(*(volatile unsigned *)0x1d04004) 
#define rUFCON0		(*(volatile unsigned *)0x1d00008) 
#define rUFCON1		(*(volatile unsigned *)0x1d04008) 
#define rUMCON0		(*(volatile unsigned *)0x1d0000c) 
#define rUMCON1		(*(volatile unsigned *)0x1d0400c) 
#define rUTRSTAT0	(*(volatile unsigned *)0x1d00010) 
#define rUTRSTAT1	(*(volatile unsigned *)0x1d04010) 
#define rUERSTAT0	(*(volatile unsigned *)0x1d00014) 
#define rUERSTAT1	(*(volatile unsigned *)0x1d04014) 
#define rUFSTAT0	(*(volatile unsigned *)0x1d00018) 
#define rUFSTAT1	(*(volatile unsigned *)0x1d04018) 
#define rUMSTAT0	(*(volatile unsigned *)0x1d0001c) 
#define rUMSTAT1	(*(volatile unsigned *)0x1d0401c) 
#define rUBRDIV0	(*(volatile unsigned *)0x1d00028) 
#define rUBRDIV1	(*(volatile unsigned *)0x1d04028) 
 
#ifdef __BIG_ENDIAN 
#define rUTXH0		(*(volatile unsigned char *)0x1d00023) 
#define rUTXH1		(*(volatile unsigned char *)0x1d04023) 
#define rURXH0		(*(volatile unsigned char *)0x1d00027) 
#define rURXH1		(*(volatile unsigned char *)0x1d04027) 
#define WrUTXH0(ch)	(*(volatile unsigned char *)(0x1d00023))=(unsigned char)(ch) 
#define WrUTXH1(ch)	(*(volatile unsigned char *)(0x1d04023))=(unsigned char)(ch) 
#define RdURXH0()	(*(volatile unsigned char *)(0x1d00027)) 
#define RdURXH1()	(*(volatile unsigned char *)(0x1d04027))   
#define UTXH0		(0x1d00020+3)  //byte_access address by BDMA 
#define UTXH1		(0x1d04020+3) 
#define URXH0		(0x1d00024+3)   
#define URXH1		(0x1d04024+3)   
 
#else //Little Endian 
#define rUTXH0		(*(volatile unsigned char *)0x1d00020) 
#define rUTXH1		(*(volatile unsigned char *)0x1d04020) 
#define rURXH0		(*(volatile unsigned char *)0x1d00024) 
#define rURXH1		(*(volatile unsigned char *)0x1d04024) 
#define WrUTXH0(ch)	(*(volatile unsigned char *)0x1d00020)=(unsigned char)(ch) 
#define WrUTXH1(ch)	(*(volatile unsigned char *)0x1d04020)=(unsigned char)(ch) 
#define RdURXH0()	(*(volatile unsigned char *)0x1d00024) 
#define RdURXH1()	(*(volatile unsigned char *)0x1d04024) 
#define UTXH0		(0x1d00020)    //byte_access address by BDMA 
#define UTXH1		(0x1d04020) 
#define URXH0		(0x1d00024) 
#define URXH1		(0x1d04024) 
#endif 
 
/* SIO */ 
#define rSIOCON		(*(volatile unsigned *)0x1d14000) 
#define rSIODAT		(*(volatile unsigned *)0x1d14004) 
#define rSBRDR		(*(volatile unsigned *)0x1d14008) 
#define rIVTCNT		(*(volatile unsigned *)0x1d1400c) 
#define rDCNTZ		(*(volatile unsigned *)0x1d14010) 
 
/* IIS */ 
#define rIISCON		(*(volatile unsigned *)0x1d18000) 
#define rIISMOD		(*(volatile unsigned *)0x1d18004) 
#define rIISPSR		(*(volatile unsigned *)0x1d18008) 
#define rIISFCON	(*(volatile unsigned *)0x1d1800c) 
 
#ifdef __BIG_ENDIAN 
#define rIISFIF		((volatile unsigned short *)0x1d18012) 
 
#else //Little Endian 
#define rIISFIF		((volatile unsigned short *)0x1d18010) 
#endif 
 
/* I/O PORT */ 
#define rPCONA		(*(volatile unsigned *)0x1d20000) 
#define rPDATA		(*(volatile unsigned *)0x1d20004) 
 
#define rPCONB		(*(volatile unsigned *)0x1d20008) 
#define rPDATB		(*(volatile unsigned *)0x1d2000c) 
 
#define rPCONC		(*(volatile unsigned *)0x1d20010) 
#define rPDATC		(*(volatile unsigned *)0x1d20014) 
#define rPUPC		(*(volatile unsigned *)0x1d20018) 
 
#define rPCOND		(*(volatile unsigned *)0x1d2001c) 
#define rPDATD		(*(volatile unsigned *)0x1d20020) 
#define rPUPD		(*(volatile unsigned *)0x1d20024) 
 
#define rPCONE		(*(volatile unsigned *)0x1d20028) 
#define rPDATE		(*(volatile unsigned *)0x1d2002c) 
#define rPUPE		(*(volatile unsigned *)0x1d20030) 
 
#define rPCONF		(*(volatile unsigned *)0x1d20034) 
#define rPDATF		(*(volatile unsigned *)0x1d20038) 
#define rPUPF		(*(volatile unsigned *)0x1d2003c) 
 
#define rPCONG		(*(volatile unsigned *)0x1d20040) 
#define rPDATG		(*(volatile unsigned *)0x1d20044) 
#define rPUPG		(*(volatile unsigned *)0x1d20048) 
 
#define rSPUCR		(*(volatile unsigned *)0x1d2004c) 
#define rEXTINT		(*(volatile unsigned *)0x1d20050) 
#define rEXTINPND	(*(volatile unsigned *)0x1d20054) 
 
/* WATCHDOG */ 
#define rWTCON		(*(volatile unsigned *)0x1d30000) 
#define rWTDAT		(*(volatile unsigned *)0x1d30004) 
#define rWTCNT		(*(volatile unsigned *)0x1d30008) 
 
/* ADC */ 
#define rADCCON		(*(volatile unsigned *)0x1d40000) 
#define rADCPSR		(*(volatile unsigned *)0x1d40004) 
#define rADCDAT		(*(volatile unsigned *)0x1d40008) 
 
/* Timer */ 
#define rTCFG0		(*(volatile unsigned *)0x1d50000) 
#define rTCFG1		(*(volatile unsigned *)0x1d50004) 
#define rTCON		(*(volatile unsigned *)0x1d50008) 
 
#define rTCNTB0		(*(volatile unsigned *)0x1d5000c) 
#define rTCMPB0		(*(volatile unsigned *)0x1d50010) 
#define rTCNTO0		(*(volatile unsigned *)0x1d50014) 
 
#define rTCNTB1		(*(volatile unsigned *)0x1d50018) 
#define rTCMPB1		(*(volatile unsigned *)0x1d5001c) 
#define rTCNTO1		(*(volatile unsigned *)0x1d50020) 
 
#define rTCNTB2		(*(volatile unsigned *)0x1d50024) 
#define rTCMPB2		(*(volatile unsigned *)0x1d50028) 
#define rTCNTO2		(*(volatile unsigned *)0x1d5002c) 
 
#define rTCNTB3		(*(volatile unsigned *)0x1d50030) 
#define rTCMPB3		(*(volatile unsigned *)0x1d50034) 
#define rTCNTO3		(*(volatile unsigned *)0x1d50038) 
 
#define rTCNTB4		(*(volatile unsigned *)0x1d5003c) 
#define rTCMPB4		(*(volatile unsigned *)0x1d50040) 
#define rTCNTO4		(*(volatile unsigned *)0x1d50044) 
 
#define rTCNTB5		(*(volatile unsigned *)0x1d50048) 
#define rTCNTO5		(*(volatile unsigned *)0x1d5004c) 
 
/* IIC */ 
#define rIICCON         (*(volatile unsigned *)0x1d60000) 
#define rIICSTAT        (*(volatile unsigned *)0x1d60004) 
#define rIICADD         (*(volatile unsigned *)0x1d60008) 
#define rIICDS          (*(volatile unsigned *)0x1d6000c) 
 
/* RTC */ 
#ifdef __BIG_ENDIAN 
#define rRTCCON		(*(volatile unsigned char *)0x1d70043) 
#define rRTCALM         (*(volatile unsigned char *)0x1d70053) 
#define rALMSEC         (*(volatile unsigned char *)0x1d70057) 
#define rALMMIN         (*(volatile unsigned char *)0x1d7005b) 
#define rALMHOUR        (*(volatile unsigned char *)0x1d7005f) 
#define rALMDAY         (*(volatile unsigned char *)0x1d70063) 
#define rALMMON         (*(volatile unsigned char *)0x1d70067) 
#define rALMYEAR        (*(volatile unsigned char *)0x1d7006b) 
#define rRTCRST         (*(volatile unsigned char *)0x1d7006f) 
#define rBCDSEC         (*(volatile unsigned char *)0x1d70073) 
#define rBCDMIN         (*(volatile unsigned char *)0x1d70077) 
#define rBCDHOUR        (*(volatile unsigned char *)0x1d7007b) 
#define rBCDDAY         (*(volatile unsigned char *)0x1d7007f) 
#define rBCDDATE        (*(volatile unsigned char *)0x1d70083) 
#define rBCDMON         (*(volatile unsigned char *)0x1d70087) 
#define rBCDYEAR        (*(volatile unsigned char *)0x1d7008b) 
#define rTICINT         (*(volatile unsigned char *)0x1d7008e) 
#else 
#define rRTCCON         (*(volatile unsigned char *)0x1d70040) 
#define rRTCALM         (*(volatile unsigned char *)0x1d70050) 
#define rALMSEC         (*(volatile unsigned char *)0x1d70054) 
#define rALMMIN         (*(volatile unsigned char *)0x1d70058) 
#define rALMHOUR        (*(volatile unsigned char *)0x1d7005c) 
#define rALMDAY         (*(volatile unsigned char *)0x1d70060) 
#define rALMMON         (*(volatile unsigned char *)0x1d70064) 
#define rALMYEAR        (*(volatile unsigned char *)0x1d70068) 
#define rRTCRST         (*(volatile unsigned char *)0x1d7006c) 
#define rBCDSEC         (*(volatile unsigned char *)0x1d70070) 
#define rBCDMIN         (*(volatile unsigned char *)0x1d70074) 
#define rBCDHOUR        (*(volatile unsigned char *)0x1d70078) 
#define rBCDDAY         (*(volatile unsigned char *)0x1d7007c) 
#define rBCDDATE        (*(volatile unsigned char *)0x1d70080) 
#define rBCDMON         (*(volatile unsigned char *)0x1d70084) 
#define rBCDYEAR        (*(volatile unsigned char *)0x1d70088) 
#define rTICINT         (*(volatile unsigned char *)0x1d7008c) 
#endif 
 
/* Clock & Power management */ 
#define rPLLCON		(*(volatile unsigned *)0x1d80000) 
#define rCLKCON		(*(volatile unsigned *)0x1d80004) 
#define rCLKSLOW	(*(volatile unsigned *)0x1d80008) 
#define rLOCKTIME	(*(volatile unsigned *)0x1d8000c) 
 
/* INTERRUPT */ 
#define rINTCON		(*(volatile unsigned *)0x1e00000) 
#define rINTPND		(*(volatile unsigned *)0x1e00004) 
#define rINTMOD		(*(volatile unsigned *)0x1e00008) 
#define rINTMSK		(*(volatile unsigned *)0x1e0000c) 
 
#define rI_PSLV		(*(volatile unsigned *)0x1e00010) 
#define rI_PMST		(*(volatile unsigned *)0x1e00014) 
#define rI_CSLV		(*(volatile unsigned *)0x1e00018) 
#define rI_CMST		(*(volatile unsigned *)0x1e0001c) 
#define rI_ISPR		(*(volatile unsigned *)0x1e00020) 
#define rI_ISPC		(*(volatile unsigned *)0x1e00024) 
 
#define rF_ISPR		(*(volatile unsigned *)0x1e00038) 
#define rF_ISPC		(*(volatile unsigned *)0x1e0003c) 
 
/* LCD */ 
#define rLCDCON1	(*(volatile unsigned *)0x1f00000) 
#define rLCDCON2	(*(volatile unsigned *)0x1f00004) 
#define rLCDCON3	(*(volatile unsigned *)0x1f00040) 
#define rLCDSADDR1	(*(volatile unsigned *)0x1f00008) 
#define rLCDSADDR2	(*(volatile unsigned *)0x1f0000c) 
#define rLCDSADDR3	(*(volatile unsigned *)0x1f00010) 
#define rREDLUT		(*(volatile unsigned *)0x1f00014) 
#define rGREENLUT	(*(volatile unsigned *)0x1f00018) 
#define rBLUELUT	(*(volatile unsigned *)0x1f0001c) 
#define rDP1_2		(*(volatile unsigned *)0x1f00020) 
#define rDP4_7		(*(volatile unsigned *)0x1f00024) 
#define rDP3_5		(*(volatile unsigned *)0x1f00028) 
#define rDP2_3		(*(volatile unsigned *)0x1f0002c) 
#define rDP5_7		(*(volatile unsigned *)0x1f00030) 
#define rDP3_4		(*(volatile unsigned *)0x1f00034) 
#define rDP4_5		(*(volatile unsigned *)0x1f00038) 
#define rDP6_7		(*(volatile unsigned *)0x1f0003c) 
#define rDITHMODE	(*(volatile unsigned *)0x1f00044) 
 
/* ZDMA0 */ 
#define rZDCON0		(*(volatile unsigned *)0x1e80000) 
#define rZDISRC0	(*(volatile unsigned *)0x1e80004) 
#define rZDIDES0	(*(volatile unsigned *)0x1e80008) 
#define rZDICNT0	(*(volatile unsigned *)0x1e8000c) 
#define rZDCSRC0	(*(volatile unsigned *)0x1e80010) 
#define rZDCDES0	(*(volatile unsigned *)0x1e80014) 
#define rZDCCNT0	(*(volatile unsigned *)0x1e80018) 
 
/* ZDMA1 */ 
#define rZDCON1		(*(volatile unsigned *)0x1e80020) 
#define rZDISRC1	(*(volatile unsigned *)0x1e80024) 
#define rZDIDES1	(*(volatile unsigned *)0x1e80028) 
#define rZDICNT1	(*(volatile unsigned *)0x1e8002c) 
#define rZDCSRC1	(*(volatile unsigned *)0x1e80030) 
#define rZDCDES1	(*(volatile unsigned *)0x1e80034) 
#define rZDCCNT1	(*(volatile unsigned *)0x1e80038) 
 
/* BDMA0 */ 
#define rBDCON0		(*(volatile unsigned *)0x1f80000) 
#define rBDISRC0	(*(volatile unsigned *)0x1f80004) 
#define rBDIDES0	(*(volatile unsigned *)0x1f80008) 
#define rBDICNT0	(*(volatile unsigned *)0x1f8000c) 
#define rBDCSRC0	(*(volatile unsigned *)0x1f80010) 
#define rBDCDES0	(*(volatile unsigned *)0x1f80014) 
#define rBDCCNT0	(*(volatile unsigned *)0x1f80018) 
 
/* BDMA1 */ 
#define rBDCON1		(*(volatile unsigned *)0x1f80020) 
#define rBDISRC1	(*(volatile unsigned *)0x1f80024) 
#define rBDIDES1	(*(volatile unsigned *)0x1f80028) 
#define rBDICNT1	(*(volatile unsigned *)0x1f8002c) 
#define rBDCSRC1	(*(volatile unsigned *)0x1f80030) 
#define rBDCDES1	(*(volatile unsigned *)0x1f80034) 
#define rBDCCNT1	(*(volatile unsigned *)0x1f80038) 
 
/* ISR */ 
#define pISR_RESET	(*(unsigned *)(_ISR_STARTADDRESS+0x0)) 
#define pISR_UNDEF	(*(unsigned *)(_ISR_STARTADDRESS+0x4)) 
#define pISR_SWI	(*(unsigned *)(_ISR_STARTADDRESS+0x8)) 
#define pISR_PABORT	(*(unsigned *)(_ISR_STARTADDRESS+0xc)) 
#define pISR_DABORT	(*(unsigned *)(_ISR_STARTADDRESS+0x10)) 
#define pISR_RESERVED	(*(unsigned *)(_ISR_STARTADDRESS+0x14)) 
#define pISR_IRQ	(*(unsigned *)(_ISR_STARTADDRESS+0x18)) 
#define pISR_FIQ	(*(unsigned *)(_ISR_STARTADDRESS+0x1c)) 
 
#define pISR_ADC	(*(unsigned *)(_ISR_STARTADDRESS+0x20)) 
#define pISR_RTC	(*(unsigned *)(_ISR_STARTADDRESS+0x24)) 
#define pISR_UTXD1	(*(unsigned *)(_ISR_STARTADDRESS+0x28)) 
#define pISR_UTXD0	(*(unsigned *)(_ISR_STARTADDRESS+0x2c)) 
#define pISR_SIO	(*(unsigned *)(_ISR_STARTADDRESS+0x30)) 
#define pISR_IIC	(*(unsigned *)(_ISR_STARTADDRESS+0x34)) 
#define pISR_URXD1	(*(unsigned *)(_ISR_STARTADDRESS+0x38)) 
#define pISR_URXD0	(*(unsigned *)(_ISR_STARTADDRESS+0x3c)) 
#define pISR_TIMER5	(*(unsigned *)(_ISR_STARTADDRESS+0x40)) 
#define pISR_TIMER4	(*(unsigned *)(_ISR_STARTADDRESS+0x44)) 
#define pISR_TIMER3	(*(unsigned *)(_ISR_STARTADDRESS+0x48)) 
#define pISR_TIMER2	(*(unsigned *)(_ISR_STARTADDRESS+0x4c)) 
#define pISR_TIMER1	(*(unsigned *)(_ISR_STARTADDRESS+0x50)) 
#define pISR_TIMER0	(*(unsigned *)(_ISR_STARTADDRESS+0x54)) 
#define pISR_UERR01	(*(unsigned *)(_ISR_STARTADDRESS+0x58)) 
#define pISR_WDT	(*(unsigned *)(_ISR_STARTADDRESS+0x5c)) 
#define pISR_BDMA1	(*(unsigned *)(_ISR_STARTADDRESS+0x60)) 
#define pISR_BDMA0	(*(unsigned *)(_ISR_STARTADDRESS+0x64)) 
#define pISR_ZDMA1	(*(unsigned *)(_ISR_STARTADDRESS+0x68)) 
#define pISR_ZDMA0	(*(unsigned *)(_ISR_STARTADDRESS+0x6c)) 
#define pISR_TICK	(*(unsigned *)(_ISR_STARTADDRESS+0x70)) 
#define pISR_EINT4567	(*(unsigned *)(_ISR_STARTADDRESS+0x74)) 
#define pISR_EINT3	(*(unsigned *)(_ISR_STARTADDRESS+0x78)) 
#define pISR_EINT2	(*(unsigned *)(_ISR_STARTADDRESS+0x7c)) 
#define pISR_EINT1	(*(unsigned *)(_ISR_STARTADDRESS+0x80)) 
#define pISR_EINT0	(*(unsigned *)(_ISR_STARTADDRESS+0x84)) 
 
/* PENDING BIT */ 
//CAUTION:You must clear the pending bit as general special register. 
//        it's different way with KS32C6x00  
#define BIT_ADC		(0x1) 
#define BIT_RTC		(0x1<<1) 
#define BIT_UTXD1	(0x1<<2) 
#define BIT_UTXD0	(0x1<<3) 
#define BIT_SIO		(0x1<<4) 
#define BIT_IIC		(0x1<<5) 
#define BIT_URXD1	(0x1<<6) 
#define BIT_URXD0	(0x1<<7) 
#define BIT_TIMER5	(0x1<<8) 
#define BIT_TIMER4	(0x1<<9) 
#define BIT_TIMER3	(0x1<<10) 
#define BIT_TIMER2	(0x1<<11) 
#define BIT_TIMER1	(0x1<<12) 
#define BIT_TIMER0	(0x1<<13) 
#define BIT_UERR01	(0x1<<14) 
#define BIT_WDT		(0x1<<15) 
#define BIT_BDMA1	(0x1<<16) 
#define BIT_BDMA0	(0x1<<17) 
#define BIT_ZDMA1	(0x1<<18) 
#define BIT_ZDMA0	(0x1<<19) 
#define BIT_TICK	(0x1<<20) 
#define BIT_EINT4567	(0x1<<21) 
#define BIT_EINT3	(0x1<<22) 
#define BIT_EINT2	(0x1<<23) 
#define BIT_EINT1	(0x1<<24) 
#define BIT_EINT0	(0x1<<25) 
#define BIT_GLOBAL	(0x1<<26) 
 
#ifdef __cplusplus 
} 
#endif 
#endif /*__41000_H___*/