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

 
 
> написание драйвер, вывод переменных в user space
Zelepuk
сообщение Jul 2 2012, 08:50
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Хочется сделать такую вещь:
на уровне ядра забираются данные с датчика температуры по I2C и помещаются в массив. Как полусить эти данные в user space?
где можно найти хорошее описание как подоюный драйвер написать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kurtis
сообщение Jul 2 2012, 10:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Что значит "на уровне ядра"?
Вы из userspace можете получить доступ к шине i2c? Если да, то тогда все предельно просто, вам достаточно посмотреть как реализованы i2c-tools и сделать по аналогии.

Цитата
Как полусить эти данные в user space?

1. Сделать запись в sysfs. При чтении из этой записи, делайте printk() вашего массива
2. Добавить новый ioctl к драйверу, который работает с i2c датчиком.
3. Можно через event-интерфейс, при получении новый измерений, в userspace отправляйте события, правда стандартный события могут не подойти, нужно будет что-то придумать.
4. Можно сокетами воспользоваться. Например, посмотреть как сделать netlink сокеты (через него udev узнает о новых устройствах).
5. Можно добавить свой собственный системный вызов, который будет печатать содержимое массива.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Jul 2 2012, 13:41
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Цитата(kurtis @ Jul 2 2012, 13:42) *
Что значит "на уровне ядра"?
Вы из userspace можете получить доступ к шине i2c? Если да, то тогда все предельно просто, вам достаточно посмотреть как реализованы i2c-tools и сделать по аналогии.


1. Сделать запись в sysfs. При чтении из этой записи, делайте printk() вашего массива
2. Добавить новый ioctl к драйверу, который работает с i2c датчиком.
3. Можно через event-интерфейс, при получении новый измерений, в userspace отправляйте события, правда стандартный события могут не подойти, нужно будет что-то придумать.
4. Можно сокетами воспользоваться. Например, посмотреть как сделать netlink сокеты (через него udev узнает о новых устройствах).
5. Можно добавить свой собственный системный вызов, который будет печатать содержимое массива.

из userspace могу управлять I2C. Есть специальный драйвер. Но мне нужно следующее:
по прерыванию от внешней микросхемы (аппаратное прерывание), забирать набор данных по I2C(или SPI, пока неважно) - всего 8 слов. и так 8000 раз в секунду.
пока знаю как сделать драйвер кнопки(для отработки прерывания), как вызвать в обработчике рперывания функцию считывания - непонятно. Как забрать эти данные через userspace - тоже с трудом представляю.
1. как сделать запись в sysfs?
2. как добавить ioctl?
3. как делаются системные вызовы?

Сообщение отредактировал Zelepuk - Jul 2 2012, 13:49
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 04:24
Рейтинг@Mail.ru


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