Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
прошу помощи с драйвером
Dub
Добавлено 02.08.2012 21:07
0
Сообщение: 1
Dub
5

Пункты: 1141
Регистрация: 14.05.2012
Прошу прощения за то что стал частить с вопросами. Но никак не могу понять как реализовать в драйвере кольцевой буфер. Драйвер по прерыванию(приходит внешний сигнал готовности данных) по spi принимает данные от внешнего ацп и надо складывать данные в большой буфер. А приложение забирает данные по 500 отсчетов за раз. Вопрос:драйвер будет символьным или блочным устройством? И как реализуется буфер произвольного размера на уровне драйвера?
заранее спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 03.08.2012 13:14 Сообщение: 2
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Цитата
И как реализуется буфер произвольного размера на уровне драйвера?

В документацию никто и никогда не смотрит, хотя там есть практически всё: http://lxr.linux.no/#linux+v3.5/Documentation/circular-buffers.txt
Цитата
Вопрос:драйвер будет символьным или блочным устройством?

Символьным, ибо нет произвольного доступа.
Спуститься к концу Подняться к началу
Персональная информация
Dub
Добавлено 03.08.2012 22:57 Сообщение: 3
Dub
5

Пункты: 1141
Регистрация: 14.05.2012
Цитата
Цитата
И как реализуется буфер произвольного размера на уровне драйвера?

В документацию никто и никогда не смотрит, хотя там есть практически всё: http://lxr.linux.no/#linux+v3.5/Documentation/circular-buffers.txt
Цитата
Вопрос:драйвер будет символьным или блочным устройством?

Символьным, ибо нет произвольного доступа.


спасибо. Мне нужно считывать из буфера данные кусками по 100 элементов за раз периодически и по кругу, запоминая место где остановились на каждой итеррации. Системный вызов read позволяет такое сделать(имею ввиду читать не весь буфер а кусок и запомнить в каком месте буфера остановились)?
Спуститься к концу Подняться к началу
Персональная информация
dx
Добавлено 04.08.2012 09:48 Сообщение: 4
dx
3.5

Пункты: 7618
Регистрация: 26.10.2010
Пол: Мужчина
Из: Ukraine, Kiev city
Я бы через poll/select ждал данних. А хранил бы их в kfifo.
http://lwn.net/Articles/345015/
http://www.makelinux.net/ldd3/chp-6-sect-3
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux