01
课程导学与开发环境搭建
Buildroot是什么?为什么需要设备树?搭建Ubuntu虚拟机与安装必要工具链。
环境入门
02
设备树基础语法(一)
设备树文件(.dts/.dtsi)结构、节点(node)与属性(property)的定义。
语法dts
03
设备树基础语法(二)
标准属性(reg、interrupts、compatible、status)详解与实战。
属性必学
04
设备树基础语法(三)
中断控制器、GPIO控制器、时钟控制器的设备树绑定。
中断GPIO
05
设备树基础语法(四)
设备树包含(#include)、标签(label)与引用(&)的使用技巧。
引用复用
06
设备树基础语法(五)
设备树覆盖(overlay)的原理与基本写法。
overlay动态
07
Buildroot入门
下载Buildroot源码、配置目标架构(ARM为例)、首次编译体验。
编译ARM
08
Buildroot内核配置
在Buildroot中配置Linux内核选项,启用设备树支持。
内核配置
09
Buildroot设备树配置
在Buildroot中指定设备树源文件路径与编译选项。
路径编译
10
实战:vexpress-a9基础设备树
为QEMU模拟的vexpress-a9板卡编写基础设备树。
QEMUvexpress
11
实战:GPIO-LED节点与驱动
在设备树中添加GPIO-LED节点并驱动验证。
GPIOLED
12
实战:按键中断节点
添加按键中断节点并编写驱动测试。
中断按键
13
实战:I2C总线与LM75传感器
设备树中描述I2C总线与挂载的传感器设备(LM75)。
I2CLM75
14
实战:SPI总线与Flash设备
设备树中描述SPI总线与挂载的Flash设备。
SPIFlash
15
实战:MMC/SD卡控制器
设备树中描述MMC/SD卡控制器与分区信息。
MMCSD
16
实战:LCD显示屏与背光
设备树中描述LCD显示屏与背光控制。
LCD背光
17
实战:以太网控制器+MDIO
设备树中描述以太网控制器(MAC+PHY)与MDIO总线。
以太网MDIO
18
实战:USB控制器与Hub
设备树中描述USB控制器与Hub。
USBHub
19
实战:音频编解码器(I2S)
设备树中描述音频编解码器(I2S接口)。
音频I2S
20
实战:PWM与风扇/电机控制
设备树中描述PWM控制器与风扇/电机控制。
PWM电机
21
实战:ADC与电池电压监测
设备树中描述ADC控制器与电池电压监测。
ADC电池
22
实战:RTC与后备电池
设备树中描述RTC(实时时钟)与后备电池。
RTC时钟
23
实战:DMA控制器与内存映射
设备树中描述DMA控制器与内存映射。
DMA内存
24
实战:系统内存布局与预留内存
设备树中描述系统内存布局与预留内存(reserved-memory)。
内存预留
25
实战:CPU核心与缓存信息
设备树中描述CPU核心与缓存信息(多核ARM)。
CPU多核
26
实战:电源管理单元(PMU)
设备树中描述电源管理单元(PMU)与休眠唤醒。
PMU休眠
27
实战:热管理(thermal-zones)
设备树中描述热管理(thermal-zones)与温控策略。
温控thermal
28
实战:PCIe控制器与Endpoint
设备树中描述PCIe控制器与Endpoint设备。
PCIeEndpoint
29
实战:FPGA桥接与部分重配置
设备树中描述FPGA桥接与动态部分重配置(PR)。
FPGAPR
30
综合实战:自定义ARM板卡完整设备树
从零开始为一块自定义ARM板卡编写完整设备树,并在Buildroot中集成编译与烧录。
综合实战