44B0启动代码INIT.S分析
2020-01-02 来源:eefocus
;**********OPTIONS*******************************
;_RAM_STARTADDRESS EQU 0xc000000
_ISR_STARTADDRESS EQU 0xc7fff00 ;GCS6:64M DRAM/SDRAM 中断起始地址,这个地址就直接
;_ISR_STARTADDRESS EQU 0xc1fff00 ;GCS6:16M DRAM
;BUSWIDTH; 16,32
GBLA BUSWIDTH 定义一个全局变量,数据型变量,变量名为BUSWIDTH
BUSWIDTH SETA 16 把这个全局变量BUSWIDTH赋值为16位的宽度总线宽度为16位
;'DRAM','SDRAM'
GBLS BDRAMTYPE 字符串全局变量
BDRAMTYPE SETS 'SDRAM'
;This value has to be TRUE on ROM program.
;This value has to be FALSE in RAM program.
GBLL PLLONSTART 全局逻辑型变量
PLLONSTART SETL {TRUE} 设置为TRUE
GBLA PLLCLK //数据型
PLLCLK SETA 32000000 锁相环时钟32M
[ PLLCLK = 32000000
M_DIV EQU 24 ;Fin=10MHz Fout=32MHz
P_DIV EQU 3
S_DIV EQU 1
]
;************************************************
END
下面这段代码是MEMCFG.inc文件内容:
;**********存储器控制参数*******************************
;Bank 0 parameter
B0_Tacs EQU 0x0 ;0clk
B0_Tcos EQU 0x0 ;0clk
B0_Tacc EQU 0x6 ;10clk
B0_Tcoh EQU 0x0 ;0clk
B0_Tah EQU 0x0 ;0clk
B0_Tacp EQU 0x0 ;0clk
B0_PMC EQU 0x0 ;normal(1data)
;Bank 1 parameter
B1_Tacs EQU 0x3 ;4clk
B1_Tcos EQU 0x3 ;4clk
B1_Tacc EQU 0x7 ;14clk
B1_Tcoh EQU 0x3 ;4clk
B1_Tah EQU 0x3 ;4clk
B1_Tacp EQU 0x3 ;6clk
B1_PMC EQU 0x0 ;normal(1data)
;Bank 2 parameter
B2_Tacs EQU 0x3 ;4clk
B2_Tcos EQU 0x3 ;4clk
B2_Tacc EQU 0x7 ;14clk
B2_Tcoh EQU 0x3 ;4clk
B2_Tah EQU 0x3 ;4clk
B2_Tacp EQU 0x3 ;6clk
B2_PMC EQU 0x0 ;normal(1data)
;Bank 3 parameter
B3_Tacs EQU 0x3 ;4clk
B3_Tcos EQU 0x3 ;4clk
B3_Tacc EQU 0x7 ;14clk
B3_Tcoh EQU 0x3 ;4clk
B3_Tah EQU 0x3 ;4clk
B3_Tacp EQU 0x3 ;6clk
B3_PMC EQU 0x0 ;normal(1data)
;Bank 4 parameter
B4_Tacs EQU 0x3 ;4clk
B4_Tcos EQU 0x3 ;4clk
B4_Tacc EQU 0x7 ;14clk
B4_Tcoh EQU 0x3 ;4clk
B4_Tah EQU 0x3 ;4clk
B4_Tacp EQU 0x3 ;6clk
B4_PMC EQU 0x0 ;normal(1data)
;Bank 5 parameter
B5_Tacs EQU 0x3 ;4clk
B5_Tcos EQU 0x3 ;4clk
B5_Tacc EQU 0x7 ;14clk
B5_Tcoh EQU 0x3 ;4clk
B5_Tah EQU 0x3 ;4clk
B5_Tacp EQU 0x3 ;6clk
B5_PMC EQU 0x0 ;normal(1data)
;Bank 6(if SROM) parameter
B6_Tacs EQU 0x3 ;4clk
B6_Tcos EQU 0x3 ;4clk
B6_Tacc EQU 0x7 ;14clk
B6_Tcoh EQU 0x3 ;4clk
B6_Tah EQU 0x3 ;4clk
B6_Tacp EQU 0x3 ;6clk
B6_PMC EQU 0x0 ;normal(1data)
;Bank 7(if SROM) parameter
B7_Tacs EQU 0x3 ;4clk
B7_Tcos EQU 0x3 ;4clk
B7_Tacc EQU 0x7 ;14clk
B7_Tcoh EQU 0x3 ;4clk
B7_Tah EQU 0x3 ;4clk
B7_Tacp EQU 0x3 ;6clk
B7_PMC EQU 0x0 ;normal(1data)
;Bank 6 parameter
;BDRAMTYPE='DRAM' ;MT=01(FP DRAM) or 10(EDO DRAM)
;B6_MT EQU 0x2 ;EDO DRAM
;B6_Trcd EQU 0x0 ;1clk
;B6_Tcas EQU 0x0 ;1clk
;B6_Tcp EQU 0x0 ;1clk
;B6_CAN EQU 0x2 ;10bit
;BDRAMTYPE='SDRAM' ;MT=11(SDRAM)
B6_MT EQU 0x3 ;SDRAM
B6_Trcd EQU 0x0 ;2clk
B6_SCAN EQU 0x0 ;8bit
;Bank 7 parameter
;BDRAMTYPE='DRAM' ;MT=01(FP DRAM) or 10(EDO DRAM)
;B7_MT EQU 0x2 ;EDO DRAM
;B7_Trcd EQU 0x0 ;2clk
;B7_Tcas EQU 0x0 ;2clk
;B7_Tcp EQU 0x0 ;2clk
;B7_CAN EQU 0x2 ;10bit
;BDRAMTYPE='SDRAM' ;MT=11(SDRAM)
B7_MT EQU 0x3 ;SDRAM
B7_Trcd EQU 0x0 ;2clk
B7_SCAN EQU 0x0 ;8bit
;REFRESH parameter
REFEN EQU 0x1 ;Refresh enable
TREFMD EQU 0x0 ;CBR(CAS before RAS)/Auto refresh
Trp EQU 0x0 ;2clk
Trc EQU 0x1 ;5clk
Tchr EQU 0x2 ;3clk
;REFCNT = 2048 + 1 - MCLK(MHz) * 15.6
REFCNT EQU 1550 ;period=15.6us, MCLK=32Mhz 根据系统时钟计算sdram的刷新数率
;REFCNT EQU 1425 ;1019 ;period=15.6us, MCLK=66Mhz
;************************************************
END
上一篇:ARM裸机篇---启动代码分析
下一篇:ARM汇编程序设计之--数据搬移