智能手表 MCU 任务调度图
智能手表 MCU 任务调度图
处理器平台:ARM Cortex-M33
 系统架构:事件驱动 + 多任务 RTOS
 RTOS:FreeRTOS(或同类实时内核)

一、任务调度概览
| 任务名称 | 优先级 | 周期性 | 功能描述 | 
|---|---|---|---|
| App_MainTask | 中 | 否 | 主循环调度器,系统状态管理 | 
| BLE_StackTask | 高 | 是 | BLE 协议栈运行,处理连接、事件、传输等 | 
| BLE_CommTask | 中 | 是 | GATT 命令解析与通信交互处理 | 
| Sensor_PollTask | 中 | 是 | 心率、加速度、温度等传感器采集 | 
| UI_DisplayTask | 低 | 是 | OLED/LCD 显示更新、界面刷新 | 
| Touch_EventTask | 中 | 否 | 电容触摸/按键事件采集与响应 | 
| RTC_TimeTask | 低 | 是 | RTC 时间滴答 + 闹钟处理 | 
| OTA_UpgradeTask | 高 | 否 | OTA 升级写入与状态反馈 | 
| PowerMgr_Task | 高 | 是 | 电池、电压检测、低功耗控制 | 
| Log_UploadTask | 低 | 否 | 日志存储与上传(如 crash dump) | 
二、任务调度流程图
三、典型调度任务说明
🧠 1. App_MainTask(系统主任务)
 
-  优先级:中等 
-  类型:常驻任务 
-  功能: - 管理设备状态机(开机、待机、运动中、睡眠、OTA中等状态)
- 分发来自 BLE、传感器、按键等模块的事件
- 协调各任务之间的交互,作为逻辑调度中心
- 调用 UI 状态切换、数据同步等操作
 
📡 2. BLE_StackTask(BLE 协议栈任务)
 
-  优先级:高 
-  类型:事件驱动 
-  功能: - 运行 BLE 协议栈(连接管理、广播、GATT服务)
- 处理连接事件(连接、断开、配对)
- 管理 MTU 协议、ATT 请求响应
- 与 BLE_CommTask协作实现数据通讯
 
🔄 3. BLE_CommTask(蓝牙通信任务)
 
-  优先级:中等 
-  类型:事件驱动 
-  功能: - 解析 GATT Write/Notify 数据协议(如 CMD_ID 命令)
- 响应 App 请求:时间同步、通知推送、OTA控制等
- 处理数据打包/解包、JSON 解析
- 接收并转发传感器数据至 App
 
❤️ 4. Sensor_PollTask(传感器轮询任务)
 
-  优先级:中等 
-  周期性任务:50ms ~ 1s 
-  功能: - 周期性采集加速度计、心率传感器、温度、压力等数据
- 采用中断优先触发模式,轮询作为备份
- 支持动态功耗控制(如仅在运动模式中采集心率)
- 数据缓存 + 时间戳存储,待同步上传
 
🖼️ 5. UI_DisplayTask(显示刷新任务)
 
-  优先级:低 
-  周期性:100ms ~ 500ms 
-  功能: - 驱动 OLED/LCD/Memory LCD 等显示模块
- 刷新时间、状态、图标、电量等信息
- 动画显示与亮度调节(配合环境光传感器)
- 控制节能显示模式(Always On Display、息屏等)
 
🧲 6. Touch_EventTask(触控/按键任务)
 
-  优先级:中等 
-  触发方式:中断 + 事件队列 
-  功能: - 响应用户触摸、滑动、按键事件
- 区分短按、长按、滑动方向等手势
- 上报事件至 App_MainTask做进一步处理
- 配合 UI 控制导航、确认、返回等操作
 
⏰ 7. RTC_TimeTask(时间管理任务)
 
-  优先级:低 
-  周期性:1s Tick 
-  功能: - 使用 RTC 模块维护系统时间
- 控制闹钟、倒计时、定时器
- 触发整点事件或定期振动提醒
- 同步 BLE 时间(以 App 时间戳为准)
 
⬆️ 8. OTA_UpgradeTask(在线升级任务)
 
-  优先级:高(OTA 时专用) 
-  触发方式:BLE 命令触发 
-  功能: - 处理 BLE OTA 服务,接收固件片段
- 校验、存储、升级进度回传
- 升级完成后重启 Bootloader 刷写新固件
- 确保整个过程具备断点续传、写入校验机制
 
🔋 9. PowerMgr_Task(电源管理任务)
 
-  优先级:高 
-  周期性:5s ~ 10s 
-  功能: - 检测电池电压、电流、温度
- 上报电量百分比至 UI 和 BLE
- 控制系统进入 EM1 / EM2 / EM3 模式(低功耗)
- 响应充电状态、低电报警、自动息屏等控制逻辑
 
📁 10. Log_UploadTask(日志任务)
 
-  优先级:低 
-  触发方式:定时 + BLE命令 
-  功能: - 记录调试日志、异常事件(心率丢失、触摸失败等)
- 存储至 Flash 环形缓冲区
- 支持通过 BLE 拉取日志(便于售后与调试)
 
四、低功耗管理建议
- 所有周期性任务需结合 tickless sleep 模式设计(例如设置 xTimer 或软定时器)
- MCU在任务空闲时自动进入 EM2/EM3 模式,BLE 唤醒中断支持 EM2 唤醒
- Sensor 采用中断触发为主,避免定时轮询过于频繁
五、任务文件结构
/app/main_task.c/hble_comm.c/hsensor_task.c/hui_display.c/hota_task.c/hpower_mgr.c/hrtc_time.c/h

