Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Работа с регистрами в драйвере
Dub
Добавлено 01.08.2012 21:44 Редактировалось 01.08.2012 22:36 Сообщение: 11
Dub
5

Пункты: 1141
Регистрация: 14.05.2012
Цитата
вот семпл для 9m10(9g45) как из своей программы запустить SPI
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=15612&num=2#15630

А как на уровне ядра такое сделать? В линуксе просто нет поддержки слейва. А полноценный свой слейв драйвер написать не умею. Из юзерспейс, думаю, получится медленно. Мне нужно от мастера на шине получать 16битные данные на достатачно большой скорости и складывать в буфер не теряя данные.
Как быть теперь незнаю. Без ос все решается просто работой с регистрами и по прерываниям. Неужели в линукс нет решения.
работая с линукс все время боюсь того что принимая какие либоданные с внешних устройств линукс просто не будет успевать забирать данные ввиду того, что это не ртос. Как обычно решаются такие задачи?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 01.08.2012 23:45 Сообщение: 12
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
А как на уровне ядра такое сделать?

нельзя так делать на уровне драйвера ядра! почитайте (или погуглите) how to make linux driver и сразу делайте поправку на версию ядра с которой собираетесь работать..
Саша (sasamy) написал несколько версий видеодрайвера с интерфейсом на SPI - покопайте форум, там есть длиннющий тред.. есть несколько веток о spidev (имхо для отладки сгодится)..

Цитата
Как обычно решаются такие задачи?

хм.. в зависимости от поставленного ТЗ.. квитирование, контрольные суммы, фидбек.. на уровне физического протокола, транспортного, высокоуровневой логики передачи данных..
можно влепить однокристалку или ФПГА с огромным буфером, куда извне будут валится данные, а АРМ неспешно будет отгребать.. реализаций вагон, осталось найти - кто будет писать поддержку этого богатства..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Dub
Добавлено 02.08.2012 13:41 Сообщение: 13
Dub
5

Пункты: 1141
Регистрация: 14.05.2012
Цитата

хм.. в зависимости от поставленного ТЗ.. квитирование, контрольные суммы, фидбек.. на уровне физического протокола, транспортного, высокоуровневой логики передачи данных..
можно влепить однокристалку или ФПГА с огромным буфером, куда извне будут валится данные, а АРМ неспешно будет отгребать.. реализаций вагон, осталось найти - кто будет писать поддержку этого богатства..

Примеры это хорошо, да все они для мастера(драйвера от Саши тоже)
Ладно, буду думать.
По поводу успевания забирать данные:
А если в самом драйвере огромный буфер сделать? Фпга ставить совсем не охота.
Спуститься к концу Подняться к началу
Персональная информация
Dub
Добавлено 03.08.2012 23:13 Сообщение: 14
Dub
5

Пункты: 1141
Регистрация: 14.05.2012
коллега на одном из форумов сказал что из драйвера можно достучаться до регистров по стандартным адресам и не нужно никаких дополнительных телодвижений как в юзерспейс.
Было бы здорово если так оно и есть для атмеловского арма.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.08.2012 10:43 Редактировалось 04.08.2012 10:43 Сообщение: 15
sasamy
4.70

Пункты: 77103
Регистрация: 14.08.2009
можете взять за основу этот драйвер
http://www.at91.com/samphpbb/viewtopic.php?f=12&t=18204
там надо убрать инициалиацию lcd и все что касается фреймбуфера и вместо мастера настроить на слейв - это мало будет отличатся от того что вы делали в standalone, единственно - непонятно как быть с непрерывным приемом - у atmel нет scatter/gather dma на spi, есть только pdc c двумя указателями но их помоему не получится настроить так что после перывания по заполнению одного буфера интерфейс продолжал заполнять следующий буфер без вмешательства процессора.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux