智能手表 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
相关文章:

智能手表 MCU 任务调度图
智能手表 MCU 任务调度图 处理器平台:ARM Cortex-M33 系统架构:事件驱动 多任务 RTOS RTOS:FreeRTOS(或同类实时内核) 一、任务调度概览 任务名称优先级周期性功能描述App_MainTask中否主循环调度器,系统…...
青少年编程与数学 02-019 Rust 编程基础 03课题、变量与可变性
青少年编程与数学 02-019 Rust 编程基础 03课题、变量与可变性 一、使用多个文件(模块)1. 创建包结构2. 在 main.rs 中引入模块示例:main.rs 3. 定义模块文件示例:module1.rs示例:module2.rs 4. 定义子模块示例&#x…...

S7-1500——零基础入门2、PLC的硬件架构
PLC的硬件架构 一,西门子PLC概述二,CPU介绍三,数字量模块介绍四,模拟量模块介绍五,其他模块介绍一,西门子PLC概述 本节主要内容 西门子PLC硬件架构,主要内容包括PLC概述、组成、功能及S7-1500 demo的组成与安装演示。 介绍了PLC的定义、功能、应用场合,以及与继电器控…...
前端面试宝典---webpack面试题
webpack 的 tree shaking 的原理 Webpack 的 Tree Shaking 过程主要包含以下步骤: 模块依赖分析:Webpack 首先构建一个完整的模块依赖图,确定每个模块之间的依赖关系。导出值分析:通过分析模块之间的 import 和 exportÿ…...

【PmHub后端篇】Skywalking:性能监控与分布式追踪的利器
在微服务架构日益普及的当下,对系统的性能监控和分布式追踪显得尤为重要。本文将详细介绍在 PmHub 项目中,如何使用 Skywalking 实现对系统的性能监控和分布式追踪,以及在这过程中的一些关键技术点和实践经验。 1 分布式链路追踪概述 在微服…...
Grafana v12.0 引入了多项新功能和改进
Grafana v12.0 引入了多项新功能和改进,旨在提升可观测性、仪表板管理和用户体验。以下是主要更新内容的总结: 🚀 主要新功能与改进 1. Git 同步仪表板(Git Sync) Grafana v12.0 支持将仪表板直接同步到 GitHub 仓库…...

利用“Flower”实现联邦机器学习的实战指南
一个很尴尬的现状就是我们用于训练 AI 模型的数据快要用完了。所以我们在大量的使用合成数据! 据估计,目前公开可用的高质量训练标记大约有 40 万亿到 90 万亿个,其中流行的 FineWeb 数据集包含 15 万亿个标记,仅限于英语。 作为…...
MongoDB使用x.509证书认证
文章目录 自定义证书生成CA证书生成服务器之间的证书生成集群证书生成用户证书 MongoDB配置java使用x.509证书连接MongoDBMongoShell使用证书连接 8.0版本的mongodb开启复制集,配置证书认证 自定义证书 生成CA证书 生成ca私钥: openssl genrsa -out ca…...
创始人 IP 的破局之道:从技术突围到生态重构的时代启示|创客匠人评述
在 2025 年的商业版图上,创始人 IP 正以前所未有的深度介入产业变革。当奥雅股份联合创始人李方悦在 “中国上市公司品牌价值榜” 发布会上,将 IP 赋能与城市更新大模型结合时,当马斯克在特斯拉财报电话会议上宣称 “未来属于自动驾驶和人形机…...
Gin 框架入门
Gin 框架入门 一、响应数据 JSON 响应 在 Web 开发中,JSON 是一种常用的数据交换格式。Gin 提供了简便的方法来响应 JSON 数据。 package mainimport ("github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/json", func(c *…...

【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡
🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、幂等性保障 什么是幂等性? 幂等性是指对一个系统进行重复调用(相同参数),无论同一操作执行多少次,这些请求…...

软件设计师-错题笔记-系统开发与运行
1. 解析: A:模块是结构图的基本成分之一,用矩形表示 B:调用表示模块之间的调用关系,通过箭头等符号在结构图中体现 C:数据用于表示模块之间的传递的信息,在结构图中会涉及数据的流向等表示 …...
硬件设备基础
一、ARM9 内核中有多少个通用寄存器?其中 sp、lr、pc、cpsr、spsr 的作用是什么? 在 ARM9 内核中,寄存器组织包含 37 个 通用寄存器,其中,有 13 个通用目的寄存器(R0 - R12)。 S3C2440 是 ARM 架…...
[编程基础] PHP · 学习手册
🔥 《PHP 工程师修炼之路:从零构建系统化知识体系》 🔥 🛠️ 专栏简介: 这是一个以工业级开发标准打造的 PHP 全栈技术专栏,涵盖语法精粹、异步编程、Zend引擎原理、框架源码、高并发架构等全维度知识体系…...

C#简易Modbus从站仿真器
C#使用NModbus库,编写从站仿真器,支持Modbus TCP访问,支持多个从站地址和动态启用/停用从站(模拟离线),支持数据变化,可以很方便实现,最终效果如图所示。 项目采用.net framework 4.…...
Error parsing column 10 (YingShou=-99.5 - Double) dapper sqlite
在使用sqlite 调取 dapper的时候出现这个问题提示: 原因是 在 sqlite表中设定的字段类型是 decimel而在C#的字段属性也是decimel,结果解析F负数 小数的时候出现这个错误提示: 解决办法:使用默认的sqlite的字段类型来填入 REAL描述…...
Spring AI系列——使用大模型对文本进行内容总结归纳分析
一、技术原理与架构设计 1. 技术原理 本项目基于 Spring AI Alibaba 框架,结合 DashScope 大模型服务 实现文本内容的自动摘要和结构化输出。核心原理如下: 文档解析: 使用 TikaDocumentReader 解析上传的文件(如 PDF、Word 等&…...
【深度学习】目标检测算法大全
目录 一、R-CNN 1、R-CNN概述 2、R-CNN 模型总体流程 3、核心模块详解 (1)候选框生成(Selective Search) (2)深度特征提取与微调 2.1 特征提取 2.2 网络微调(Fine-tuning) …...
5.1.1 WPF中Command使用介绍
WPF 的命令系统是一种强大的输入处理机制,它比传统的事件处理更加灵活和可重用,特别适合 MVVM (Model, View, ViewModel)模式开发。 一、命令系统核心概念 1.命令系统基本元素: 命令(Command): 即ICommand类,使用最多的是RoutedCommand,也可以自己继承ICommand使用自定…...
excel大表导入数据库
前文介绍了数据量较小的excel表导入数据库的方法,在数据量较大的情况下就不太适合了,一个是因为mysql命令的执行串长度有限制,二是node-xlsx这个模块加载excel文件是整个文件全部加载到内存,在excel文件较大和可用内存受限的场景就…...
《让歌声跨越山海:Flutter借助Agora SDK实现高质量连麦合唱》
对于Flutter开发者而言,借助Agora SDK实现这一功能,不仅能为用户带来前所未有的社交体验,更是在激烈的市场竞争中脱颖而出的关键。 Agora SDK作为实时通信领域的佼佼者,拥有一系列令人瞩目的特性,使其成为实现高质量连…...
A* (AStar) 寻路
//调用工具类获取路线 let route AStarSearch.getRoute(start_point, end_point, this.mapFloor.map_point); map_point 是所有可走点的集合 import { _decorator, Component, Node, Prefab, instantiate, v3, Vec2 } from cc; import { oops } from "../../../../../e…...
单词短语0512
当然可以,下面是“opportunity”在考研英语中的常用意思和高频短语,采用大字体展示,便于记忆: ✅ opportunity 的考研常用意思: 👉 机会,良机 表示有利的时机或条件,尤指成功的可能…...

视觉-语言-动作模型:概念、进展、应用与挑战(下)
25年5月来自 Cornell 大学、香港科大和希腊 U Peloponnese 的论文“Vision-Language-Action Models: Concepts, Progress, Applications and Challenges”。 视觉-语言-动作 (VLA) 模型标志着人工智能的变革性进步,旨在将感知、自然语言理解和具体动作统一在一个计…...

一键解锁嵌入式UI开发——LVGL的“万能配方”
面对碎片化的嵌入式硬件生态,LVGL堪称开发者手中的万能配方。它通过统一API接口屏蔽底层差异,配合丰富的预置控件(如按钮、图表、滑动条)与动态渲染引擎,让工程师无需深入图形学原理,效率提升肉眼可见。 L…...
C# NX二次开发:宏录制实战讲解(第一讲)
今天要讲的是关于NX软件录制宏操作的一些案例。 下面讲如何在NX软件中复制Part体的录制宏。 NXOpen.Session theSession NXOpen.Session.GetSession(); NXOpen.Part workPart theSession.Parts.Work; NXOpen.Part displayPart theSession.Parts.Display; NXOpe…...
记录裁员后的半年前端求职经历
普通的人生终起波澜 去年下半年应该算是我毕业以来发生人生变故最多的一段时间。 先是 7 月份的时候发作了一次急性痛风,一个人在厦门,坐在床上路都走不了,那时候真的好想旁边能有个人能扶我去医院,真的是感受到 10 级的孤独。尝…...
Linux 文件查看|查找|压缩|解压 常用命令
cat 连接文件并打印到标准输出设备上 指令备注cat aaa.txt连接文件aaa并打印到标准输出设备上 more 以全屏幕的方式按页显示文本文件的内容 按Space键:显示文本的下一屏内容 按Enier键:只显示文本的下一行内容 指令备注more aaa.txt查看文件aaa le…...
什么是:Word2Vec + 余弦相似度
什么是:Word2Vec + 余弦相似度 目录 什么是:Word2Vec + 余弦相似度示例文本基于Word2Vec的文本向量化计算余弦相似度Word2Vec不是基于Transformer架构的Word2Vec是一种将单词转化为向量表示的模型,而Word2Vec + 余弦相似度则是一种利用Word2Vec得到的向量来计算文本相似性的…...

智慧城市综合运营管理系统Axure原型
这款Axure原型的设计理念紧紧围绕城市管理者的需求展开。它旨在打破传统城市管理中信息孤岛的局面,通过统一标准接入各类业务系统,实现城市运营管理信息资源的全面整合与共享。以城市管理者为中心,为其提供一个直观、便捷、高效的协同服务平台…...