关于arm的存储器的使用

发布于 2022-09-26 11:47:14 字数 4323 浏览 7 评论 0

在arm的初始化代码部分,在flash和sdram的初始化中有下面的数据写入到了bankcon等寄存器中,(我(44b0)的flash接到了bank0,sdram接到了bank6),我有如下问题不明白,请指教:
1、B0_Tacs等是关键字吗?((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<+(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[1:0], Bank1~Bank7=16bit, bank2=8bit;
        DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))        ;GCS0
        DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))        ;GCS1
        DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))        ;GCS2
        DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))        ;GCS3
        DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))        ;GCS4
        DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<+(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<<1+(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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说好的呢 2022-10-03 11:47:14

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

Oo萌小芽oO 2022-10-03 11:47:14

是的,我刚开始解除,谢谢楼主

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文