2015-11-19 7 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 относится к 128-мегабитной памяти. Может кто-нибудь, пожалуйста, очистите меня?

+0

В чем вопрос? –

+0

Вопрос ясен, почему мы объявляем 128-мегабитный размер памяти, имея размер 256 Мбит? –

+2

Разумеется, вы должны изменить код инициализации контроллера SDRAM в соответствии с используемым вами устройством - и, возможно, не только размер - время тоже критично. Вы, скорее всего, получите полезную помощь, если бы указали, какой MCU вы используете, и укажите, откуда пришел код, на который вы ссылаетесь. – Clifford

ответ

1

Существует два возможных ответа, в зависимости от кода в используемой библиотеке.

Возможность 1:

Согласно спецификации K4S561632C, устройство представляет собой 4М х 16 бит х 4 банков SDRAM. Поскольку его шина данных имеет ширину 16 бит (2 байта), это означает, что существуют 4M x 4 = 16,777,216 (0x1000000) отдельных адресов с 16-битовым значением по каждому адресу. Значение SDRAM_SIZE в библиотеке относится к числу 16-разрядных слов, а не количеству байтов в устройстве.

Возможность 2:

Файл библиотеки неправильно. Возможно, первоначально он ссылался на более раннюю часть на 128 Мбит, а когда появилась новая 256-мегабитная часть, поставщик библиотеки не обновлял свою библиотеку, чтобы согласиться с новой частью. Если это так, то вы можете изменить линию следующим образом:

#define SDRAM_SIZE   0x02000000 
Смежные вопросы