Embedded K4S561632 SDRAM内存大小

Embedded K4S561632 SDRAM内存大小,embedded,Embedded,我正在使用K4S561632C256Mbit SDRAM来增加MCU的内存,但我在SDRAM的初始化库中发现了以下几行代码,它们提供了产品: #define SDRAM_BASE_ADDR 0xA0000000 #define SDRAM_SIZE 0x01000000 /* 16M 128Mbit 1024*1024*16 byte */ 但正如我上面所说,它是256Mbit内存,而SDRAM_大小是指128Mb

我正在使用K4S561632C256Mbit SDRAM来增加MCU的内存,但我在SDRAM的初始化库中发现了以下几行代码,它们提供了产品:

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

但正如我上面所说,它是256Mbit内存,而SDRAM_大小是指128Mbit内存。有人能帮我澄清一下吗?

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

可能性1

根据K4S561632C数据表,该设备为4M x 16位x 4银行SDRAM。因为它的数据总线是16位宽(2字节),这意味着有4mx4=16777216(0x1000000)个不同的地址,每个地址都有一个16位的值。库中的
SDRAM\u SIZE
值指的是设备中的16位字数,而不是字节数

可能性2

库文件是错误的。可能它最初指的是早期的128Mbit部件,而当引入较新的256Mbit部件时,库供应商没有更新其库以同意新部件。如果是这种情况,则您可能希望更改行,如下所示:

#define SDRAM_SIZE          0x02000000

问题是什么?问题很清楚,为什么我们声明128Mbit内存大小,而它有256Mbit大小?当然,您需要修改SDRAM控制器初始化代码,以匹配您正在使用的设备-可能不仅仅是大小-计时也很关键。如果您指定使用的是什么MCU,并指出所引用的代码来自何处,则更有可能获得有用的帮助。