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

📄 wrsbcarm7.h

📁 base on vxworks and ARM7TDMI
💻 H
📖 第 1 页 / 共 2 页
字号:
/* sbcarm7.h - WindRiver SBC ARM7 header file */


/* Copyright 1984-2001 Wind River Systems, Inc. */
#include "copyright_wrs.h"

/*
modification history
--------------------
01f,16jul02,m_h  C++ protection
01e,04jan02,m_h  minor cleanup
01d,03dec01,m_h  remove Diab warnings
01c,27sep01,m_h  base MAC address on user DIP setting
01b,22may01,m_h  documentation
01a,12apr01,m_h  created from snds100 template.
*/

/*
This file contains I/O address and related constants for the SBC ARM7 board.
*/

#ifndef    INCsbcarm7h
#define    INCsbcarm7h

#ifdef __cplusplus
extern "C" {
#endif

#include "sngks32c.h"


#define TARGET_SBCARM7

/*****我修改成和config.h中#define ROM_BASE_ADRS 0x02000000 一致***/

#define SBCARM7_FLASH_BASE 0x2000000

/*
 * Local-to-Bus memory address constants:
 * the local memory address always appears at 0 locally;
 * it is not dual ported.
 */

#define LOCAL_MEM_LOCAL_ADRS  0x00000000    /* fixed */
#define LOCAL_MEM_BUS_ADRS    0x00000000    /* fixed */


#define BUS                   BUS_TYPE_NONE


#define SBCARM7_CPU_SPEED         50000000    /* CPU clocked at 50 MHz. The timer */
                    /* speed is related to this */


/* definitions for the KS32C50100 UART */

#define N_SBCARM7_UART_CHANNELS     2        /* number of SBCARM7 UART chans */
#define N_SIO_CHANNELS          N_SBCARM7_UART_CHANNELS
#define N_UART_CHANNELS         N_SBCARM7_UART_CHANNELS
#define UART_REG_ADDR_INTERVAL  1        /* registers 4 bytes apart */

/*去掉一下3个语句:*/
/* LED Registers (write) */
/*#define  SBCARM7_LEDREG             0x3fd4000*/

/* USER DIP switch (read) */
/*#define  SBCARM7_USERREG            0x3fd4000
#define READ_USERDIP()              (*((volatile char *)SBCARM7_USERREG) & 0xff)
*/
/*************************************************************************
 *
 * DRAM Memory Bank 0 area MAP for Exception vector table 
 * and Stack, User code area. 
 *
 */

#define DRAM_BASE           0x0          /* Final start address of DRAM */
#define DRAM_LIMIT          0x2000000	/*old value = 0x400000		*/
#define RESET_DRAM_START    0x100000    /* Start of DRAM on power-up old value = 0x1000000*/
#define RESET_ROM_START     0x0          /* Start of ROM on power-up */

/****************************************************************************
 *
 * Format of the Program Status Register 
 */

#define FBit         0x40
#define IBit         0x80
#define LOCKOUT      0xC0     /* Interrupt lockout value */
#define LOCK_MSK     0xC0     /* Interrupt lockout mask value */
#define MODE_MASK    0x1F     /* Processor Mode Mask */
#define UDF_MODE     0x1B     /* Undefine Mode(UDF) */
#define ABT_MODE     0x17     /* Abort Mode(ABT) */
#define SUP_MODE     0x13     /* Supervisor Mode (SVC) */
#define IRQ_MODE     0x12     /* Interrupt Mode (IRQ) */
#define FIQ_MODE     0x11     /* Fast Interrupt Mode (FIQ) */
#define USR_MODE     0x10     /* User Mode(USR) */

/*************************************************************************
 * SYSTEM CLOCK 
 */

#define MHz            1000000
#define fMCLK_MHz      50000000     /* 50MHz, KS32C50100*/
#define fMCLK          50           /* fMCLK_MHz/MHz */

/*************************************************************************
 * SYSTEM MEMORY CONTROL REGISTER EQU TABLES 
 */

/* SYSCFG Register Value */
#define SYSCONFIG_VAL           0x07ffffa0    /* System Configuration Value, EDO RAM */
#define SYSCONFIG_VAL_SDRAM     0xe7ffffa0    /* System Configuration Value, SDRAM old value=87ffffa0*/

/* CLKCON Clock configuration register Values */
#define tCDIV           (1<<0)
#define tWE             (0<<16)
#define tMUX            (0<<17)
#define tAC             (0<<18)
#define tTEST           (0<<31)


#define rCLKCON    (tCDIV+tWE+tMUX+tAC+tTEST)

/* EXTACONx External I/O access timing register Values */
#define tCOS0           (7<<0)
#define tACS0           (7<<3)
#define tCOH0           (7<<6)
#define tACC0           (7<<9)
#define tCOS1           (1<<16)
#define tACS1           (1<<19)
#define tCOH1           (1<<22)
#define tACC1           (1<<25)

#define rEXTACON0    (tCOS0+tACS0+tCOH0+tACC0+tCOS1+tACS1+tCOH1+tACC1)

#define tCOS2           (7<<0)
#define tACS2           (7<<3)
#define tCOH2           (7<<6)
#define tACC2           (1<<9)
#define tCOS3           (1<<16)
#define tACS3           (1<<19)
#define tCOH3           (1<<22)
#define tACC3           (3<<25)

#define rEXTACON1    (tCOS2+tACS2+tCOH2+tACC2+tCOS3+tACS3+tCOH3+tACC3)

/***********************************************************
 *
 * -> EXTDBWTH : Memory Bus Width register
 */
#define DSR0  (3<<0)     /* ROM0, 0 : Disable, 1 : Byte etc.*/
#define DSR1  (3<<2)     /* ROM1    32位 */
#define DSR2  (1<<4)     /* ROM2  */
#define DSR3  (0<<6)     /* ROM3  */
#define DSR4  (0<<8)     /* ROM4  */
#define DSR5  (0<<10)    /* ROM5  */
#define DSD0  (3<<12)    /* DRAM0   32位 */
#define DSD1  (0<<14)    /* DRAM1 */
#define DSD2  (0<<16)    /* DRAM2 */
#define DSD3  (0<<18)    /* DRAM3 */
#define DSX0  (2<<20)    /* EXTIO0   LCD接口    16位*/
#define DSX1  (1<<22)    /* EXTIO1   USB接口    8位*/
#define DSX2  (1<<24)    /* EXTIO2   以太网接口 16位*/
#define DSX3  (1<<26)    /* EXTIO3*/

#define rEXTDBWTH     (DSR0+DSR1+DSR2+DSR3+DSR4+DSR5+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2+DSX3)

/***********************************************************
 *
 * -> ROMCON0 : ROM Bank0 Control register 
 */

#define ROMBasePtr0     (0x0<<10)                      /*=0x00000000*/
#define ROMBasePtr0_S   (0x200<<10)                    /*=0x02000000*/
#define ROMEndPtr0      ((ROM_SIZE>>16)<<20)           /*=0x00100000*/
#define ROMEndPtr0_S    (((ROM_SIZE>>16)+0x200)<<20)   /*=0x02100000*/
#define PMC0            0x0             /* 0x0=Normal ROM, 0x1=4Word Page etc.*/
#define rTpa0           (0x0<<2)        /* 0x0=5Cycle, 0x1=2Cycle etc.*/
#define rTacc0          (0x6<<4)        /* 0x0=Disable, 0x1=2Cycle etc.*/
#define rROMCON0        (ROMEndPtr0+ROMBasePtr0+rTacc0+rTpa0+PMC0)
#define rROMCON0_S      (ROMEndPtr0_S+ROMBasePtr0_S+rTacc0+rTpa0+PMC0)

/***************************************************************************
 * -> ROMCON1 : ROM Bank1 Control register, Mailbox Interface
 */

#define ROMBasePtr1     (0x210<<10)                 /*=0x0fc0000*/
#define ROMEndPtr1      (((0x400000>>16)+0x210)<<20)        /*=0x02500000*/
#define PMC1            0x0             /* 0x0=Normal ROM, 0x1=4Word Page etc.*/
#define rTpa1           (0x0<<2)        /* 0x0=5Cycle, 0x1=2Cycle etc.*/
#define rTacc1          (0x6<<4)        /* 0x0=Disable, 0x1=2Cycle etc.*/
#define rROMCON1        (ROMEndPtr1+ROMBasePtr1+rTacc1+rTpa1+PMC1)

/***************************************************************************
 * -> ROMCON2 : ROM Bank2 Control register, EEPROM
 */

#define ROMBasePtr2     (0x3fb<<10)                 /*=0x0fb0000*/
#define ROMEndPtr2      ((0xfc0000>>12)<<20)       /*=0x0fc0000*/
#define PMC2            0x0             /* 0x0=Normal ROM, 0x1=4Word Page etc.*/
#define rTpa2           (0x0<<2)        /* 0x0=5Cycle, 0x1=2Cycle etc.*/
#define rTacc2          (0x6<<4)        /* 0x0=Disable, 0x1=2Cycle etc.*/
/*	#define rROMCON2        (ROMEndPtr2+ROMBasePtr2+rTacc2+rTpa2+PMC2)	*/

/***************************************************************************
 * -> ROMCONx : unused ROM Bank Control registers
 */

#define rROMCON2      0x60     	/*  add by ghw*/
#define rROMCON3      0x60
#define rROMCON4      0x60
#define rROMCON5      0x60        /*ROMEndPtr5+ROMBasePtr5+rTacc5+rTpa5+PMC5*/

/****************************************************************************
 * -> DRAMCON0 : RAM Bank0 control register  (EDO)
 */
#define EDO_Mode0          1             /*(EDO)0=Normal, 1=EDO DRAM*/

⌨️ 快捷键说明

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