药盒嵌入式 · 从零搭建
📘 30 章完整体系
v1.0
01
项目启动与需求分析
功能/非功能需求 · MCU/传感器/通信选型
02
系统架构设计
分层架构 · 模块划分 · 数据流图
03
开发环境搭建
Keil/IAR/CubeIDE · 交叉编译 · 调试器配置
04
版本控制与项目管理
Git Flow · .gitignore · README规范
05
硬件抽象层(HAL)设计
GPIO/UART/I2C/SPI 封装原则与接口
06
MCU启动代码与时钟配置
启动文件 · PLL/时钟树 · 滴答定时器
07
任务调度框架选型
裸机前后台 vs FreeRTOS · 优先级·临界区
08
FreeRTOS移植与配置
FreeRTOSConfig.h · 堆栈 · 任务创建
09
消息队列与信号量设计
事件驱动 · 按键队列 · 服药提醒信号量
10
软件定时器应用
服药提醒 · 超时检测 · 看门狗集成
11
按键驱动模块设计
去抖算法 · 长按/短按/双击状态机
12
显示驱动模块(LCD/OLED)
SPI/I2C驱动 · 字库 · 菜单状态机
13
传感器驱动模块
加速度(跌倒) · 温湿度(药品环境)
14
存储模块设计
EEPROM/Flash · 参数结构体 · CRC掉电保护
15
实时时钟(RTC)模块
外部RTC芯片 · 时间同步 · 闹钟触发
16
通信模块 - UART协议
自定义协议 · 帧头校验 · AT指令解析
17
通信模块 - BLE/Wi-Fi
蓝牙配网 · MQTT移植 · JSON上报
18
电源管理模块
低功耗模式 · 电池检测(ADC) · 充电管理
19
安全与加密模块
AES加密 · Secure Boot · 防篡改
20
日志与调试系统
SEGGER RTT/串口 · 日志等级 · 环形缓冲区
21
单元测试框架
Unity/CMock · 模拟依赖 · 测试用例
22
持续集成(CI)搭建
GitHub Actions/Jenkins · 自动化编译 · Cppcheck
23
固件升级(OTA)设计
Bootloader分区 · 签名验证 · 断点续传
24
状态机与业务逻辑
服药状态机 · 异常处理(低电量/传感器故障)
25
用户交互流程设计
配网 · 时间设置 · 服药记录 · 报警解除
26
系统集成测试
HIL测试 · 边界条件 · 压力测试
27
文档与注释规范
Doxygen · API文档 · SRS/SDD模板
28
代码审查与重构
MISRA-C · 圈复杂度 · 模块解耦
29
生产与烧录
量产烧录 · 序列号管理 · 校准数据
30
项目总结与复盘
ADR · 经验教训 · AI辅助/远程医疗方向