📄 addr.h
字号:
#ifndef __ADDR_H__
#define __ADDR_H__
/*
* SDRAM address for mapping in MMU
*/
#define MEM_START 0x30000000UL
#define MEM_END 0x34000000UL
#define PAGE_SIZE 0x00100000UL /* page size: 1M*/
#define MEM_IO_MAPPED_START 0x48000000UL
#define MEM_IO_MAPPED_END 0x60000000UL
#define MMU_TBL_BASE 0x30000000UL
#define VECTORS_PHY_BASE 0x33f00000UL
#define VECTORS_PHY_START 0x33ff0000UL
/*
* interrupt handle table
*/
#define INT_START_ADDR 0x33ffff00UL
/*#define INTOFFSET_ADDR 0x4a000014UL*/
#define INT_EINT0 (*(volatile unsigned *)(INT_START_ADDR + 0x20))
#define INT_EINT1 (*(volatile unsigned *)(INT_START_ADDR + 0x24))
#define INT_EINT2 (*(volatile unsigned *)(INT_START_ADDR + 0x28))
#define INT_EINT3 (*(volatile unsigned *)(INT_START_ADDR + 0x2c))
#define INT_EINT4_7 (*(volatile unsigned *)(INT_START_ADDR + 0x30))
#define INT_EINT8_23 (*(volatile unsigned *)(INT_START_ADDR + 0x34))
#define INT_NOTUSED6 (*(volatile unsigned *)(INT_START_ADDR + 0x38))
#define INT_BAT_FLT (*(volatile unsigned *)(INT_START_ADDR + 0x3c))
#define INT_TICK (*(volatile unsigned *)(INT_START_ADDR + 0x40))
#define INT_WDT (*(volatile unsigned *)(INT_START_ADDR + 0x44))
#define INT_TIMER0 (*(volatile unsigned *)(INT_START_ADDR + 0x48))
#define INT_TIMER1 (*(volatile unsigned *)(INT_START_ADDR + 0x4c))
#define INT_TIMER2 (*(volatile unsigned *)(INT_START_ADDR + 0x50))
#define INT_TIMER3 (*(volatile unsigned *)(INT_START_ADDR + 0x54))
#define INT_TIMER4 (*(volatile unsigned *)(INT_START_ADDR + 0x58))
#define INT_UART2 (*(volatile unsigned *)(INT_START_ADDR + 0x5c))
#define INT_LCD (*(volatile unsigned *)(INT_START_ADDR + 0x60))
#define INT_DMA0 (*(volatile unsigned *)(INT_START_ADDR + 0x64))
#define INT_DMA1 (*(volatile unsigned *)(INT_START_ADDR + 0x68))
#define INT_DMA2 (*(volatile unsigned *)(INT_START_ADDR + 0x6c))
#define INT_DMA3 (*(volatile unsigned *)(INT_START_ADDR + 0x70))
#define INT_SDI (*(volatile unsigned *)(INT_START_ADDR + 0x74))
#define INT_SPI0 (*(volatile unsigned *)(INT_START_ADDR + 0x78))
#define INT_UART1 (*(volatile unsigned *)(INT_START_ADDR + 0x7c))
#define INT_NOTUSED24 (*(volatile unsigned *)(INT_START_ADDR + 0x80))
#define INT_USBD (*(volatile unsigned *)(INT_START_ADDR + 0x84))
#define INT_USBH (*(volatile unsigned *)(INT_START_ADDR + 0x88))
#define INT_IIC (*(volatile unsigned *)(INT_START_ADDR + 0x8c))
#define INT_UART0 (*(volatile unsigned *)(INT_START_ADDR + 0x90))
#define INT_SPI1 (*(volatile unsigned *)(INT_START_ADDR + 0x94))
#define INT_RTC (*(volatile unsigned *)(INT_START_ADDR + 0x98))
#define INT_ADC (*(volatile unsigned *)(INT_START_ADDR + 0x9c))
/*
* IO memory-mapped address for UART0
*/
#define GPHCON (*(volatile unsigned long *)0x56000070)
#define GPHUP (*(volatile unsigned long *)0x56000078) /* PORT PULL-UP REGISTER*/
#define UFCON0 (*(volatile unsigned long *)0x50000008) /* UART FIFO control register 0*/
#define ULCON0 (*(volatile unsigned long *)0x50000000) /* UART line control register 0*/
#define UCON0 (*(volatile unsigned long *)0x50000004) /* UART CONTROL REGISTER 0*/
#define UMCON0 (*(volatile unsigned long *)0x5000000C) /* UART modem control register 0*/
#define UBRDIV0 (*(volatile unsigned long *)0x50000028) /* UART baud rate divisor register 0*/
#define UTRSTAT0 (*(volatile unsigned long *)0x50000010) /* UART TX/RX STATUS REGISTER 0*/
#define UTXH0 (*(volatile unsigned char *)0x50000020)
#define URXH0 (*(volatile unsigned char *)0x50000024)
/*
* for Nand flash control
*/
/*
#define NFCONF 0x4e000000
#define NFADDR 0x4e000008
#define NFDATA 0x4e00000c
#define NFSTAT 0x4e000010
#define NFCMD 0x4e000004
#define NFECC 0x4e000014
*/
/*
* registers for keyboard control
*/
#define GPECON (*(volatile unsigned long *)0x56000040)
#define GPEDAT (*(volatile unsigned long *)0x56000044)
#define GPEUP (*(volatile unsigned long *)0x56000048)
#define GPFCON (*(volatile unsigned long *)0x56000050)
#define GPFDAT (*(volatile unsigned long *)0x56000054)
#define GPFUP (*(volatile unsigned long *)0x56000058)
#define GPGCON (*(volatile unsigned long *)0x56000060)
#define GPGDAT (*(volatile unsigned long *)0x56000064)
#define GPGUP (*(volatile unsigned long *)0x56000068)
/*
* registers for interrupt control
*/
#define EINTMASK (*(volatile unsigned long *)0x560000a4)
#define INTMSK (*(volatile unsigned long *)0X4a000008)
#define PRIORITY (*(volatile unsigned long *)0x4a00000c)
#define EINTPEND (*(volatile unsigned long *)0x560000a8)
#define INTPND (*(volatile unsigned long *)0X4a000010)
#define SRCPND (*(volatile unsigned long *)0X4a000000)
/*
* registers for Timer0 control
*/
#define TCFG0 (*(volatile unsigned long *)0x51000000)
#define TCFG1 (*(volatile unsigned long *)0x51000004)
#define TCON (*(volatile unsigned long *)0x51000008)
#define TCNTB0 (*(volatile unsigned long *)0x5100000c)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -