Является ли интерфейс устройства i2c потокобезопасным в Linux?Linux

Ответить
Anonymous
 Является ли интерфейс устройства i2c потокобезопасным в Linux?

Сообщение Anonymous »

У меня есть одноплатный компьютер с устройством расширения I2C GPIO. Он указан как /dev/i2c-0. В моей многопоточной программе я открываю() это символьное устройство и читаю/пишу на него в отдельных потоках, используя функции i2c_smbus_write_byte_data и друзей из библиотеки libi2c, но я не уверен, что это потокобезопасно.
Я видел некоторые реализации драйвера gpio в пространстве ядра, которые привязываются к символьному устройству i2c и позволяют вам взаимодействовать с устройство, как если бы это было устройство gpio (а именно драйвер pca953x), и у них есть внутренние мьютексы внутри каждой функции gpio_set/get.
Я также видел другой поток stackoverflow, в котором люди говорят, что функции i2c_smbus_* имеют внутренние мьютексы, поэтому я действительно не могу быть уверен.
Связано: одновременный доступ I2C в Linux, mutex
Вот код, похожий на то, что я делаю. Я спрашиваю, безопасен ли такой одновременный доступ.
void *thread_fn(void *arg){
int fd = *(int*)arg;
uint16_t d;
for(uint16_t i=0;i

Подробнее здесь: https://stackoverflow.com/questions/797 ... e-on-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»