在mini2440的myled裸机程序中头文件 中,Memcfg.ini这个头文件定义了存储器的相关配置
(对存储器相关寄存器值的配置,这里对寄存器的相关配置最终会被init.s调用来初始化CPU)
;************************************************
; NAME : MEMCFG.A
; DESC : Memory bank configuration file
; Revision: 02.28.2002 ver 0.0
; Revision: 03.11.2003 ver 0.0 Attatched for 2440
;************************************************
;Memory Area
;GCS6 32bit(64MB) SDRAM(0x3000_0000-0x33ff_ffff)
;存储器相关配置
;BWSCON
DW8 EQU (0x0) ;声明DW8=0x0;
DW16 EQU (0x1) ;声明DW16=0x1;
DW32 EQU (0x2) ;声明DW32=0x2;
WAIT EQU (0x1<<2) ;声明WAIT=(0x1<<2);
UBLB EQU (0x1<<3) ;声明UBLB=(0x1<<3);
ASSERT :DEF:BUSWIDTH ;BUSWIDTH是否被定义,未定义则终止编译并且报错
;ASSERT :DEF:BUSWIDTH
;ASSERT 是断言伪指令,语法是:ASSERT +逻辑表达式
;def 是逻辑伪操作符,格式为: :DEF:label,作用是:判断label是否定义过
;补充:[assert 的作用是现计算表达式 expression ,如果其值为假(即为0),
;那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。]
[ BUSWIDTH=16
;16位总线宽度配置
B1_BWSCON EQU (DW16)
B2_BWSCON EQU (DW16)
B3_BWSCON EQU (DW16)
B4_BWSCON EQU (DW16)
B5_BWSCON EQU (DW16)
B6_BWSCON EQU (DW16)
B7_BWSCON EQU (DW16)
;32位总线宽度配置
| ;BUSWIDTH=32 ; 2440 EV board.
B1_BWSCON EQU (DW32) ; Intel Strata(28F128), 32-bit, for nCS1 when NOR Flash booting.
B2_BWSCON EQU (DW16) ; PCMCIA(PD6710), 16-bit
B3_BWSCON EQU (DW16) ; Ethernet(CS8900), 16-bit
B4_BWSCON EQU (DW16) ; NOR flash(AM29LV800B), 16-bit, for nCS4 when NAND booting.
B5_BWSCON EQU (DW16) ; A400/A410 Ext, 16-bit
B6_BWSCON EQU (DW32) ; SDRAM(K4S561632C) 32MBx2, 32-bit
B7_BWSCON EQU (DW32) ; N.C.
]
;BANK0CON 【BANK0寄存器配置】
B0_Tacs EQU 0x0 ;0clk [nGCSn 前的地址建立时间]
B0_Tcos EQU 0x0 ;0clk [nOE 前的片选建立时间]
B0_Tacc EQU 0x7 ;14clk [访问周期]
B0_Tcoh EQU 0x0 ;0clk [nOE 后的片选保持时间]
B0_Tah EQU 0x0 ;0clk [nGCSn 后的地址保持时间]
B0_Tacp EQU 0x0 ; [Page 模式下的 Page 模式访问周期]
B0_PMC EQU 0x0 ;normal [Page 模式配置]
;BANK1CON 【BANK1寄存器配置】
B1_Tacs EQU 0x0 ;0clk
B1_Tcos EQU 0x0 ;0clk
B1_Tacc EQU 0x7 ;14clk
B1_Tcoh EQU 0x0 ;0clk
B1_Tah EQU 0x0 ;0clk
B1_Tacp EQU 0x0
B1_PMC EQU 0x0 ;normal
;Bank 2 parameter 【BANK2寄存器配置】
B2_Tacs EQU 0x0 ;0clk
B2_Tcos EQU 0x0 ;0clk
B2_Tacc EQU 0x7 ;14clk
B2_Tcoh EQU 0x0 ;0clk
B2_Tah EQU 0x0 ;0clk
B2_Tacp EQU 0x0
B2_PMC EQU 0x0 ;normal
;Bank 3 parameter BANK3寄存器配置
B3_Tacs EQU 0x0 ;0clk
B3_Tcos EQU 0x0 ;0clk
B3_Tacc EQU 0x7 ;14clk
B3_Tcoh EQU 0x0 ;0clk
B3_Tah EQU 0x0 ;0clk
B3_Tacp EQU 0x0
B3_PMC EQU 0x0 ;normal
;Bank 4 parameter
B4_Tacs EQU 0x0 ;0clk
B4_Tcos EQU 0x0 ;0clk
B4_Tacc EQU 0x7 ;14clk
B4_Tcoh EQU 0x0 ;0clk
B4_Tah EQU 0x0 ;0clk
B4_Tacp EQU 0x0
B4_PMC EQU 0x0 ;normal
;Bank 5 parameter
B5_Tacs EQU 0x0 ;0clk
B5_Tcos EQU 0x0 ;0clk
B5_Tacc EQU 0x7 ;14clk
B5_Tcoh EQU 0x0 ;0clk
B5_Tah EQU 0x0 ;0clk
B5_Tacp EQU 0x0
B5_PMC EQU 0x0 ;normal
;Bank 6 parameter
B6_MT EQU 0x3 ;SDRAM [决定 Bank6 和 Bank7 的存储器类型]
B6_Trcd EQU 0x2 ;4clk [RAS 到 CAS 的延迟]
B6_SCAN EQU 0x1 ;9bit [列地址数]
;Bank 7 parameter
B7_MT EQU 0x3 ;SDRAM
B7_Trcd EQU 0x2 ;4clk
B7_SCAN EQU 0x1 ;9bit
;REFRESH parameter 【SDRAM 刷新控制寄存器】
REFEN EQU 0x1 ;Refresh enable [SDRAM 刷新使能]
TREFMD EQU 0x0 ;CBR(CAS before RAS)/Auto refresh [SDRAM 刷新模式]
Trp EQU 0x2 ;4clk [SDRAM RAS 预充电时间]
Trc EQU 0x2 ;6clk [SDRAM 半行周期时间]
Tchr EQU 0x2 ;3clk [REFRESH寄存器的第16和17位,S3C2440A未使用]
REFCNT EQU 1653 ;period=7.8us, HCLK=50.8Mhz, (2048+1-7.8*50.8) [刷新计数器]
END