Назначение ioctl I2C_SLAVE

Я пишу код для реализации простой i2cфункции чтения/записи с использованием общего драйвера linux i2clinux/ i2c-dev.h

Меня смущает ioctl: I2C_SLAVE

В документации ядра указано следующее:

Вы можете выполнять простые транзакции i2c, используя read(2) и написать(2) вызовы. Вам не нужно передавать байт адреса; вместо этого установите его через ioctl I2C_SLAVE, прежде чем пытаться получить доступ к устройству

. Однако я использую ioctl I2C_RDWR, где я снова устанавливаю адрес подчиненного устройства, используя i2c_msg.addr.

В документации ядра также упоминается следующее:

Некоторые вызовы ioctl() предназначены для административных задач и обрабатываются i2c-dev напрямую. Примеры включают I2C_SLAVE

. Так обязательно ли использовать ioctl I2C_SLAVE? Если это так, мне нужно установить его только один раз или каждый раз, когда я выполняю чтение и запись?

Если бы у меня было устройство i2c, я мог бы просто протестировать код на устройстве и не беспокоить вас, ребята, но, к сожалению, сейчас у меня его нет.

Спасибо за помощь.

14
задан Pavan Manjunath 2 April 2012 в 17:25
поделиться