Настройка прямого доступа к памяти в модуле ядра Linux

для моего приложения я бы отправил некоторые данные, выделенные в ОЗУ, в PWM fifo через DMA в пространстве ядра. Я бы использовал DMA для генерации прерывания, когда вектор данных завершен, чтобы загрузить следующий вектор и вызвать другое поведение...

Я прочитал 3-е издание «Драйверы устройств Linux» от O'Reilly, но я немного запутался в использовании DMA Engine.

Я хотел бы спросить, какой шаг я должен выполнить, чтобы запустить транзакцию DMA Memory-to-Device (PWM) с обратным вызовом Interrupt?

РЕДАКТИРОВАТЬ 1:

Мне нужно научиться использовать Linux DMA API для моего случая (память -> pwm fifo) в пространстве ядра.


person fdellorso    schedule 29.06.2019    source источник
comment
У вас должен быть драйвер механизма DMA (в разделе drivers/dma и соответствующая поддержка в драйвере PWM в разделе drivers/pwm).   -  person 0andriy    schedule 29.06.2019
comment
@ 0andriy Драйверы DMA и PWM для BCM2835 находятся в папке с драйверами. Мне нужно научиться использовать DMA API для своего приложения. Читая главу из книги LInux Device Drivers, я замечаю, что это не так очевидно. Я прошу более простое руководство, которому нужно следовать...   -  person fdellorso    schedule 30.06.2019
comment
Я не понял, вы не про ядро ​​спрашиваете? В пользовательском пространстве обычно никого не волнует, как именно передаются данные, все зависит от драйверов и конфигурации платформы.   -  person 0andriy    schedule 01.07.2019
comment
@wallyk, в любом случае это не дубликат.   -  person 0andriy    schedule 01.07.2019
comment
Эй, @fdellorso, я работаю над похожим проектом, ты понял, как передавать данные из памяти в pwm fifo? Большое Вам спасибо!! :D   -  person dzuda11    schedule 29.12.2019