led裸机程序分析三(头文件Memcfg.ini)

在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寄存器的第1617位,S3C2440A未使用]
REFCNT		EQU	1653	;period=7.8us, HCLK=50.8Mhz, (2048+1-7.8*50.8)  [刷新计数器]

	END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yfw&武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值