🐧 海思驱动·全栈实战
📘 30章 · 从入门到项目
01
海思平台概述
海思芯片家族介绍 (Hi35xx) · 芯片选型 · 开发板 · SDK包结构解析
02
开发环境搭建
Ubuntu虚拟机 · 交叉编译链 · NFS/TFTP · 串口终端配置
03
SDK编译与烧录
SDK获取 · Makefile解析 · 内核/文件系统编译 · 分区烧录
04
GPIO驱动开发
寄存器映射 · 高低电平/中断 · 设备树节点 · sysfs/gpiolib
05
UART驱动开发
UART控制器特性 · 设备注册 · 波特率配置 · DMA/中断对比
06
I2C驱动开发
I2C总线框架 · 设备树从设备 · SMBus · i2c-dev用户态
07
SPI驱动开发
SPI控制器模型 · 设备驱动 · 全双工 · SPI Flash实例
08
PWM驱动开发
PWM工作原理 · 设备树节点 · 占空比/频率 · 背光/电机
09
ADC驱动开发
ADC寄存器 · 单次/连续模式 · 电压采集优化 · 触摸屏
10
定时器驱动开发
硬件定时器 · hrtimer · PWM生成 · 输入捕获
11
看门狗驱动开发
看门狗原理 · 喂狗机制 · 系统复位 · 调试模式
12
DMA驱动开发
DMA通道管理 · mem2mem/外设 · Scatter-Gather · 调优
13
中断子系统
GIC中断控制器 · 中断号映射 · 顶/底半部 (tasklet/workqueue)
14
时钟与复位管理
时钟树 · PLL配置 · 门控时钟 · 复位控制器驱动
15
电源管理
DVFS · Suspend-to-RAM · 唤醒源 · 功耗测量
16
MMU与内存管理
页表映射 · DMA内存(CMA/ION) · Cache一致性 · 压力测试
17
PCIe驱动开发
PCIe初始化 · RC/EP模式 · BAR映射 · MSI中断
18
USB驱动开发
DWC3框架 · 设备枚举 · Gadget · OTG切换
19
SDIO/eMMC驱动
MMC子系统 · SDIO识别 · eMMC分区 · 高速模式
20
以太网驱动开发
GMAC驱动 · PHY管理(MDIO) · RGMII/RMII · 性能优化
21
WIFI/蓝牙驱动
SDIO-WIFI · 蓝牙HCI · 共存策略 · 功耗优化
22
显示与图形驱动
HDMI/LVDS/MIPI DSI · Framebuffer · DRM/KMS · GPU集成
23
视频输入(VI)驱动
MIPI CSI/LVDS · ISP管线 · 视频采集缓冲管理
24
视频编码(VENC)
硬件编码器 · H.264/H.265 · 码率控制策略
25
视频解码(VDEC)
硬件解码器 · 多路解码 · 后处理 (Deinterlace/Scale)
26
音频驱动开发
I2S接口 · ALSA框架 · 音频编解码 · 回声消除/降噪
27
安全引擎驱动
AES/RSA/SHA · 安全启动 · 密钥管理 · TRNG驱动
28
设备树详解
设备树语法 · 绑定文档 · pinctrl/gpio · overlay机制
29
驱动调试与优化
printk · JTAG · perf · 内存泄漏 (KASAN/SLUB)
30
项目实战
智能摄像头驱动 · Sensor驱动 · ISP调优 · 网络推流