我使用K4S561632C 256Mbit SDRAM来增加MCU的内存,但我在SDRAM的初始化库中找到了这些产品线,它为我提供了产品:
#define SDRAM_BASE_ADDR 0xA0000000
#define SDRAM_SIZE 0x01000000 /* 16M 128Mbit 1024*1024*16 byte */
但正如我上面说的那样它是256Mbit内存而SDRAM_Size是指128Mbit内存。任何人请清楚我吗?
答案 0 :(得分:1)
根据您使用的库中的代码,有两种可能的答案。
可能性1 :
根据K4S561632C数据手册,该器件是一个4M x 16位x 4 Bank SDRAM。由于其数据总线为16位宽(2字节),这意味着有4M x 4 = 16,777,216(0x1000000)个不同的地址,每个地址的值为16位。库中的SDRAM_SIZE
值是指设备中16位字的数量,而不是字节数。
可能性2 :
库文件错误。也许它最初是指较早的128Mbit部分,当引入较新的256Mbit部分时,库供应商没有更新他们的库以同意新的部分。如果是这种情况,那么您可能希望按如下方式更改该行:
#define SDRAM_SIZE 0x02000000