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

📄 s3c2410.h

📁 基于s3c2440的U盘读写程序
💻 H
📖 第 1 页 / 共 4 页
字号:
        S3C24X0_REG8	res1[3];
        S3C24X0_REG8	EP_DMA_CON;
        S3C24X0_REG8	res2[3];
        S3C24X0_REG8	EP_DMA_UNIT;
        S3C24X0_REG8	res3[3];
        S3C24X0_REG8	EP_DMA_FIFO;
        S3C24X0_REG8	res4[3];
        S3C24X0_REG8	EP_DMA_TTC_L;
        S3C24X0_REG8	res5[3];
        S3C24X0_REG8	EP_DMA_TTC_M;
        S3C24X0_REG8	res6[3];
        S3C24X0_REG8	EP_DMA_TTC_H;
        #else /*  little endian */
        S3C24X0_REG8	EP_DMA_CON;
        S3C24X0_REG8	res1[3];
        S3C24X0_REG8	EP_DMA_UNIT;
        S3C24X0_REG8	res2[3];
        S3C24X0_REG8	EP_DMA_FIFO;
        S3C24X0_REG8	res3[3];
        S3C24X0_REG8	EP_DMA_TTC_L;
        S3C24X0_REG8	res4[3];
        S3C24X0_REG8	EP_DMA_TTC_M;
        S3C24X0_REG8	res5[3];
        S3C24X0_REG8	EP_DMA_TTC_H;
        S3C24X0_REG8	res6[3];
        #endif
    } 
    /*__attribute__((__packed__))*/ S3C24X0_USB_DEV_DMAS;
//    __packed
		typedef struct 
    {
        #ifdef __BIG_ENDIAN
        S3C24X0_REG8	res1[3];
        S3C24X0_REG8	FUNC_ADDR_REG;
        S3C24X0_REG8	res2[3];
        S3C24X0_REG8	PWR_REG;
        S3C24X0_REG8	res3[3];
        S3C24X0_REG8	EP_INT_REG;
        S3C24X0_REG8	res4[15];
        S3C24X0_REG8	USB_INT_REG;
        S3C24X0_REG8	res5[3];
        S3C24X0_REG8	EP_INT_EN_REG;
        S3C24X0_REG8	res6[15];
        S3C24X0_REG8	USB_INT_EN_REG;
        S3C24X0_REG8	res7[3];
        S3C24X0_REG8	FRAME_NUM1_REG;
        S3C24X0_REG8	res8[3];
        S3C24X0_REG8	FRAME_NUM2_REG;
        S3C24X0_REG8	res9[3];
        S3C24X0_REG8	INDEX_REG;
        S3C24X0_REG8	res10[7];
        S3C24X0_REG8	MAXP_REG;
        S3C24X0_REG8	res11[3];
        S3C24X0_REG8	EP0_CSR_IN_CSR1_REG;
        S3C24X0_REG8	res12[3];
        S3C24X0_REG8	IN_CSR2_REG;
        S3C24X0_REG8	res13[7];
        S3C24X0_REG8	OUT_CSR1_REG;
        S3C24X0_REG8	res14[3];
        S3C24X0_REG8	OUT_CSR2_REG;
        S3C24X0_REG8	res15[3];
        S3C24X0_REG8	OUT_FIFO_CNT1_REG;
        S3C24X0_REG8	res16[3];
        S3C24X0_REG8	OUT_FIFO_CNT2_REG;
        #else /*  little endian */
        S3C24X0_REG8	FUNC_ADDR_REG;
        S3C24X0_REG8	res1[3];
        S3C24X0_REG8	PWR_REG;
        S3C24X0_REG8	res2[3];
        S3C24X0_REG8	EP_INT_REG;
        S3C24X0_REG8	res3[15];
        S3C24X0_REG8	USB_INT_REG;
        S3C24X0_REG8	res4[3];
        S3C24X0_REG8	EP_INT_EN_REG;
        S3C24X0_REG8	res5[15];
        S3C24X0_REG8	USB_INT_EN_REG;
        S3C24X0_REG8	res6[3];
        S3C24X0_REG8	FRAME_NUM1_REG;
        S3C24X0_REG8	res7[3];
        S3C24X0_REG8	FRAME_NUM2_REG;
        S3C24X0_REG8	res8[3];
        S3C24X0_REG8	INDEX_REG;
        S3C24X0_REG8	res9[7];
        S3C24X0_REG8	MAXP_REG;
        S3C24X0_REG8	res10[7];
        S3C24X0_REG8	EP0_CSR_IN_CSR1_REG;
        S3C24X0_REG8	res11[3];
        S3C24X0_REG8	IN_CSR2_REG;
        S3C24X0_REG8	res12[3];
        S3C24X0_REG8	OUT_CSR1_REG;
        S3C24X0_REG8	res13[7];
        S3C24X0_REG8	OUT_CSR2_REG;
        S3C24X0_REG8	res14[3];
        S3C24X0_REG8	OUT_FIFO_CNT1_REG;
        S3C24X0_REG8	res15[3];
        S3C24X0_REG8	OUT_FIFO_CNT2_REG;
        S3C24X0_REG8	res16[3];
        #endif /*  __BIG_ENDIAN */
        S3C24X0_USB_DEV_FIFOS	fifo[5];
        S3C24X0_USB_DEV_DMAS	dma[5];
    } 
    /*__attribute__((__packed__))*/ S3C24X0_USB_DEVICE;
    /* WATCH DOG TIMER (see manual chapter 18) */
  //  __packed
	typedef struct 
    {
        S3C24X0_REG32	WTCON;
        S3C24X0_REG32	WTDAT;
        S3C24X0_REG32	WTCNT;
    } 
    /*__attribute__((__packed__))*/ S3C24X0_WATCHDOG;
    /* IIC (see manual chapter 20) */
    typedef struct 
    {
        S3C24X0_REG32	IICCON;
        S3C24X0_REG32	IICSTAT;
        S3C24X0_REG32	IICADD;
        S3C24X0_REG32	IICDS;
    } 
    /*__attribute__((__packed__))*/ S3C24X0_I2C;
    /* IIS (see manual chapter 21) */
/*
	typedef struct 
    {
        #ifdef __BIG_ENDIAN
        S3C24X0_REG16	res1;
        S3C24X0_REG16	IISCON;
        S3C24X0_REG16	res2;
        S3C24X0_REG16	IISMOD;
        S3C24X0_REG16	res3;
        S3C24X0_REG16	IISPSR;
        S3C24X0_REG16	res4;
        S3C24X0_REG16	IISFCON;
        S3C24X0_REG16	res5;
        S3C24X0_REG16	IISFIFO;
        #else 
        S3C24X0_REG16	IISCON;
        S3C24X0_REG16	res1;
        S3C24X0_REG16	IISMOD;
        S3C24X0_REG16	res2;
        S3C24X0_REG16	IISPSR;
        S3C24X0_REG16	res3;
        S3C24X0_REG16	IISFCON;
        S3C24X0_REG16	res4;
        S3C24X0_REG16	IISFIFO;
        S3C24X0_REG16	res5;
        #endif
    } 
	*/
    /*__attribute__((__packed__))*/ 
	//S3C24X0_I2S;
    /* I/O PORT (see manual chapter 9) */
    __packed
	typedef struct 
    {
        S3C24X0_REG32	GPACON;
        S3C24X0_REG32	GPADAT;
        S3C24X0_REG32	res1[2];
        S3C24X0_REG32	GPBCON;
        S3C24X0_REG32	GPBDAT;
        S3C24X0_REG32	GPBUP;
        S3C24X0_REG32	res2;
        S3C24X0_REG32	GPCCON;
        S3C24X0_REG32	GPCDAT;
        S3C24X0_REG32	GPCUP;
        S3C24X0_REG32	res3;
        S3C24X0_REG32	GPDCON;
        S3C24X0_REG32	GPDDAT;
        S3C24X0_REG32	GPDUP;
        S3C24X0_REG32	res4;
        S3C24X0_REG32	GPECON;
        S3C24X0_REG32	GPEDAT;
        S3C24X0_REG32	GPEUP;
        S3C24X0_REG32	res5;
        S3C24X0_REG32	GPFCON;
        S3C24X0_REG32	GPFDAT;
        S3C24X0_REG32	GPFUP;
        S3C24X0_REG32	res6;
        S3C24X0_REG32	GPGCON;
        S3C24X0_REG32	GPGDAT;
        S3C24X0_REG32	GPGUP;
        S3C24X0_REG32	res7;
        S3C24X0_REG32	GPHCON;
        S3C24X0_REG32	GPHDAT;
        S3C24X0_REG32	GPHUP;
        S3C24X0_REG32	res8;
        S3C24X0_REG32	MISCCR;
        S3C24X0_REG32	DCLKCON;
        S3C24X0_REG32	EXTINT0;
        S3C24X0_REG32	EXTINT1;
        S3C24X0_REG32	EXTINT2;
        S3C24X0_REG32	EINTFLT0;
        S3C24X0_REG32	EINTFLT1;
        S3C24X0_REG32	EINTFLT2;
        S3C24X0_REG32	EINTFLT3;
        S3C24X0_REG32	EINTMASK;
        S3C24X0_REG32	EINTPEND;
        S3C24X0_REG32	GSTATUS0;
        S3C24X0_REG32	GSTATUS1;
        S3C24X0_REG32	GSTATUS2;
        S3C24X0_REG32	GSTATUS3;
        S3C24X0_REG32	GSTATUS4;
    } 
    /*__attribute__((__packed__))*/ S3C24X0_GPIO;
    /* S3C2410 device base addresses */
    #define S3C24X0_MEMCTL_BASE		0x48000000
    #define S3C24X0_USB_HOST_BASE		0x49000000
    #define S3C24X0_INTERRUPT_BASE	0x4A000000
    #define S3C24X0_DMA_BASE			0x4B000000
    #define S3C24X0_CLOCK_POWER_BASE	0x4C000000
    #define S3C24X0_LCD_BASE			0x4D000000
    #define S3C2410_NAND_BASE			0x4E000000

    #define S3C24X0_UART_BASE			0x50000000
    #define S3C24X0_TIMER_BASE			0x51000000
    #define S3C24X0_USB_DEVICE_BASE	0x52000140
    #define S3C24X0_WATCHDOG_BASE	0x53000000
    #define S3C24X0_I2C_BASE			0x54000000
    #define S3C24X0_I2S_BASE			0x55000000
    #define S3C24X0_GPIO_BASE			0x56000000
    #define S3C24X0_RTC_BASE			0x57000000
    #define S3C2410_ADC_BASE			0x58000000
    #define S3C24X0_SPI_BASE			0x59000000
    #define S3C2410_SDI_BASE			0x5A000000

	

    static __inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void)
    {
        return (S3C24X0_MEMCTL * const)S3C24X0_MEMCTL_BASE;
    }
    static __inline S3C24X0_USB_HOST * const S3C24X0_GetBase_USB_HOST(void)
    {
        return (S3C24X0_USB_HOST * const)S3C24X0_USB_HOST_BASE;
    }
    static __inline S3C24X0_INTERRUPT * const S3C24X0_GetBase_INTERRUPT(void)
    {
        return (S3C24X0_INTERRUPT * const)S3C24X0_INTERRUPT_BASE;
    }
    static __inline S3C24X0_DMAS * const S3C24X0_GetBase_DMAS(void)
    {
        return (S3C24X0_DMAS * const)S3C24X0_DMA_BASE;
    }
    static __inline S3C24X0_CLOCK_POWER * const S3C24X0_GetBase_CLOCK_POWER(void)
    {
        return (S3C24X0_CLOCK_POWER * const)S3C24X0_CLOCK_POWER_BASE;
    }
    static __inline S3C24X0_TIMERS * const S3C24X0_GetBase_TIMERS(void)
    {
        return (S3C24X0_TIMERS * const)S3C24X0_TIMER_BASE;
    }
    static __inline S3C24X0_USB_DEVICE * const S3C24X0_GetBase_USB_DEVICE(void)
    {
        return (S3C24X0_USB_DEVICE * const)S3C24X0_USB_DEVICE_BASE;
    }
    static __inline S3C24X0_WATCHDOG * const S3C24X0_GetBase_WATCHDOG(void)
    {
        return (S3C24X0_WATCHDOG * const)S3C24X0_WATCHDOG_BASE;
    }
    static __inline S3C24X0_GPIO * const S3C24X0_GetBase_GPIO(void)
    {
        return (S3C24X0_GPIO * const)S3C24X0_GPIO_BASE;
    }
/*
	// Memory control 
    #define rBWSCON    (*(volatile unsigned *)0x48000000) //Bus width & wait status
    #define rBANKCON0  (*(volatile unsigned *)0x48000004) //Boot ROM control
    #define rBANKCON1  (*(volatile unsigned *)0x48000008) //BANK1 control
    #define rBANKCON2  (*(volatile unsigned *)0x4800000c) //BANK2 cControl
    #define rBANKCON3  (*(volatile unsigned *)0x48000010) //BANK3 control
    #define rBANKCON4  (*(volatile unsigned *)0x48000014) //BANK4 control
    #define rBANKCON5  (*(volatile unsigned *)0x48000018) //BANK5 control
    #define rBANKCON6  (*(volatile unsigned *)0x4800001c) //BANK6 control
    #define rBANKCON7  (*(volatile unsigned *)0x48000020) //BANK7 control
    #define rREFRESH   (*(volatile unsigned *)0x48000024) //DRAM/SDRAM refresh
    #define rBANKSIZE  (*(volatile unsigned *)0x48000028) //Flexible Bank Size
    #define rMRSRB6    (*(volatile unsigned *)0x4800002c) //Mode register set for SDRAM
    #define rMRSRB7    (*(volatile unsigned *)0x48000030) //Mode register set for SDRAM
    // USB HOST
    #define rHcRevision		(*(volatile unsigned *)0x49000000)
    #define rHcControl		(*(volatile unsigned *)0x49000004)

⌨️ 快捷键说明

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