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

📄 4510b_cstartup.hdr

📁 4510b的启动源码
💻 HDR
📖 第 1 页 / 共 2 页
字号:
;---------------------------------------------------------------
; 文件说明
;
; 1.该文件包括了寄存器及其地址的配置,供其他代码用.
; 编者:淳仔
; 时间:2002.5.20
; 版本:1.0
;
; 文件说明
;---------------------------------------------------------------

;---------------------------------------------------------------
; 历史说明
;
; 1.  v1.0  2003.5.20 淳仔编写
;
; 历史说明
;---------------------------------------------------------------

MODE_BITS	DEFINE	0x1F		; 模式掩码
MODE_MASK       DEFINE  0x1F
USR_MODE	DEFINE	0x10		; 用户模式
FIQ_MODE	DEFINE	0x11		; 快速中断请求模式
IRQ_MODE	DEFINE	0x12		; 中断请求模式
SVC_MODE	DEFINE	0x13		; 管理模式
SUP_MODE        DEFINE  0x13            ; 管理模式
ABT_MODE	DEFINE	0x17		; 中止模式
UND_MODE	DEFINE	0x1B		; 非法指令模式
SYS_MODE	DEFINE	0x1F		; 系统模式(供操作系统用)

;---------------------------------------------------------------
; 寄存器地址设置

ASIC_BASE	DEFINE	0x3FF0000         ; CPU寄存器的基地址

INT_CNTRL_BASE  DEFINE  ASIC_BASE+0x4000  ; 定义中断寄存器的基地址
IntMode		DEFINE	ASIC_BASE+0x4000
IntPend		DEFINE	ASIC_BASE+0x4004
IntMask  	DEFINE	ASIC_BASE+0x4008
INTOFFSET	DEFINE	ASIC_BASE+0x4024

IOPMODE	  	DEFINE	ASIC_BASE+0x5000  ; GPIO寄存器的基地址
IOPCON  	DEFINE	ASIC_BASE+0x5004
IOPDATA 	DEFINE	ASIC_BASE+0x5008

UARTLCON0  	DEFINE	ASIC_BASE+0xD000  ; UART 0/1寄存器的基地址
UARTCONT0  	DEFINE  ASIC_BASE+0xD004
UARTSTAT0	DEFINE	ASIC_BASE+0xD008
UARTTXH0	DEFINE	ASIC_BASE+0xD00C
UARTRXB0	DEFINE	ASIC_BASE+0xD010
UARTBRD0	DEFINE  ASIC_BASE+0xD014
UARTLCON1	DEFINE  ASIC_BASE+0xE000
UARTCONT1  	DEFINE  ASIC_BASE+0xE004
UARTSTAT1	DEFINE	ASIC_BASE+0xE008
UARTTXH1	DEFINE	ASIC_BASE+0xE00C
UARTRXB1	DEFINE	ASIC_BASE+0xE010
UARTBRD1	DEFINE  ASIC_BASE+0xE014

TIMER_BASE      DEFINE  ASIC_BASE+0x6000  ; TIMER 0/1寄存器的基地址

DRAM_BASE       DEFINE  0x000000          ; DRAM起始地址

HandleReset	DEFINE	0x000050          ; 几种异常处理程序入口地址
HandleUndef	DEFINE	0x000054
HandleSwi   	DEFINE	0x000058
HandlePrefetch	DEFINE	0x00005c
HandleAbort	DEFINE	0x000060
HandleReserv	DEFINE	0x000064
HandleIrq   	DEFINE	0x000068
HandleFiq	DEFINE	0x00006c

UserCodeArea    DEFINE  0x000100          ; 用户程序代码起始地址

; 寄存器地址设置
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置EXTDBWTH寄存器:Memory Bus Width register

DSR0  		EQU  2<<0           ; ROM0宽度由硬件Bise[1..0]上电状态来确定

DSR1  		EQU  2<<2           ; ROM1  0 : Disable
				    ;       1 : Byte
				    ;       2 : Half-Word
				    ;       3 : Word
DSR2  		EQU  3<<4           ; ROM2
DSR3  		EQU  3<<6           ; ROM3
DSR4  		EQU  3<<8           ; ROM4
DSR5  		EQU  3<<10          ; ROM5
DSD0  		EQU  3<<12          ; DRAM0,设SDRAM数据线宽度为32位
DSD1  		EQU  3<<14          ; DRAM1
DSD2  		EQU  3<<16          ; DRAM2
DSD3  		EQU  3<<18          ; DRAM3
DSX0  		EQU  3<<20          ; EXTIO0
DSX1  		EQU  3<<22          ; EXTIO1
DSX2  		EQU  3<<24          ; EXTIO2
DSX3  		EQU  3<<26          ; EXTIO3

rEXTDBWTH	DEFINE	DSR0+DSR1+DSR2+DSR3+DSR4+DSR5+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2+DSX3;0x00003001
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置ROMCON0寄存器:ROM Bank0 Control register

ROMBasePtr0     EQU  0x100<<10      ; ROM0起地址=0x1000000
ROMEndPtr0      EQU  0x110<<20      ; ROM0止地址=0x1100000,-->1M Byte

PMC0            EQU  0x0            ; 0x0=Normal ROM, 0x1=4Word Page
                                    ; 0x2=8Word Page, 0x3=16Word Page
rTpa0           EQU  (0x0<<2)       ; 0x0=5Cycle, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
rTacc0          EQU  (0x6<<4)       ; 0x0=Disable, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
                                    ; 0x4=5Cycle, 0x5=6Cycle
                                    ; 0x6=7Cycle, 0x7=Reserved

rROMCON0        DEFINE  ROMEndPtr0+ROMBasePtr0+rTacc0+rTpa0+PMC0;0x10840060
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置ROMCON1寄存器:ROM Bank1 Control register

ROMBasePtr1     EQU  0x120<<10      ; =0x1200000
ROMEndPtr1      EQU  0x130<<20      ; =0x1300000

PMC1            EQU  0x0            ; 0x0=Normal ROM, 0x1=4Word Page
                                    ; 0x2=8Word Page, 0x3=16Word Page
rTpa1           EQU  (0x0<<2)       ; 0x0=5Cycle, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle 
rTacc1          EQU  (0x6<<4)       ; 0x0=Disable, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
                                    ; 0x4=5Cycle, 0x5=6Cycle
                                    ; 0x6=7Cycle, 0x7=Reserved

rROMCON1        DEFINE  ROMEndPtr1+ROMBasePtr1+rTacc1+rTpa1+PMC1
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置ROMCON2寄存器:ROM Bank2 Control register

ROMBasePtr2     EQU  0x130<<10      ; =0x1300000  
ROMEndPtr2      EQU  0x140<<20      ; =0x1400000  

PMC2            EQU  0x0            ; 0x0=Normal ROM, 0x1=4Word Page 
                                    ; 0x2=8Word Page, 0x3=16Word Page
rTpa2           EQU  (0x0<<2)       ; 0x0=5Cycle, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
rTacc2          EQU  (0x4<<4)       ; 0x0=Disable, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
                                    ; 0x4=5Cycle, 0x5=6Cycle
                                    ; 0x6=7Cycle, 0x7=Reserved

rROMCON2        DEFINE  ROMEndPtr2+ROMBasePtr2+rTacc2+rTpa2+PMC2
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置ROMCON3寄存器:ROM Bank3 Control register

ROMBasePtr3     EQU  0x140<<10      ; =0x1400000  
ROMEndPtr3      EQU  0x150<<20      ; =0x1500000  

PMC3            EQU  0x0            ; 0x0=Normal ROM, 0x1=4Word Page 
                                    ; 0x2=8Word Page, 0x3=16Word Page
rTpa3           EQU  (0x0<<2)       ; 0x0=5Cycle, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
rTacc3          EQU  (0x2<<4)       ; 0x0=Disable, 0x1=2Cycle
                                    ; 0x2=3Cycle, 0x3=4Cycle
                                    ; 0x4=5Cycle, 0x5=6Cycle
                                    ; 0x6=7Cycle, 0x7=Reserved

rROMCON3        DEFINE  ROMEndPtr3+ROMBasePtr3+rTacc3+rTpa3+PMC3
;---------------------------------------------------------------

;---------------------------------------------------------------
; 设置ROMCON4寄存器:ROM Bank4 Control register

ROMBasePtr4     EQU  0x150<<10      ; =0x1500000  
ROMEndPtr4      EQU  0x160<<20      ; =0x1600000  

PMC4            EQU  0x0            ; 0x0=Normal ROM, 0x1=4Word Page 
                                    ; 0x2=8Word Page, 0x3=16Word Page
rTpa4           EQU  (0x0<<2)       ; 0x0=5Cycle, 0x1=2Cycle

⌨️ 快捷键说明

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