Driver Development Guide for Raspberry Pi 3¶
Добро пожаловать в документацию по разработке драйверов Linux для Raspberry Pi 3! Это руководство шаг за шагом проведёт вас от начальной загрузки системы до создания собственных модулей ядра.
Содержание
- Глава1. Введение в Embedded Linux
- Этапы загрузки SoC BCM2837 (Raspberry Pi 3)
- Файлы конфигурации загрузки Raspberry Pi
- U-Boot на Raspberry Pi: Когда и зачем
- Этапы запуска ядра Linux
- Файл cmdline.txt параметры запуска ядра Linux
- Обзор системных конфигурационных файлов
- Ядро Linux: Обзор и структура исходного кода
- GLIBC: стандартная библиотека языка C
- GLIBC: стандартная библиотека языка C
- Введение в общие библиотеки (shared libs)
- Размещение и подключение общих библиотек
- Иерархия файловой системы (FHS)
- Первый процесс в Linux: init
- Инструменты для сборки Embedded Linux
- Методы сборки Embedded Linux
- Установка Raspberry Pi OS
- Включение интерфейсов: I2C, SPI, UART
- Настройка аппаратной части Raspberry Pi 3
- Настройка сетевого подключения между RPi и хостом
- Копирование файлов через SSH (scp, sftp, rsync)
- Монтирование SD-карты напрямую на хосте
- Получение исходников и базовая конфигурация
- Сборка ядра, модулей и dtb
- Установка ядра и модулей на Raspberry Pi
- Глава 2. Модель устройств и драйверов в Linux
- Глава 3: Простейшие драйверы
- Глава 4: Символьные драйверы
- Глава 5: Platform Drivers
- 1. 5.1 Введение в Platform Drivers
- 2. 5.2: Создание своего platform_device (hellokeys_rpi3)
- 3. 5.3: Platform Driver + miscdevice + GPIO из Device Tree
- 4. Работа с Device Tree (DTB и DTS)
- 5. 5.5: Документация по взаимодействию с оборудованием
- 6. 5.6: Работа с GPIO и подсистемой pin control
- 7. 5.7. Подсистема pinctrl в Linux Kernel
- 8. 5.8. GPIO Controller Driver
- 9. 5.9. GPIO Descriptor Consumer Interface
- 10. 5.10. GPIOs Mapped to IRQs
- 11. 5.11. GPIOs in the Device Tree
- 12. 5.12. Exchanging Data Between Kernel and User Spaces
- 13. Приложение: Указатели в C и ссылки в Device Tree (символы * и &)
- 14. 5.14. MMIO (Memory-Mapped I/O) Device Access
- 15. 5.15. Управление GPIO с помощью GPIOD API
- 16. 5.16. RGB LED как platform device: управление через MMIO
- 17. 5.17: Что такое MMIO и где оно живёт в SoC
- 18. 5.18: Аппаратная архитектура GPIO Controller в SoC
- 19. 5.19: Работа системной шины AMBA с MMIO
- 20. 5.20: RGB LED через Device Tree и MMIO
- 21. 5.21: Platform Driver Resources
- 22. 5.22: Linux LED Class
- 23. LED Class в Linux
- 24. 5.22: Техническое задание — Драйвер «RGB LED class» для Linux
- 25. 5.25. Подключение RGB LED к LED class через DT
- 26. Глава 5.26: Подключение RGB LED к LED class через DT и кастомный драйвер
- 27. 5.27 Драйверы платформенных устройств в пространстве пользователя
- 28. 5.28 Пользовательский I/O (UIO) в Linux
- 29. Как работает UIO
- 30. Kernel UIO API — ядровой интерфейс
- 31. Техническое задание: UIO-драйвер для управления RGB-светодиодом
- 32. UIO-драйвер RGB-светодиода
- 33. UIO-драйвер RGB-светодиода: исходный код и сборка
- 34. Программа test_rgb_user.c и UIO-драйвер rgb_uio.ko
- 35. RGB UIO LED Control С Program
- 36. Python UIO RGB LED Controller