I2C_SLAVE ioctl предназначение
Я пишу код для реализации простогоi2c
функция чтения / записи с использованием общего Linuxi2c
Водительlinux/i2c-dev.h
Я смущенioctl
: I2C_SLAVE
Документация ядра гласит следующее:
Вы можете выполнять простые транзакции i2c, используя вызовы read (2) и write (2). Вам не нужно передавать адрес байта; вместо этого установите его через ioctl I2C_SLAVE, прежде чем пытаться получить доступ к устройству
Однако я используюioctl I2C_RDWR
где я снова установить адрес ведомого с помощьюi2c_msg.addr
.
В документации ядра также упоминается следующее:
Некоторые вызовы ioctl () предназначены для административных задач и обрабатываются непосредственно i2c-dev. Примеры включают I2C_SLAVE
Так что это должно использоватьioctl I2C_SLAVE
? Если да, нужно ли устанавливать его только один раз или каждый раз, когда я выполняю чтение и запись?
Если бы у меня былi2c
Устройство Я мог бы просто протестировать код на устройстве и не беспокоить вас, ребята, но, к сожалению, у меня его сейчас нет.
Спасибо за помощь.