K4S561632 SDRAM内存大小
K4S561632 SDRAM memory size
我正在使用 K4S561632C 256Mbit SDRAM 来增加 MCU 的内存,但我在交付产品的 SDRAM 初始化库中找到了这些行:
#define SDRAM_BASE_ADDR 0xA0000000
#define SDRAM_SIZE 0x01000000 /* 16M 128Mbit 1024*1024*16 byte */
但正如我上面所说的,它是 256Mbit 内存,而 SDRAM_Size 指的是 128Mbit 内存。谁能帮我解决这个问题?
有两种可能的答案,具体取决于您使用的库中的代码。
可能性 1:
根据K4S561632C资料sheet,该设备是一个4M x 16bit x 4 Banks SDRAM。由于它的数据总线是 16 位宽(2 字节),这意味着有 4M x 4 = 16,777,216 (0x1000000) 个不同的地址,每个地址都有一个 16 位值。库中的 SDRAM_SIZE
值指的是设备中 16 位字的数量,而不是字节数。
可能性 2:
库文件错误。可能它最初指的是较早的 128Mbit 部件,当引入较新的 256Mbit 部件时,库供应商没有更新他们的库以适应新部件。如果是这种情况,那么您可能希望按如下方式更改该行:
#define SDRAM_SIZE 0x02000000
我正在使用 K4S561632C 256Mbit SDRAM 来增加 MCU 的内存,但我在交付产品的 SDRAM 初始化库中找到了这些行:
#define SDRAM_BASE_ADDR 0xA0000000
#define SDRAM_SIZE 0x01000000 /* 16M 128Mbit 1024*1024*16 byte */
但正如我上面所说的,它是 256Mbit 内存,而 SDRAM_Size 指的是 128Mbit 内存。谁能帮我解决这个问题?
有两种可能的答案,具体取决于您使用的库中的代码。
可能性 1:
根据K4S561632C资料sheet,该设备是一个4M x 16bit x 4 Banks SDRAM。由于它的数据总线是 16 位宽(2 字节),这意味着有 4M x 4 = 16,777,216 (0x1000000) 个不同的地址,每个地址都有一个 16 位值。库中的 SDRAM_SIZE
值指的是设备中 16 位字的数量,而不是字节数。
可能性 2:
库文件错误。可能它最初指的是较早的 128Mbit 部件,当引入较新的 256Mbit 部件时,库供应商没有更新他们的库以适应新部件。如果是这种情况,那么您可能希望按如下方式更改该行:
#define SDRAM_SIZE 0x02000000