реклама на сайте
подробности

 
 
> использование DDR2 в XPS, xmpmc библиотеки
zherdiy
сообщение Jul 16 2008, 06:36
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



У меня на КИТЕ Spartan3AN распаяна память 512 Mbit (32M x 16) Micron Technology
DDR2 SDRAM (MT47H32M16) with a 16-bit data interface. Для управления ею Builder Wizard подключил к проекту с Микроблейзом элемент MPMC (multi port memory controler). Начал рыться в библиотеках на предмет использования сего элемента, нашёл две библиотеки: xmpmc.h и xmpmc_hw.h. Ни в одной из них нет функций чтения и записи в память. Я в недоумении - как же мне пользоваться памятью?

Раньше был опыт использования распаянного SRAMа. На XPSовские корки я тогда забил и сделал управление памятью в ISE на схематике (у меня был проект "microblaze XPS" + "схематика ISE"). Но теперь я с DDR2 самостоятельно совладать может и не смогу - она посложнее будет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zherdiy
сообщение Jul 21 2008, 05:31
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



Что-то не понял, как в моем случае может пригодится файл xutil_memtest.c. Мне же нужно целенаправленно писать и читать из памяти, а не непонятным образом тестировать ее. Да и есть подозрение, что прямое обращение к памяти будет работать, только в случае установки DDR2 как основной памяти плис на локальную шину dlmb и ilmb.

Еще примеры есть?
Go to the top of the page
 
+Quote Post
tolik1
сообщение Jul 22 2008, 07:47
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016



Цитата(zherdiy @ Jul 21 2008, 09:31) *
Что-то не понял, как в моем случае может пригодится файл xutil_memtest.c. Мне же нужно целенаправленно писать и читать из памяти, а не непонятным образом тестировать ее. Да и есть подозрение, что прямое обращение к памяти будет работать, только в случае установки DDR2 как основной памяти плис на локальную шину dlmb и ilmb.

Еще примеры есть?

1. В файлеxparameters.h у Вас будет базовый адрес. Далее обращаетесь к памяти напрямую через этот адрес.

Xuint32 *pMem = (*Xuint32)BASE_ADDR_CORE;

*pMem = 123456;

2. В LinkerScripte надо настроить определенный регион на размещение его в Вашей внешней памяти (я ставил .BSS Uninitialized data section) и глобальные переменные будут располагаться в этой памяти.
Xuint32 a; но не Xuint32 a = 0;
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Oct 6 2008, 12:06
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



Цитата(tolik1 @ Jul 22 2008, 10:47) *
1. В файлеxparameters.h у Вас будет базовый адрес. Далее обращаетесь к памяти напрямую через этот адрес.

Xuint32 *pMem = (*Xuint32)BASE_ADDR_CORE;

*pMem = 123456;

2. В LinkerScripte надо настроить определенный регион на размещение его в Вашей внешней памяти (я ставил .BSS Uninitialized data section) и глобальные переменные будут располагаться в этой памяти.
Xuint32 a; но не Xuint32 a = 0;


п.1 и п.2 - это два варианта или п.2 есть дополнение к п.1?
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Oct 6 2008, 13:57
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



Цитата(zherdiy @ Oct 6 2008, 15:06) *
п.1 и п.2 - это два варианта или п.2 есть дополнение к п.1?


Если п1 и п2 - это независимые варианты использования ddr, то могу ли я написать следующее:
Xuint32 *pMem[2] = (*Xuint32)BASE_ADDR_CORE;
*pMem[0] = 1;
*pMem[1] = 2;
*pMem[2] = 3;
read = *pMem[1];
- будут ли значения 1,2 и 3 писаться на различные адреса в ддр?
Go to the top of the page
 
+Quote Post
vik0
сообщение Oct 6 2008, 14:09
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 27-07-08
Из: теплые края
Пользователь №: 39 233



Цитата
п.1 и п.2 - это два варианта или п.2 есть дополнение к п.1?

Это два разных варианта.

Цитата(zherdiy @ Oct 6 2008, 16:57) *
Если п1 и п2 - это независимые варианты использования ddr, то могу ли я написать следующее:
Xuint32 *pMem[2] = (*Xuint32)BASE_ADDR_CORE;
*pMem[0] = 1;
*pMem[1] = 2;
*pMem[2] = 3;
read = *pMem[1];
- будут ли значения 1,2 и 3 писаться на различные адреса в ддр?

Нет, не можете. Потому что это, простите, бред.
То, что Вы хотите, выглядит так:
Код
Xuint32 *pMem = (Xuint32*)BASE_ADDR_CORE;
pMem[0] = 1;
pMem[1] = 2;
pMem[2] = 3;
read = pMem[1];
Go to the top of the page
 
+Quote Post
zherdiy
сообщение Oct 23 2008, 07:56
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 93
Регистрация: 8-01-08
Из: Запорожье
Пользователь №: 33 895



Цитата(vik0 @ Oct 6 2008, 17:09) *
То, что Вы хотите, выглядит так:
Код
Xuint32 *pMem = (Xuint32*)BASE_ADDR_CORE;
pMem[0] = 1;
pMem[1] = 2;
pMem[2] = 3;
read = pMem[1];


Сделал так - начало писать и читать, но как-то странно. После извлечения данных (32бита) из памяти (16-ти разрядной) я получаю правильными только старший (4-ый) байт. 1-ый и 2-ой байты - непонятные значения, чуть изменяемые в зависимости от поступивших в ddr2 данных, а 3-ий байт по чтению - такое впечатление, что туда ставится первый по записи. Не пойму - это память глючная или что-то у меня в настройках Microblaze не так?
Пробовал писать данные, описываемые как Xuint16 - не помогло.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zherdiy   использование DDR2 в XPS   Jul 16 2008, 06:36
- - Дмитрий Мазунин   Никаких библиотек Вам не нужно. MPMC прозрачен, пр...   Jul 16 2008, 07:36
- - zherdiy   Да, немного не туда написал, так что не буду возра...   Jul 16 2008, 12:45
- - zherdiy   Может у кого проектик есть для примера? У мена на ...   Jul 17 2008, 12:05
- - RKOB   Посмотри на тест памяти (пример xilinx), который о...   Jul 18 2008, 10:24
|- - zherdiy   Цитата(tolik1 @ Jul 22 2008, 10:47) 1. В ...   Sep 10 2008, 08:33
- - RKOB   ЦитатаЧто-то не понял, как в моем случае может при...   Jul 22 2008, 10:35
- - zherdiy   Начал компилировать проект и на этапе генерации фа...   Sep 11 2008, 13:04
- - zherdiy   Дополнение: пишу грядку данных каждое в свой адрес...   Oct 24 2008, 13:57


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 17:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016