📄 s3c4510bdef.s
字号:
;**************************************************************************************************
;*
;* 作者: 胡翌博,浙江大学信电系电路与系统2001研
;*
;* 文件名:s3c4510bDef.s
;*
;* 版本:3.1
;*
;* 功能描述:本文件定义了一些符号,用来表达s3c4510b的配置
;*
;* 被本文件引用的文件列表:
;*
;* 引用本文件的文件列表:init.s
;*
;* 版本更迭:
;* DATE Version Author REMARKS
;* 07-20-2003 2.0 胡翌博
;* 07-27-2003 3.0 胡翌博
;* 08-15-2003 3.1 胡翌博 文件名由board.s更新为s3c4510bDef.s
;*
;**************************************************************************************************
;**************************************************************************************************
;* 系统时钟常数
;**************************************************************************************************
MHz EQU 1000000
;#ifdef KS32C50100
fMCLK_MHz EQU 50000000 ; 50MHz, KS32C50100,以Hz为单位
;#else
;fMCLK_MHz EQU 20000000 ; 33MHz, KS32C5000
;fMCLK_MHz EQU 25000000 ; 33MHz, KS32C5000
;fMCLK_MHz EQU 30000000 ; 33MHz, KS32C5000
;fMCLK_MHz EQU 33000000 ; 33MHz, KS32C5000
;fMCLK_MHz EQU 40000000 ; 33MHz, KS32C5000
;#endif
fMCLK EQU fMCLK_MHz/MHz ; 以MHz为单位
;**************************************************************************************************
;* CPSR的格式
;*
;* 31 30 29 28 7 6 5 4 3 2 1 0
;*+---+---+---+---+--ss--+---+---+---+---+---+---+---+---+
;*| N | Z | C | V | | I | F | T | M4 ~ M0 |
;*+---+---+---+---+--ss--+---+---+---+---+---+---+---+---+
;*
;**************************************************************************************************
;**************************************************************************************************
;* CPSR中的模式常量、模式掩码的定义
;**************************************************************************************************
Mode_USR EQU 0x10
Mode_FIQ EQU 0x11
Mode_IRQ EQU 0x12
Mode_SVC EQU 0x13
Mode_ABT EQU 0x17
Mode_UND EQU 0x1B
Mode_SYS EQU 0x1F ;ARM4及其以上版本的体系结构中才有该模式
MASK_MODE EQU 0x0000003F ;模式掩码用于BIC指令将模式位和状态位之外的位都屏蔽起来避免不必要的修改
MODE_SVC32 EQU 0x00000013 ;代表32位ARM状态,监管模式,利用ORR指令将该值置入CPSR
I_BIT EQU 0x80 ;利用ORR指令将CPSR中的I位置位
F_BIT EQU 0x40 ;利用ORR指令将CPSR中的F位置位
;**************************************************************************************************
;* snds开发板上的定义,ARM Anywhere II开发板上没有这个寄存器
;* --- System memory locations
;* CM_ctl_reg EQU 0x1000000C ; Address of Core Module Control Register???
;* Remap_bit EQU 0x04 ; Bit 2 is remap bit of CM_ctl???
;**************************************************************************************************
;**************************************************************************************************
;* 堆栈总起始地址
;**************************************************************************************************
STACK_STAR_ADDR EQU 0x01000000
;**************************************************************************************************
;* 分配给各个模式下堆栈的存储空间(单位:字节)
;* 如果需要的话,可以给FIQ_Stack, ABT_Stack, UND_Stack增加存储空间
;**************************************************************************************************
Len_FIQ_Stack EQU 1024
Len_IRQ_Stack EQU 1024
Len_ABT_Stack EQU 1024
Len_UND_Stack EQU 1024
Len_SVC_Stack EQU 1024
Len_USR_Stack EQU 1024
Len_SYS_USR_Stack EQU 1024 ;SYS模式与USR模式共用一个堆栈
;**************************************************************************************************
;* 各个模式下的堆栈起始地址对堆栈总基址的偏移量
;* 偏移量以立即数的形式装载,且必需是8字节对准的.
;**************************************************************************************************
Offset_FIQ_Stack EQU 0
Offset_IRQ_Stack EQU Offset_FIQ_Stack + Len_FIQ_Stack
Offset_ABT_Stack EQU Offset_IRQ_Stack + Len_IRQ_Stack
Offset_UND_Stack EQU Offset_ABT_Stack + Len_ABT_Stack
Offset_SVC_Stack EQU Offset_UND_Stack + Len_UND_Stack
Offset_USR_Stack EQU Offset_SVC_Stack + Len_SVC_Stack
Offset_SYS_USR_Stack EQU Offset_SVC_Stack + Len_SVC_Stack ;SYS模式与USR模式共用一个堆栈
;**************************************************************************************************
;* 各个模式下的堆栈初始地址
;**************************************************************************************************
FIQ_Stack_Base EQU STACK_STAR_ADDR - Offset_FIQ_Stack
IRQ_Stack_Base EQU STACK_STAR_ADDR - Offset_IRQ_Stack
ABT_Stack_Base EQU STACK_STAR_ADDR - Offset_ABT_Stack
UND_Stack_Base EQU STACK_STAR_ADDR - Offset_UND_Stack
SVC_Stack_Base EQU STACK_STAR_ADDR - Offset_SVC_Stack
USR_Stack_Base EQU STACK_STAR_ADDR - Offset_USR_Stack
SYS_USR_Stack_Base EQU STACK_STAR_ADDR - Offset_SYS_USR_Stack ;SYS模式与USR模式共用一个堆栈
;**************************************************************************************************
;* snds开发板中堆栈的相关定义,不清楚下面这些定义是做什么用的,与上面堆栈的相关定义有何联系
;* --SYSTEM STACK MEMORY : 8K bytes system stacks are defined at memory.a
;* USR_STACK_SIZE EQU 1024
;* UDF_STACK_SIZE EQU 512
;* ABT_STACK_SIZE EQU 512
;* IRQ_STACK_SIZE EQU 2048
;* FIQ_STACK_SIZE EQU 2048
;* SUP_STACK_SIZE EQU 2048
;*
;* STACK_STAR_ADDR EQU 0x10f0000
;*
;* --SYSTEM USER STACK MEMORY
;* SYSTEM_SIZE EQU 1024 ; Define the system stack size
;* TIMER_SIZE EQU 1024 ; Define timer HISR stack size
;* TIMER_PRIORITY EQU 2 ; Timer HISR priority (values from
;* ; 0 to 2, where 0 is highest)
;**************************************************************************************************
;**************************************************************************************************
;* 专用寄存器堆默认的起始地址
;**************************************************************************************************
ASIC_BASE EQU 0x03FF0000
;**************************************************************************************************
;* 系统管理寄存器地址
;**************************************************************************************************
ARM7_SYSCFG EQU (ASIC_BASE+0x0000)
ARM7_CLKCON EQU (ASIC_BASE+0x3000)
ARM7_EXTACON0 EQU (ASIC_BASE+0x3008)
ARM7_EXTACON1 EQU (ASIC_BASE+0x300c)
ARM7_EXTDBWTH EQU (ASIC_BASE+0x3010)
ARM7_ROMCON0 EQU (ASIC_BASE+0x3014)
ARM7_ROMCON1 EQU (ASIC_BASE+0x3018)
ARM7_ROMCON2 EQU (ASIC_BASE+0x301c)
ARM7_ROMCON3 EQU (ASIC_BASE+0x3020)
ARM7_ROMCON4 EQU (ASIC_BASE+0x3024)
ARM7_ROMCON5 EQU (ASIC_BASE+0x3028)
ARM7_DRAMCON0 EQU (ASIC_BASE+0x302c)
ARM7_DRAMCON1 EQU (ASIC_BASE+0x3030)
ARM7_DRAMCON2 EQU (ASIC_BASE+0x3034)
ARM7_DRAMCON3 EQU (ASIC_BASE+0x3038)
ARM7_REFEXTCON EQU (ASIC_BASE+0x303c)
;**************************************************************************************************
;* 中断控制寄存器地址
;**************************************************************************************************
INT_CNTRL_BASE EQU (ASIC_BASE+0x4000) ; 中断控制专用寄存器的起始地址
ARM7_INTMODE EQU (ASIC_BASE+0x4000)
ARM7_INTPEND EQU (ASIC_BASE+0x4004)
ARM7_INTMASK EQU (ASIC_BASE+0x4008)
ARM7_INTOFFSET EQU (ASIC_BASE+0x4024)
ARM7_INTPENDTST EQU (ASIC_BASE+0x402c)
INT_DISABLE EQU 0x1fffff ; 中断屏蔽值
ARM7_INTPRI0 EQU (ASIC_BASE+0x400C)
ARM7_INTPRI1 EQU (ASIC_BASE+0x4010)
ARM7_INTPRI2 EQU (ASIC_BASE+0x4014)
ARM7_INTPRI3 EQU (ASIC_BASE+0x4018)
ARM7_INTPRI4 EQU (ASIC_BASE+0x401C)
ARM7_INTPRI5 EQU (ASIC_BASE+0x4020)
ARM7_INTOSET_FIQ EQU (ASIC_BASE+0x4030)
ARM7_INTOSET_IRQ EQU (ASIC_BASE+0x4034)
;**************************************************************************************************
;* I/O端口寄存器地址
;**************************************************************************************************
ARM7_IOPMOD EQU (ASIC_BASE+0x5000)
ARM7_IOPCON EQU (ASIC_BASE+0x5004)
ARM7_IOPDATA EQU (ASIC_BASE+0x5008)
;**************************************************************************************************
;* IIC寄存器地址
;**************************************************************************************************
ARM7_IICCON EQU (ASIC_BASE+0xf000)
ARM7_IICBUF EQU (ASIC_BASE+0xf004)
ARM7_IICPS EQU (ASIC_BASE+0xf008)
ARM7_IICCNT EQU (ASIC_BASE+0xf00c)
;**************************************************************************************************
;* 存储系统总体配置值
;**************************************************************************************************
RESET_ROM_START EQU 0x0
ROM_COPY_SIZE EQU 0x40000 ;256K
RESET_DRAM_START EQU 0x1000000 ;16M
;**************************************************************************************************
;* EXTDBWTH : 存储总线宽度寄存器配置值
;* 1 : Byte
;* 2 : Half-Word
;* 3 : Word
;**************************************************************************************************
DSR0 EQU 1:SHL:0 ; ROM0, 0 : Disable
DSR1 EQU 2:SHL:2 ; ROM1
DSR2 EQU 0:SHL:4 ; ROM2
DSR3 EQU 0:SHL:6 ; ROM3
DSR4 EQU 0:SHL:8 ; ROM4
DSR5 EQU 0:SHL:10 ; ROM5
DSD0 EQU 3:SHL:12 ; DRAM0
DSD1 EQU 0:SHL:14 ; DRAM1
DSD2 EQU 0:SHL:16 ; DRAM2
DSD3 EQU 0:SHL:18 ; DRAM3
DSX0 EQU 0:SHL:20 ; EXTIO0
DSX1 EQU 0:SHL:22 ; EXTIO1
DSX2 EQU 0:SHL:24 ; EXTIO2
DSX3 EQU 0:SHL:26 ; EXTIO3
rEXTDBWTH EQU DSR0+DSR1+DSR2+DSR3+DSR4+DSR5+DSD0+DSD1+DSD2+DSD3+DSX0+DSX1+DSX2+DSX3
;**************************************************************************************************
;* ROMCON0 : ROM Bank0控制寄存器配置值
;**************************************************************************************************
; --ROMCON0 : ROM Bank0控制寄存器初始化值
ROMBasePtr0 EQU 0x000:SHL:10 ;=0x0000,0000 0
ROMEndPtr0 EQU 0x010:SHL:20 ;=0x0010,0000 1MB
PMC0 EQU 0x0 ; 0x0=Normal ROM, 0x1=4Word Page
; 0x2=8Word Page, 0x3=16Word Page
rTpa0 EQU (0x0:SHL:2) ; 0x0=5Cycle, 0x1=2Cycle
; 0x2=3Cycle, 0x3=4Cycle
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -