⚡ 事件驱动·单片机框架
30章
🎯 从轮询到AIoT
01
事件驱动思想启蒙
轮询→中断
LED闪烁案例对比,为什么需要事件驱动?
02
核心概念解析
四大金刚
事件、处理器、队列、循环的定义与关系
03
裸机简易框架
最小原型
手写按键触发LED翻转,事件驱动雏形
04
环形缓冲区
无锁设计
单生产者单消费者模型,代码逐行解析
05
事件类型与优先级
插队机制
枚举定义,高优先级事件紧急处理
06
定时器事件管理
软件定时器
超时转化为事件,驱动时间触发
07
状态机+事件驱动
状态迁移
经典状态模式,事件作为触发器
08
订阅与发布
一对多通知
解耦模块直接依赖,事件广播
09
模块化设计
接口规范
.h文件设计,模块划分原则
10
内存管理策略
静态vs动态
内存池安全传递事件数据
11
中断与事件桥接
ISR发布
快速发布,耗时操作推迟到主循环
12
低功耗设计
无事休眠
事件驱动唤醒,节能策略
13
简易调度器
非抢占式
多任务协作,事件驱动调度
14
调试与日志
Trace工具
事件流打印,断言定位问题
15
实战:多功能按键
单击/双击/长按
组合键框架,事件驱动实战
16
实战:串口命令解析
AT指令集
事件驱动解析器实现
17
实战:传感器采集
周期+突发
混合事件管理,数据采集处理
18
实战:简易GUI事件
触摸屏点击
事件派发与处理循环
19
框架性能评估
吞吐量/抖动
CPU占用率测量方法
20
常见陷阱
事件丢失/死锁
优先级反转预防与解决
21
裸机→RTOS过渡
FreeRTOS适配
消息队列集成事件驱动
22
单元测试
Cmock+Unity
事件处理器测试方法
23
代码生成工具
Python脚本
自动生成事件类型与骨架
24
物联网网关应用
多协议事件
WiFi/BLE/LoRa 事件处理
25
事件驱动+DMA
完成事件
DMA搬运后触发事件
26
安全关键系统
MISRA-C
事件驱动实现注意事项
27
版本演进
v1.0→v3.0
重构思路与经验总结
28
开源框架赏析
QP/C / Protothreads
TinyFSM对比分析
29
设计规范
API/回调/错误码
定义自己的事件驱动框架
30
课程总结与展望
AIoT·边缘计算
事件驱动新趋势