История изменений
Исправление SZT, (текущая версия) :
Вроде наоборот должно быть!? Драйвер должен работать с аппаратурой напрямую, а для ядра предоставлять некоторое API.
Это «напрямую» может отличаться. И не всегда оно «напрямую». В каком-нибудь STM32 ARM у тебя вот такими-то функциями можно пользоваться, вот таким-то образом настроить DMA и прочее, записывая какие-то байты в MMIO-регистры, типа вот http://easyelectronics.ru/kontroller-pryamogo-dostupa-k-pamyati-dma-kontrolle...
В каком-нибудь линукс-ядре под это всё будет свое API общее, типа вот тебе такие-то функции-обертки чтобы настраивать DMA, которые могут и на x86, и на ARM, и на каком-нибудь MIPS работать. https://www.kernel.org/doc/html/latest/driver-api/dmaengine/client.html
Исходная версия SZT, :
Вроде наоборот должно быть!? Драйвер должен работать с аппаратурой напрямую, а для ядра предоставлять некоторое API.
Это «напрямую» может отличаться. И не всегда оно «напрямую». В каком-нибудь STM32 ARM у тебя вот такими-то функциями можно пользоваться, вот таким-то образом настроить DMA и прочее, записывая какие-то байты в MMIO-регистры, типа вот http://easyelectronics.ru/kontroller-pryamogo-dostupa-k-pamyati-dma-kontrolle...
В каком-нибудь линукс-ядре под это всё будет свое API общее, типа вот тебе такие-то функции-обертки чтобы настраивать DMA, которые могут и на x86, и на ARM, и на каком-нибудь MIPS работать.