tongds 发表于 2007-12-21 00:17

关于arm的存储器的使用

在arm的初始化代码部分,在flash和sdram的初始化中有下面的数据写入到了bankcon等寄存器中,(我(44b0)的flash接到了bank0,sdram接到了bank6),我有如下问题不明白,请指教:
1、B0_Tacs等是关键字吗?((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))代表什么意思?
2、关于bankcon寄存器如何设置,我不知道flash等的芯片手册怎么得出来的寄存器的设置?


;*****************************************************************
;* Memory configuration has to be optimized for best performance *
;* The following parameter is not optimized.                     *
;*****************************************************************

;*** memory access cycle parameter strategy ***
; 1) Even FP-DRAM, EDO setting has more late fetch point by half-clock
; 2) The memory settings,here, are made the safe parameters even at 66Mhz.
; 3) FP-DRAM Parameters:tRCD=3 for tRAC, tcas=2 for pad delay, tcp=2 for bus load.
; 4) DRAM refresh rate is for 40Mhz.

   
        DCD 0x11110090        ;Bank0=OM, Bank1~Bank7=16bit, bank2=8bit;
        DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))        ;GCS0
        DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))        ;GCS1
        DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))        ;GCS2
        DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))        ;GCS3
        DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))        ;GCS4
        DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))        ;GCS5
        DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))        ;GCS6
        DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))        ;GCS7
        DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)        ;REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019
        DCD 0x16                                ;SCLK power mode, BANKSIZE 32M/32M
        DCD 0x20                        ;MRSR6 CL=2clk
        DCD 0x20                        ;MRSR7

        ALIGN

cjaizss 发表于 2007-12-21 10:57

可能LZ还尚未熟悉嵌入式。
B0_Tacs怎么可能是关键字呢?关键字是对于编译器/解释器而言的,是它们内定的。这个只是一个宏
类似这样的((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))一般用来设置寄存器,寄存器的不同的位的设置与清0代表着不同的意思,当然,这里不用+而用|看上去效果更好,所以我想我是绝对不会去用+的
恩,其他的,自己去查吧,做ee总归要自己搞定这些的

tongds 发表于 2007-12-21 18:57

是的,我刚开始解除,谢谢楼主
页: [1]
查看完整版本: 关于arm的存储器的使用