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

 
 
> Можно ли замапить память юзер спейс для pcie устройства?, вопрос так скажем от новичка.
novartis
сообщение Nov 13 2015, 18:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Вот есть у меня линукс-драйвер для pcie устройства (отладочная плата альтеры). Он еще весьма сырой.
В интернете видел, что бары девайса мапятся в юзер спейс программу с помощью mmap. Своими руками такое еще не реализовал smile3046.gif .
И в итоге можно в юзер спейс программе писать или читать по выделенным функцией mmap адресам. Это транслируется в запросы записи или чтения на шину pcie. И в итоге эти запросы попадают в плис и уходят в память, которая подключена к барам у pcie ядра в плис.
Это выглядит как прямое отображение памяти баров девайса в эзер спейс программу.

А вопрос такой. А можно ли с помощью mmap или чего другого отобразить юзер спейс массив (память) для прямого доступа со стороны девайса?
Например, чтобы девайс засылал запрос на запись данных по pcie и данные попадали в массив, созданный в юзер спейс программе. Но чтоб без прерываний.

PS: LDD читал, читаю и читать буду, но пока каша в голове.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des333
сообщение Nov 14 2015, 15:08
Сообщение #2


Профессионал
*****

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



Цитата(novartis @ Nov 13 2015, 21:46) *
А вопрос такой. А можно ли с помощью mmap или чего другого отобразить юзер спейс массив (память) для прямого доступа со стороны девайса?
Например, чтобы девайс засылал запрос на запись данных по pcie и данные попадали в массив, созданный в юзер спейс программе. Но чтоб без прерываний.


Почему бы не выделять память в драйвере, а в userspace только делать mmap этой памяти и работать с ней?
Чем обусловлена необходимоть выделять память именно в userspace?

Если это, всё-таки, необходимо на 100%, то это тоже реально.
Но нужно помнить, что непрерывная память в userspace не будет непрерывной физически и, следовательно, непрерывной для устройства.
Поэтому придется работать только с 1-ой страницей непрерывной памяти.

Пример можно посмотреть у меня в статье.
Основная для Вас информация дана в разделе Реализация userspace программы:
http://habrahabr.ru/company/metrotek/blog/248145/


--------------------
Go to the top of the page
 
+Quote Post



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

 


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


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