01
UART基础与硬件接口
UART协议原理 · RS232/RS485标准 · TTL电平与串口线序 · 9针串口定义
硬件接口
02
Linux串口子系统框架
TTY子系统架构 · 串口驱动分层 · uart_port/uart_ops
框架TTY
03
设备树与平台设备
UART节点绑定 · reg/interrupts解析 · platform_driver注册
设备树DTS
04
串口驱动初始化
module_init · uart_register_driver · uart_add_one_port
初始化驱动
05
硬件寄存器操作
ioremap映射 · 时钟使能 · GPIO复用 · 波特率寄存器
寄存器硬件
06
中断处理实现
request_irq · 中断服务函数 · 环形缓冲区 · 上半部/下半部
中断ISR
07
数据发送流程
start_tx · FIFO填充 · TX中断 · DMA发送
发送DMA
08
数据接收流程
RX中断 · 字符接收 · 线路规程推送 · CTS/RTS流控
接收流控
09
波特率与时钟管理
时钟源选择 · 分频系数 · 自适应波特率 · 时钟门控
时钟波特率
10
DMA传输模式
dmaengine API · SG列表 · DMA回调 · PIO/DMA切换
DMA高性能
11
电源管理
runtime PM · suspend/resume · 寄存器上下文保存
PM低功耗
12
串口参数配置
termios · c_cflag · 数据位/停止位/校验位
配置termios
13
线路规程 (Line Discipline)
N_TTY · ldisc操作函数 · 自定义线路规程
ldisc规程
14
串口控制台 (Console)
console结构体 · earlycon · printk重定向
控制台printk
15
用户空间接口
open/read/write · ioctl · 非阻塞O_NONBLOCK
系统调用用户态
16
调试手段 (printk)
printk级别 · 动态调试 · trace_printk · 串口日志
调试printk
17
调试手段 (硬件工具)
逻辑分析仪 · 示波器 · 串口环回测试
硬件抓波形
18
调试手段 (软件工具)
stty · minicom/cutecom · loopback测试程序
软件工具
19
常见问题 (数据错乱)
波特率不匹配 · FIFO溢出 · 中断丢失 · 缓存覆盖
故障数据
20
常见问题 (无法收发)
GPIO复用错误 · 时钟未使能 · 设备树地址错误
故障收发
21
常见问题 (性能瓶颈)
中断频繁 · DMA未生效 · CPU占用高 · 缓存太小
性能优化
22
多核与并发
自旋锁 · per-CPU变量 · 中断亲和性 · RT内核
并发多核
23
驱动热插拔
设备移除 · 引用计数 · sysfs · 用户态通知
热插拔动态
24
测试与验证
压力测试 · 吞吐量 · 误码率 · 长时间稳定性
测试验证
25
内核版本适配
4.19/5.10/6.1 API差异 · 设备树绑定变化 · 迁移指南
版本迁移
26
虚拟串口驱动
tty0tty · loopback驱动 · QEMU模拟串口
虚拟模拟
27
蓝牙HCI UART
H4协议 · HCI接口 · UART蓝牙驱动框架
蓝牙HCI
28
RS485驱动
半双工控制 · GPIO方向切换 · 收发延时 · 自动检测
RS485工业
29
工业现场总线
Modbus RTU · Profibus · CAN与UART桥接
工业总线
30
项目实战
完整移植流程 · 调试日志分析 · 性能优化 · 验证报告
实战综合