2015-11-19 133 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