2015-11-19 203 views
1

我使用K4S561632C的256Mbit SDRAM提高MCU的内存,但是我发现在SDRAM的草签库本线,交付给我的产品:K4S561632 SDRAM内存大小

#define SDRAM_BASE_ADDR  0xA0000000 
#define SDRAM_SIZE   0x01000000 /* 16M 128Mbit 1024*1024*16 byte */       

,但正如我前面所说它是的256Mbit内存,而SDRAM_Size指的是128Mbit内存。任何人请清除我?

+0

问题是什么? –

+0

问题很明显,为什么我们声明128Mbit的内存大小,而它有256Mbit的大小? –

+2

您当然希望修改SDRAM控制器初始化代码以匹配您使用的设备 - 并且可能不仅是尺寸 - 时序也非常重要。如果您指定了您正在使用的MCU,并且指出您所指的代码来自何处,那么您将更有可能获得有用的帮助。 – Clifford

回答

1

根据您使用的库中的代码,有两种可能的答案。

可能性1

按照K4S561632C数据片,该装置是一个4M X 16位×4 SDRAM银行。由于其数据总线是16位宽(2字节),这意味着有4M x 4 = 16,777,216(0x1000000)不同地址,每个地址有16位值。库中的SDRAM_SIZE值指的是设备中16位字的数量,而不是字节数。

可能性2

库文件是错误的。也许它最初是指128Mbit的更早的部分,而当更新的256Mbit部分被引入时,库供应商没有更新他们的库来同意新的部分。如果是这种情况,那么你可能希望更改该行如下:

#define SDRAM_SIZE   0x02000000