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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Проблема с блочным чтением и записью по шине PLB, MicroBlaze
powerc
сообщение Jan 20 2011, 09:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Никак не могу найти драйвер для XPS Multi-CHannel External Memory Controller (XPS MCH EMC).

Открываю папкe microblaze_0\libsrc\emc_v3_01_a\src , а там пустота...

В EDK-шном каталоге все заголовники пустые. sad.gif

То есть драйвер для этого контроллера не сгенерился. Что мне делать? Мне нужно организовать чтение и запись во внешнюю Micron SDRAM в режиме burst mode.

Колупаюсь уже 2 недели, никак не пойму что делать.

Помогите, люди добрые!
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jan 20 2011, 10:02
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Мне всегда казалось, что EMC - это не для SDRAM...
А для SDRAM - MPMC.
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 20 2011, 10:27
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Цитата(Koluchiy @ Jan 20 2011, 13:02) *
Мне всегда казалось, что EMC - это не для SDRAM...
А для SDRAM - MPMC.


Ну EMC подходит и для флешки для для сдрама.


Из даташита на контроллер.

provides the
control interface for external synchronous,
asynchronous SRAM and Flash memory devices
through the MCH.

Просто EDK Base System Builder мне через него подключил SDRAM-ку.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Jan 20 2011, 11:40
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(powerc @ Jan 20 2011, 16:27) *
Ну EMC подходит и для флешки для для сдрама.


Из даташита на контроллер.

provides the
control interface for external synchronous,
asynchronous SRAM and Flash memory devices
through the MCH.

Просто EDK Base System Builder мне через него подключил SDRAM-ку.

Ключевое слово здесь SRAM - почувствуйте разницу между SRAM и SDRAM. sm.gif
Это совершенно разные интерфейсы и технологии.
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 20 2011, 13:20
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Цитата(Bad0512 @ Jan 20 2011, 14:40) *
Ключевое слово здесь SRAM - почувствуйте разницу между SRAM и SDRAM. sm.gif
Это совершенно разные интерфейсы и технологии.



Точно! Память там не SDRAM, а SRAM с вот такой выкладкой в general description

Micron® CellularRAM™ is a high-speed, CMOS pseudo-static random access memory
developed for low-power, portable applications. The MT45W8MW16BGX device has a
128Mb DRAM core, organized as 8 Meg x 16 bits. These devices include an industrystandard
burst mode Flash interface that dramatically increases read/write bandwidth
compared with other low-power SRAM or pseudo-SRAM offerings.

Контроллер для нее EMC.

Так вот как же объяснить на языке Си микроблэйзу то, что я хочу почитать/пописать из этой памяти в burst-режиме?

Повторюсь, драйвера для этого контроллера я так и не нашел.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 20 2011, 16:54
Сообщение #6


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(powerc @ Jan 20 2011, 16:20) *
Контроллер для нее EMC.

Так вот как же объяснить на языке Си микроблэйзу то, что я хочу почитать/пописать из этой памяти в burst-режиме?

Повторюсь, драйвера для этого контроллера я так и не нашел.

У меня была ситуация , когда даже не генерировались драйвера для GPIO. Связано это было с заданием своих значений параметров при создании GPIO. Видимо, не понравилась комбинация значений. Попробуйте взять за основу параметры по умолчанию, генерируйте BSP и берите за основу.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 20 2011, 19:32
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Цитата(mdmitry @ Jan 20 2011, 19:54) *
У меня была ситуация , когда даже не генерировались драйвера для GPIO. Связано это было с заданием своих значений параметров при создании GPIO. Видимо, не понравилась комбинация значений. Попробуйте взять за основу параметры по умолчанию, генерируйте BSP и берите за основу.



Огромное спасибо за ответ! Завтра на работе с утра попробую и отпишусь сразу же sm.gif
Правда когда я генерил проект для Nexys'а, я ничего не выставлял необычного, кроме кэша процессора(ведь без него низзя бурст организовать, насколько я понимаю?), и установки кэшлинков для этой самой микроновской памяти.

С кэшлинками этими так и не разобрался правда, совсем еще новичок в этом деле. Это просто кеширование памяти получается, вот эти IXCL и DXCL? Для чего это кеширование по линии инструкций и данных, не пойму.

Еще раз большое спасибо за ответ!
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 21 2011, 07:56
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Нет. Все-таки ничего так и не вышло. Сгенерил в Base System Buildere систему с полностью дефолтными параметрами (жал только кнопку next). Та драйверов для EMC я и не увидел... Может быть подцепить вышеуказанную память к какому-нибудь другому контроллеру?

Как быть? Как получить дрова для EMC-контроллера? Или может быть есть альтернативные методы решения данной проблемы?

Пока не знаю что делать, попробую использовать flash память, которая также установлена на моем ките (nexys2). Может быть для нее сгенерятся дровки.

Об изменениях буду писать в топик.

Вобщем-то мне по-прежнему нужно записать и почитать из внешней памяти в режиме burst mode.

Если у кого появятся какие-то мысли и желание ими поделиться, буду очень благодарен.

Спасибо.
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 21 2011, 09:12
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



С флэшкой тоже ничего не получилось. Видимо ксайлинксовцы просто и не писали драйверы на этот контроллер sad.gif

Соответственно и в API на драйвер написано следующее:

This driver exists only to allow the EDK tools to create a memory test application and to populate xparameters.h with memory range constants. There is no source code.

Только вот в xparameters.h по поводу этого контроллера написано

/* Definitions for peripheral MICRON_RAM */
#define XPAR_MICRON_RAM_NUM_BANKS_MEM 1


/******************************************************************/

/* Definitions for peripheral MICRON_RAM */
#define XPAR_MICRON_RAM_MEM0_BASEADDR 0x80000000
#define XPAR_MICRON_RAM_MEM0_HIGHADDR 0x80FFFFFF

/******************************************************************/

/* Canonical definitions for peripheral MICRON_RAM */
#define XPAR_EMC_0_NUM_BANKS_MEM 1
#define XPAR_EMC_0_MEM0_BASEADDR 0x80000000
#define XPAR_EMC_0_MEM0_HIGHADDR 0x80FFFFFF

#define XPAR_XPS_MCH_EMC



Как мне на основе этих данных сконфигурить контроллер для блочной передачи и написать простенький цикл блочной записи/чтения?

Помогите пожалуйста ламеру, я в программировании чайник чугунный, а задачку надо разрубить sad.gif
Go to the top of the page
 
+Quote Post
Alex77
сообщение Jan 21 2011, 10:49
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(powerc @ Jan 21 2011, 12:12) *
Как мне на основе этих данных сконфигурить контроллер для блочной передачи и написать простенький цикл блочной записи/чтения?

Помогите пожалуйста ламеру, я в программировании чайник чугунный, а задачку надо разрубить sad.gif

Вам надо разобраться что есть такое "блочная запись/чтение".
От этого у Вас и все проблемы.
В данном случае блочные пересылки осуществляются полностью АППАРАТНО и ПРОГРАММНОГО управления этим процессом не существует.
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 21 2011, 11:29
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Alex77, то есть программку для того, чтобы мне в burst режиме записать по заданному диапазону адресов допустим 0XFFFFFFFF мне написать никак не получится?
sad.gif
Go to the top of the page
 
+Quote Post
Дмитрий Мазунин
сообщение Jan 21 2011, 14:58
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715



У Вас не получится работать с памятью через этот контроллер как-то иначе, чем предусмотрено его разработчиками.
Alex77 совершенно прав.
И никакого драйвера для этого устройства не существует.
Если Вам нужно задействовать какие-то механизмы, которые поддерживает Ваша память, но не поддерживает контроллер EMC, у Вас только 1 выход - написать свой контроллер...
Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 21 2011, 15:34
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Дмитрий Мазунин, большое спасибо за ответ!

К сожалению на написание своего контроллера у меня совсем нет времени sad.gif

Тогда выходит такое дело, что мне необходим прямой доступ к памяти DMA.
Насколько я понял по даташитам на PowerPC440GP и Microblaze, в из ядрах нету контролеера прямого доступа к памяти, таким образом мне нужно будет, по видимому, посадить на шину PLB контроллер DMA, с помощью которого я смогу считывать из памяти с высокой скоростью.

Или все-таки microblaze может сам осуществить доступ DMA, без периферийного контроллера DMA?

Чтобы была ясна моя задача, она такова: мне нужно максимально быстро выкачать из памяти данные. В идеале, понятное дело, с чатотой шины(то есть как в режиме burst).

Правильно ли я предполагаю, что если контроллер EMC не даст мне возможности для этого, то я могу воспользоваться DMA?

Простите мне мое ламерство пожалуйста.
Go to the top of the page
 
+Quote Post
Mad_max
сообщение Jan 22 2011, 13:22
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



Цитата(powerc @ Jan 21 2011, 19:34) *
Тогда выходит такое дело, что мне необходим прямой доступ к памяти DMA.
Насколько я понял по даташитам на PowerPC440GP и Microblaze, в из ядрах нету контролеера прямого доступа к памяти, таким образом мне нужно будет, по видимому, посадить на шину PLB контроллер DMA, с помощью которого я смогу считывать из памяти с высокой скоростью.


С помощью EMC или MPMC Вы можете отобразить внешнюю память как адресуемое пространство для процессора, использовать как оперативную память.
Но, как Вам правильно сказали, поднять скорость общение процессора с памятью выше, чем это заложено разработчиками контроллера, невозможно.
Вы можете лишь, снять с процессора задачи по перекидки данных, чем повысите быстродействие и поднимите в целом производительность.
Сделать это можно с помощью DMA контроллера. Сажать его как отдельный абонент на шине, не рекомендую (opb_central_dma) капризная вещь.

Цитата
Или все-таки microblaze может сам осуществить доступ DMA, без периферийного контроллера DMA?

DMA вещь аппаратная по определению!!!
Цитата
Правильно ли я предполагаю, что если контроллер EMC не даст мне возможности для этого, то я могу воспользоваться DMA?

Да правильно, только рекомендую изначально создавать периферийный модуль со своим собственным DMA. Plb_ipif это позволяет.

Go to the top of the page
 
+Quote Post
powerc
сообщение Jan 22 2011, 13:46
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 17-01-11
Пользователь №: 62 275



Спасибо!

>>DMA вещь аппаратная по определению!!!

Да, я это понимаю, только вот в ядре процессора ее нет. Посему я и предположил использование central_dma.


А в каких контроллерах это можно использовать? В EMC его можно подключить? Просто я, к сожалению, пока что не нашел как это сделать.

Просто мой девкит предполагает использование EMC, и как я понимаю альтернативного контроллера для данного чипа памяти нету среди готовых IPядер.


>>С помощью EMC или MPMC Вы можете отобразить внешнюю память как адресуемое пространство для процессора, использовать как оперативную память.

Спасибо за эту информацию! Теперь для меня стал больше понятен тот проект, который сгенерился в Base System Buildere.


PS Я использую шину PLB.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th July 2025 - 19:52
Рейтинг@Mail.ru


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