Как функции чтения и записи в драйверах I2C для Linux передаются в linux? Во всех драйверах для устройств на I2C в источнике Linux структура file_operations
не используется, чтобы сообщить ядру о функциях. Как различные функции передаются ядру, поэтому их можно вызывать из пользовательского пространства без использования file_operations
?Функции чтения I2C для чтения в linux
0
A
ответ
-1
Драйвер I2C в linux также поддерживает работу с файлом. Потому что когда вы начинаете открывать i2c из своего приложения;
snprintf(filename, 19, "/dev/i2c-%d", adapter_nr);
file = open(filename, O_RDWR);
Он призовет к файлу i2c-dev.c в ядре Linux
static int i2cdev_open(struct inode *inode, struct file *file);
static const struct file_operations i2cdev_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.read = i2cdev_read,
.write = i2cdev_write,
.unlocked_ioctl = i2cdev_ioctl,
.open = i2cdev_open,
.release = i2cdev_release,
};
Но если вы хотите, чтобы читать и писать из пользовательского пространства без file_operatoin, то вы можете использовать kobject в вашем драйвер для чтения и записи через sysfs.
Для чтения из пользовательского пространства:
static ssize_t module_show_status(struct kobject *kobj,struct kobj_attribute *attr,char *buf);
Для написания из пользовательского пространства
static ssize_t module_store__status(struct kobject *kobj,struct kobj_attribute *attr,const char *buf, size_t count);
Но прежде чем использовать эти API-интерфейсы, необходимые для создания kboject в драйвере.
Смежные вопросы
- 1. Реализация функции чтения Linux
- 2. I2C-dev: изменить параметры записи и чтения
- 3. Использование функции чтения для чтения в файле
- 4. как написать avr I2C функция чтения считывателя
- 5. Проблемы чтения/записи пользовательского пространства I2C
- 6. Есть ли подходящая двухпроводная библиотека чтения/чтения I2C в Contiki OS для платформы Atmega128?
- 7. Linux Bash чтения входных
- 8. Частичного чтения для чтения в режиме неблокируемого
- 9. Linux: доступ i2c устройство в board_init функции
- 10. Какие функции являются интерфейсом записи/чтения для драйвера linux bsg
- 11. Ошибка сегментации в функции чтения
- 12. Таймеры сокетов для чтения/чтения
- 13. Драйвер I2C в Linux
- 14. Linux: Illegal вариант чтения -a
- 15. Linux, мониторинг скорости чтения файлов
- 16. Аппаратная функция записи и чтения для linux
- 17. Ошибка функции простого чтения
- 18. команда linux для чтения USB-порта RFID
- 19. Инструмент Linux для чтения значений стека
- 20. ostream функции чтения/записи
- 21. Linux труба: Плохой дескриптор файла в функции чтения и записи
- 22. Синтаксис указателя функции чтения
- 23. Общие функции для чисел чтения в Haskell
- 24. Переменная только для чтения в функции PHP?
- 25. Spring @Transactional для чтения только для чтения
- 26. Использует YIELD для чтения только для чтения?
- 27. Википедия API для чтения только для чтения?
- 28. linux i2c драйвер для pandaboard
- 29. Чтение/запись с использованием I2C в Linux
- 30. Linux, используя функции Socket и чтения, может ли фрагментировать данные?
Возможный дубликат http://stackoverflow.com/questions/41492850/does-i2c-driver-need-to-be-implemented-just-like-any-other-character-device-driv – 0andriy
Окончательно дубликат, ответ точно такой же. Также ошибочно ошибочно, существует только один клиентский драйвер, использующий file_ops: http://lxr.free-electrons.com/source/drivers/i2c/i2c-dev.c –
Возможный дубликат [Требуется ли реализовать драйвер i2c просто как любой другой драйвер устройства символов?] (http://stackoverflow.com/questions/41492850/does-i2c-driver-need-to-be-implemented-just-like-any-other-character-device-driv) –