Driver Development Guide for Raspberry Pi 3
Добро пожаловать в документацию по разработке драйверов Linux для Raspberry Pi 3! Это руководство шаг за шагом проведёт вас от начальной загрузки системы до создания собственных модулей ядра.
Содержание
- Глава1. Введение в Embedded Linux
- Bootloader: Загрузочный процесс Raspberry Pi 3
- Этапы запуска ядра Linux и параметры cmdline.txt
- Обзор системных конфигурационных файлов
- Ядро Linux: Обзор и структура исходного кода
- C Runtime и системные вызовы
- Общие библиотеки Linux
- Файловая система Linux
- Сборка Embedded Linux
- Установка и настройка Raspberry Pi OS
- Настройка аппаратной части Raspberry Pi 3
- Настройка сетевого подключения между RPi и хостом
- Передача файлов между хостом и Raspberry Pi
- Сборка ядра Linux для 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. HelloKeys demo
- 6. 5.5: Документация по взаимодействию с оборудованием
- 7. 5.6: Работа с GPIO и подсистемой pin control
- 8. 5.7. Подсистема pinctrl в Linux Kernel
- 9. 5.8. GPIO Controller Driver
- 10. 5.9. GPIO Descriptor Consumer Interface
- 11. 5.10. GPIOs Mapped to IRQs
- 12. 5.11. GPIOs in the Device Tree
- 13. 5.12. Exchanging Data Between Kernel and User Spaces
- 14. Приложение: Указатели в C и ссылки в Device Tree (символы * и &)
- 15. 5.14. MMIO (Memory-Mapped I/O) Device Access
- 16. 5.15. Управление GPIO с помощью GPIOD API
- 17. 5.16. RGB LED как platform device: управление через MMIO
- 18. 5.17: Что такое MMIO и где оно живёт в SoC
- 19. 5.18: Аппаратная архитектура GPIO Controller в SoC
- 20. 5.19: Работа системной шины AMBA с MMIO
- 21. 5.20: RGB LED через Device Tree и MMIO
- 22. 5.21: Platform Driver Resources
- 23. 5.22: Linux LED Class
- 24. LED Class в Linux
- 25. 5.22: Техническое задание — Драйвер «RGB LED class» для Linux
- 26. 5.25. Подключение RGB LED к LED class через DT
- 27. Глава 5.26: Подключение RGB LED к LED class через DT и кастомный драйвер
- 28. 5.27 Драйверы платформенных устройств в пространстве пользователя
- 29. 5.28 Пользовательский I/O (UIO) в Linux
- 30. Как работает UIO
- 31. Kernel UIO API — ядровой интерфейс
- 32. Техническое задание: UIO-драйвер для управления RGB-светодиодом
- 33. UIO-драйвер RGB-светодиода
- 34. UIO-драйвер RGB-светодиода: исходный код и сборка
- 35. Программа test_rgb_user.c и UIO-драйвер rgb_uio.ko
- 36. RGB UIO LED Control С Program
- 37. Python UIO RGB LED Controller
- 38. Final package video