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

📄 addr.h

📁 FS2410 开发板上启用 MMU 实现虚拟内存管理
💻 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 + -