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

 
 
> ioctl, писать через него I2C данные
Метценгерштейн
сообщение Feb 15 2016, 10:15
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



как правильно делать отправку данных через ф-ю ioctl на i2c?
i2c-0
сама шина.
И может ли данная ф-я что-то писать в шину, если на шине есть звуковая карта на этом месте? Просто программа, которая запускается и пишет туда через ioctl, возвращает ошибку, т.к. шина занята.
А если изначально все модули звуковух убрать, то шина i2c свободна и можно через программу по ioctl писать что-то.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alx2
сообщение Feb 16 2016, 04:51
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Метценгерштейн @ Feb 15 2016, 16:15) *
как правильно делать отправку данных через ф-ю ioctl на i2c?

Documentation/i2c/dev-interface

Цитата(Метценгерштейн @ Feb 15 2016, 16:15) *
i2c-0
сама шина.
И может ли данная ф-я что-то писать в шину, если на шине есть звуковая карта на этом месте? Просто программа, которая запускается и пишет туда через ioctl, возвращает ошибку, т.к. шина занята.

Мультимастер?
Не имеет значения, какие устройства физически есть на шине. Имеет значение, занята шина какой-то операцией в данный конкретный момент или нет.
Шину i2c в любой момент времени может использовать только один мастер. Естественно, что если шина уже занята каким-то мастером, то другой мастер в это время работать с шиной не может. Он должен ждать освобождения шины.


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
des333
сообщение Feb 16 2016, 06:32
Сообщение #3


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

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



Цитата(alx2 @ Feb 16 2016, 07:51) *
Мультимастер?
Не имеет значения, какие устройства физически есть на шине.


Имеет значение то, какие драйвера сейчас загружены.
Есть ли среди них использующие эту I2C шину.


--------------------
Go to the top of the page
 
+Quote Post
alx2
сообщение Feb 17 2016, 05:44
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(des333 @ Feb 16 2016, 12:32) *
Имеет значение то, какие драйвера сейчас загружены.
Есть ли среди них использующие эту I2C шину.

Что-то я не понял Вашу мысль...
Если не загружено ни одного драйвера, использующего нашу шину, каким образом пользовательская программа сможет обратиться к устройству на этой шине???

Вот, например, у меня в устройстве в ядре присутствует один из драйверов из drivers/i2c/busses/. Пользовательские программы с его помощью (используя ioctl) обращаются к устройствам на шине. Если на момент обращения шина свободна, выполняется запрошенная операция. Если же на момент обращения шина занята (на шине присутствует другой мастер, который в данный момент выполняет операцию), наше устройство будет ждать освобождения шины, после чего начнет выполнять запрошенную операцию. Если другой мастер в этот момент захочет выполнить новую операцию, он будет ждать, когда завершится наша. Таким образом, несколько мастер-устройств вполне могут совместно использовать одну и ту же шину. И только в случае, если один из мастеров занял шину и не освобождает длительное время (например читает одной операцией большой объем данных или вообще завис), другой мастер получить доступ к шине не сможет. В этом случае ioctl вернет ошибку (timeout). Вот как-то так... Кстати, удерживать шину в занятом состоянии может и slave-устройство...

Цитата(Метценгерштейн @ Feb 16 2016, 14:30) *
Вопрос в том, что если шина i2cdetect -y 0
UU на ней, то ioctl запись ругается- пишет, но читает опять старые значения

Не понял... ioctl при попытке записи возвращает -1? Что при этом в errno?


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post



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

 


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


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