Глава 5.5 Как Linux связывает драйверы и устройства: от Device Tree до SysFS
Описание: В этом видео мы разбираем, как Linux организует взаимодействие с оборудованием на примере платформенных драйверов. Вы узнаете, как устройство, описанное в Device Tree, оказывается доступным в /dev/mydev, как ядро находит нужный драйвер, и какие структуры используются на каждом этапе. 🔍 Обсуждаемые уровни: Device Tree (.dts) — Здесь описываются аппаратные узлы (compatible, reg, gpios). — Это первая точка входа для драйвера. Пример: dts hellokeys@0 { compatible = "arrow,hellokeys"; gpios = {&gpio 17 0}, {&gpio 27 0}; status = "okay"; }; Шина (Bus) — Устройство привязывается к определённой шине: platform, i2c, spi. — В нашем случае используется platform. Драйвер (platform_driver) — В драйвере объявлен of_match_table с compatible, который совпадает с DT. — При совпадении вызывается probe() и инициализируется устройство. struct device — Объект устройства, через который драйвер взаимодействует с ядром. — Содержит доступ к DT (dev.of_node), логирование, имя и др. SysFS (/sys/...) — Отображает всё дерево устройств: /sys/bus/platform/devices/hellokeys@0 /sys/class/misc/mydev /proc/device-tree/soc/hellokeys@0 🎯 Видео демонстрирует, как всё это работает на реальном драйвере hellokeys_rpi3_misc_dt, в котором кнопки подключены через DT и становятся доступны из /dev/mydev.
Название:
Глава 5.5 Как Linux связывает драйверы и устройства: от Device Tree до SysFS
Категория:
Разное