Smart Wear · 2026

智能穿戴手表

本项目采用 HAL 驱动层 → BSP 板级封装 → FreeRTOS 任务层 → LVGL 应用层,四层解耦架构:按职责拆分为喂狗、初始化、按键、传感器采集、UI、低功耗共 7 个独立任务,任务间通过 8 条消息队列以生产者-消费者模式通信,彻底替代全局变量实现线程安全。

传感器采集与 UI 渲染完全解耦,UI 通过"丢旧保新"数据队列拿到最新快照,按键/唤醒事件经事件队列单向流入,反向控制流(如心率 LED 开关)走独立命令队列,保证 LVGL 单任务独占访问;低功耗以「亮屏→STOP→关机」的功耗模型为主线,RTC 周期唤醒 + EXTI + 触摸三源唤醒,并与外部看门狗联动休眠禁狗、唤醒恢复;升级架构采用 32KB BootLoader + 480KB APP 双分区设计,Boot 侧以 Ymodem 协议经 BLE 模组 SPP 透传接收固件、写 "APP FLAG" 魔数校验后重定向 VTOR 可靠跳转,实现免拆机无线 OTA。

OV-Watch 低功耗状态图 · Active / 息屏 / STOP 睡眠 / 关机
03 · Power State

低功耗状态图

Active / 息屏 / STOP 睡眠 / 关机 · 三态电源管理与唤醒恢复流程

OV-Watch 事件驱动机制图 · user_Queue.c 统一管理的消息队列系统
04 · Event Bus

事件驱动机制

user_Queue.c · 生产者 / 队列数组 / 消费者 · 非阻塞分发策略

OV-Watch FreeRTOS 任务调度与资源分配图 · user_TasksInit.c CMSIS-RTOS V2 属性表
05 · FreeRTOS Tasks

任务调度与资源分配

7 任务 / 8 队列 · CMSIS-RTOS V2 属性表 · tick=1ms 抢占式调度

OV-Watch LVGL 渲染链路与屏幕导航图 · lv_port_disp.c / lv_port_indev.c / ui_helpers.c 双缓冲 + DMA
06 · LVGL & Nav

渲染链路与屏幕导航

双缓冲 (2×40 行) + SPI1 DMA 异步刷屏 · 导航栈 NAV_STACK_MAX=8 · 13 屏