2014-12-10 2 views
0

Я работаю над драйвером камеры под Linux. Один из способов передачи данных/фрейма и команды в пространство пользователей из пространства ядра использует функцию copy_to_user, которую мы выполняем, когда вызываем ioctl из пользовательского пространства.Как пространство ядра посылает команду и данные в пространство пользователя?

Когда кадр прибывает в пространство ядра, он получает уведомление через прерывания, и теперь он должен передать кадр в пользовательское пространство для обработки. Пользовательское пространство сделало mmap с пространством ядра, поэтому оно имеет доступ к этому фрейму в пространстве ядра, поэтому оно берет его и обрабатывает. Потребовалось ли пространство пользователя узнать о прибытии фрейма с использованием функции опроса? Пожалуйста, проверьте мои концепции и исправьте меня, если я ошибаюсь.

ответ

1

Ядро должно создать устройство. Пользовательское пространство открывает его и блокирует чтение до тех пор, пока данные не будут доступны, а затем обработает его. Так работают большинство драйверов устройств.

+0

где будет использоваться mmap в этом сценарии? – JIN007

+0

Ваша прочитанная информация может быть просто «Новая рамка reeady», и данные уже находятся в буфере mmap. – stark

+0

, но сначала начните работать с обычным чтением. – stark

Смежные вопросы