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

📄 s3c4510bdef.s

📁 ucos移植在S3C44BOX上的源码
💻 S
📖 第 1 页 / 共 2 页
字号:
;**************************************************************************************************
;*
;* 作者: 胡翌博,浙江大学信电系电路与系统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 + -