2

Я просматриваю код драйвера fpga, который напишет некоторое значение для устройства FPGA на низком уровне. На верхнем уровне в пользовательском пространстве значение записывается в/dev/fpga, теперь я предполагаю, что это логика того, как драйвер получает свое значение из пользовательского пространства, а открытый файл в пользовательском пространстве - «/ dev/fpga». Но теперь, как на самом деле это значение от fpga доходит до устройства, необходимо поддерживать обратный вызов.Обратный звонок из пространства пользователя в пространство ядра

Но я действительно не мог понять, как это происходит на самом деле, есть ли стандартный способ?

Любой может помочь мне узнать это пространство для использования в пространстве ядра.

+0

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

+0

Несколько дней назад я задал один и тот же вопрос: как отвечать на вызовы для sysfs, http: //stackoverflow.com/questions/18405700/how-callback-is-maintained-from-userspace-to-kernel-space –

ответ

2

Возможно, это устройство символов. Вы можете создать в вашем модуле ядра, и ваши функции обратного вызова будут вызываться в ядре, когда он открыт, то, что написано на ней и т.д. См:

http://linux.die.net/lkmpg/x569.html

для объяснения, как он работает и образца код.

+0

Thanks ld для вашего ответа, только сомнение у меня есть в пользовательском пространстве, когда мы называем write (x, y, z) тремя аргументами, как на низкоуровневом коде драйвера fpga он вызывается с четырьмя аргументами fpga_rf_write (x, y, z, n) ?? –

+1

@AmitSinghTomar, fpga_rf_write() может быть вызван из write() этого драйвера char. проверьте 'file_operations struct', который будет зарегистрирован, вероятно, в init_module. – Jeyaram

+0

Этот вопрос я понял, но как системный вызов связан с кодом драйвера. Когда мы вызываем запись в пользовательском пространстве, shoud переходит к sys_write в пространстве ядра с таким же количеством аргументов, а затем оттуда, как он ссылается на код драйвера с еще одним дополнительным аргументом ?? –

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