📘 协议栈移植指南
30章 · 从入门到实战
🎯 智能音箱 · WiFi / BLE
01
课程导论与硬件平台概览
🏗️
智能音箱硬件架构拆解
⚖️
主流WiFi/BLE芯片选型对比
📋
移植前准备工作清单
02
开发环境搭建与工具链配置
🖥️
Linux/Windows双平台搭建
🔧
交叉编译工具链安装与验证
📦
SDK获取与版本管理 (Git)
03
RTOS基础与任务调度
🧠
FreeRTOS移植与配置
⏱️
任务创建与优先级管理
⚠️
任务栈溢出问题实战
04
WiFi协议栈基础
📡
802.11 b/g/n 核心要点
🔄
Station与AP模式区别
🔍
WiFi扫描与连接流程
05
BLE协议栈基础
📶
BLE 4.2/5.0 核心特性对比
🔗
GATT与GAP角色解析
📻
广播与扫描参数配置
06
SDK架构解析
🧩
乐鑫ESP-IDF框架剖析
📐
Realtek Ameba SDK结构
🔌
驱动层与协议栈层接口设计
07
硬件抽象层 (HAL) 移植
⚡
GPIO/UART/SPI/I2C驱动适配
⏰
时钟树配置与功耗管理
🔢
中断控制器配置
08
WiFi MAC层移植
⚙️
MAC层寄存器配置
📤
TX/RX描述符管理
🚀
DMA传输配置与调试
09
WiFi PHY层校准
📡
RF参数校准流程
📊
信道功率与灵敏度调优
⚠️
频谱模板合规坑
10
WiFi Station模式移植
🌐
连接路由器流程
📟
DHCP获取IP地址
🔁
断线重连机制实现
11
WiFi SoftAP模式移植
📶
热点创建与参数配置
👥
客户端管理
🌍
NAT与路由功能实现
12
WiFi安全协议移植
🔐
WPA2-Personal与企业级认证
🛡️
WPA3-SAE移植要点
⚡
加密引擎硬件加速配置
13
BLE Controller层移植
📡
HCI接口实现
⚙️
LL层状态机解析
🔀
连接事件调度与跳频算法
14
BLE Host层移植
📋
GAP层服务注册
🔄
GATT Server/Client实现
📦
ATT协议数据包处理
15
BLE配对与绑定
🔑
Just Works / Passkey Entry / OOB
💾
密钥存储与分发
🔒
LE Secure Connections
16
WiFi与BLE共存机制
⏱️
时分复用 (TDM) 策略
⚙️
硬件包仲裁 (PTA) 配置
⚠️
共存干扰问题实战
17
TCP/IP协议栈移植
🌐
LwIP移植与配置
🔌
Socket API适配
📡
DNS与HTTP客户端实现
18
MQTT协议集成
📨
MQTT客户端移植
📊
QoS等级选择
🔒
TLS加密传输配置
19
蓝牙Mesh协议栈移植
🔷
Mesh节点角色配置
📋
Provisioning流程
🧩
Model注册与消息处理
20
音频流传输协议
🎵
A2DP Source/Sink实现
🎛️
AVRCP控制协议
🎧
音频编解码器 (SBC/AAC)
21
低功耗模式实现
💤
WiFi省电模式 (PS-Poll/U-APSD)
🌙
BLE休眠与唤醒
⚡
系统级功耗优化策略
22
OTA升级机制
📲
WiFi OTA流程设计
📥
BLE DFU (设备固件更新)
🔄
差分升级与回滚机制
23
网络配置服务 (SmartConfig)
📡
乐鑫ESP-TOUCH协议
📶
AP配网模式
🔷
BLE辅助配网实现
24
日志与调试系统
📝
日志等级管理
🔍
SEGGER RTT与串口日志
📡
抓包工具 (Wireshark/Ellisys)
25
性能测试与调优
📊
WiFi吞吐量测试 (iperf)
⏱️
BLE连接延迟测试
💾
内存与CPU占用分析
26
认证与合规测试
✅
WiFi Alliance认证流程
📜
BLE SIG认证要点
📡
FCC/CE射频认证注意事项
27
多平台移植实战 (ESP32→RTL8720)
🔁
外设驱动差异分析
🔌
协议栈API适配
📖
一次完整移植经历
28
常见问题与调试技巧
❌
WiFi连接失败排查
📉
BLE断连问题分析
🧠
内存泄漏定位方法
29
项目实战:智能音箱语音助手集成
🎤
唤醒词引擎对接
☁️
云端语音识别 (ASR) 通道
📢
本地命令词执行
30
课程总结与进阶方向
📚
协议栈移植知识体系回顾
🔮
RISC-V平台移植展望
🌍
开源社区资源推荐