基于FreeRTOS的处理器状态控制方法和装置.pdf
《基于FreeRTOS的处理器状态控制方法和装置.pdf》由会员分享,可在线阅读,更多相关《基于FreeRTOS的处理器状态控制方法和装置.pdf(15页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010484526.7 (22)申请日 2020.06.01 (71)申请人 深圳移航通信技术有限公司 地址 518000 广东省深圳市前海深港合作 区前湾一路1号A栋201室 (72)发明人 黄晓彭 (74)专利代理机构 北京同立钧成知识产权代理 有限公司 11205 代理人 张晓霞刘芳 (51)Int.Cl. G06F 1/3287(2019.01) G06F 1/329(2019.01) G06F 9/4401(2018.01) G06F 9/48(2006.01) 。
2、G06F 9/50(2006.01) (54)发明名称 基于FreeRTOS的处理器状态控制方法和装 置 (57)摘要 本申请提供一种基于FreeRTOS的处理器状 态控制方法和装置, 该方法包括: 创建第一任务; 通过第一任务, 确定多个第二任务中每个第二任 务的运行状态以及处理器能够维持停止模式的 目标时长, 第一任务的优先级低于每个第二任务 的优先级; 若根据目标时长和每个第二任务的运 行状态, 确定每个第二任务满足进入停止模式的 条件时, 控制处理器在目标时长内处于停止模 式。 通过该方法能够实现基于FreeRTOS的处理器 的状态控制, 使得基于FreeRTOS的处理器能够在 每个第。
3、二任务满足进入停止模式的情况下进入 停止模式, 进而降低产品功耗。 权利要求书2页 说明书9页 附图3页 CN 111679730 A 2020.09.18 CN 111679730 A 1.一种基于FreeRTOS的处理器状态控制方法, 其特征在于, 包括: 创建第一任务; 通过所述第一任务, 确定多个第二任务中每个第二任务的运行状态以及处理器能够维 持停止模式的目标时长, 所述第一任务的优先级低于每个所述第二任务的优先级; 若根据所述目标时长和每个所述第二任务的运行状态, 确定每个所述第二任务满足进 入停止模式的条件时, 控制所述处理器在所述目标时长内处于停止模式。 2.根据权利要求1所述。
4、的方法, 其特征在于, 通过所述第一任务, 确定处理器能够维持 停止模式的目标时长, 包括: 若确定出每个所述第二任务的运行状态处于空闲状态, 则通过所述第一任务, 分别获 取每个所述第二任务能够维持停止模式的时长; 将每个第二任务能够维持停止模式的时长中最短的时长, 确定为所述目标时长。 3.根据权利要求1或2所述的方法, 其特征在于, 所述根据所述目标时长和每个所述第 二任务的运行状态, 确定每个所述第二任务满足进入停止模式的条件, 包括: 根据每个所述第二任务的运行状态, 判断每个所述第二任务是否均处于空闲状态; 若每个所述第二任务均处于空闲状态, 则判断所述目标时长是否大于预设时长; 。
5、若所述目标时长大于所述预设时长, 则确定每个所述第二任务满足进入停止模式的条 件。 4.根据权利要求1或2所述的方法, 其特征在于, 所述控制所述处理器在所述目标时长 内处于停止模式, 包括: 通过所述第一任务, 向每个所述第二任务发送通知消息, 所述通知消息用于通知每个 所述第二任务进入停止状态; 若确定每个所述第二任务均进入停止状态, 则控制所述处理器在所述目标时长内处于 停止模式。 5.根据权利要求1或2所述的方法, 其特征在于, 所述第一任务的功耗小于预设值。 6.根据权利要求1或2所述的方法, 其特征在于, 所述通过所述第一任务, 确定多个第二 任务中每个第二任务的运行状态, 包括:。
6、 通过所述第一任务, 实时扫描每个所述第二任务, 得到每个所述第二任务的运行状态。 7.根据权利要求1或2所述的方法, 其特征在于, 每个所述第二任务的运行状态包括: 空 闲状态、 繁忙状态和停止状态。 8.一种基于FreeRTOS的处理器低功耗控制装置, 其特征在于, 包括: 创建模块, 用于创建第一任务; 处理模块, 用于通过所述第一任务, 确定多个第二任务中每个第二任务的运行状态以 及处理器能够维持停止模式的目标时长, 所述第一任务的优先级低于每个所述第二任务的 优先级; 控制模块, 用于若根据所述目标时长和每个所述第二任务的运行状态, 确定所述每个 第二任务满足进入停止模式的条件时, 。
7、控制所述处理器在所述目标时长内处于停止模式。 9.一种电子设备, 其特征在于, 包括: 至少一个处理器; 以及 与至少一个所述处理器通信连接的存储器; 其中, 权利要求书 1/2 页 2 CN 111679730 A 2 所述存储器存储有可被至少一个所述处理器执行的指令, 所述指令被至少一个所述处 理器执行, 以使至少一个所述处理器能够执行权利要求1至7中任一项所述的方法。 10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质中存储有计算机 执行指令, 所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方 法。 权利要求书 2/2 页 3 CN 1116797。
8、30 A 3 基于FreeRTOS的处理器状态控制方法和装置 技术领域 0001 本申请实施例涉及数据处理技术领域, 尤其涉及一种基于FreeRTOS的处理器状态 控制方法和装置。 背景技术 0002 日常生活中, 手环、 手机等便携且移动性较强的产品被广泛使用, 此类产品内部多 采用嵌入式系统。 因为此类产品都是使用电池供电, 所以产品续航能力有限。 0003 现有技术中, 在基于嵌入式实时操作系统FreeRTOS的STM32处理器的嵌入式系统 的设计中, 为了降低产品功耗, 多采用FreeRTOS提供的睡眠(Sleep)模式低功耗功能, 通过 使STM32处理器进入睡眠模式, 来降低产品功。
9、耗。 0004 然而, STM32处理器在睡眠模式下, 只有STM32处理器的内核停止了工作, 外设仍然 在运行, 产品功耗较高, 并不能满足超低功耗要求。 发明内容 0005 本申请提供一种基于FreeRTOS的处理器状态控制方法和装置, 能够使基于 FreeRTOS的处理器进入停止模式。 0006 第一方面, 本申请提供了一种基于FreeRTOS的处理器状态控制方法, 包括: 创建第 一任务; 通过第一任务, 确定多个第二任务中每个第二任务的运行状态以及处理器能够维 持停止模式的目标时长, 第一任务的优先级低于每个第二任务的优先级; 若根据目标时长 和每个第二任务的运行状态, 确定每个第二。
10、任务满足进入停止模式的条件时, 控制处理器 在目标时长内处于停止模式。 0007 通过该方法创建的第一任务, 由于优先级低于每个第二任务, 从而不干扰每个第 二任务的执行。 通过创建优先级低于每个第二任务的优先级的第一任务, 并通过第一任务 确定多个第二任务中每个第二任务的运行状态以及基于FreeRTOS的处理器能够维持停止 模式的目标时长; 若根据目标时长和每个第二任务的运行状态, 确定每个第二任务满足进 入停止模式的条件时, 则控制基于FreeRTOS的处理器在目标时长内处于停止模式。 能够实 现基于FreeRTOS的处理器的状态控制, 使得基于FreeRTOS的处理器能够在每个第二任务满。
11、 足进入停止模式的情况下进入停止模式, 进而降低产品功耗。 0008 可选的, 通过第一任务, 确定处理器能够维持停止模式的目标时长, 包括: 若确定 出每个第二任务的运行状态均处于空闲状态, 则通过第一任务, 分别获取每个第二任务能 够维持停止模式的时长; 将每个第二任务能够维持停止模式的时长中最短的时长, 确定为 目标时长。 0009 通过该方法能够确定出第二任务中任一任务能够维持停止模式的时长。 0010 可选的, 根据目标时长和每个第二任务的运行状态, 确定每个第二任务满足进入 停止模式的条件, 包括: 根据每个第二任务的运行状态, 判断每个第二任务是否均处于空闲 状态; 若每个第二任。
12、务均处于空闲状态, 则判断目标时长是否大于预设时长; 若目标时长大 说明书 1/9 页 4 CN 111679730 A 4 于预设时长, 则确定每个第二任务满足进入停止模式的条件。 0011 通过该方法能够确定出第二任务中所有任务同时维持停止模式的时长。 能够防止 因时长设置不合理, 例如设置的太短, 导致处理器进入停止模式后, 又立即退出停止模式, 没有到达降低功耗的效果, 进而影响产品性能。 0012 可选的, 控制处理器在目标时长内处于停止模式, 包括: 通过第一任务, 向每个第 二任务发送通知消息, 该通知消息用于通知每个第二任务进入停止状态; 若确定每个第二 任务均进入停止状态, 。
13、则控制处理器在目标时长内处于停止模式。 0013 通过该方法能够使每个第二任务均进入停止状态, 进而能够使处理器在目标时长 内进入停止模式, 降低系统功耗。 0014 可选的, 第一任务的功耗小于预设值。 0015 通过创建低功耗的第一任务不会过多的增加产品功耗, 进而不会消耗过多电量, 能够保证产品的待机时长。 0016 可选的, 通过第一任务, 确定多个第二任务中每个第二任务的运行状态, 包括: 通 过第一任务, 实时扫描每个第二任务, 得到每个第二任务的运行状态。 0017 通过该方法能够缩短获取第二任务的运行状态的时间, 提升处理器的运行效率, 同时能够减少获取每个第二任务的运行状态之。
14、间的时延, 保证获取的每个第二任务的运行 状态的准确性。 0018 可选的, 每个第二任务的运行状态包括: 空闲状态、 繁忙状态和停止状态。 0019 第二方面, 本申请提供一种基于FreeRTOS的处理器状态控制装置, 包括: 创建模 块, 用于创建第一任务; 处理模块, 用于通过第一任务, 确定多个第二任务中每个第二任务 的运行状态以及处理器能够维持停止模式的目标时长, 第一任务的优先级低于每个第二任 务的优先级; 控制模块, 用于若根据目标时长和每个第二任务的运行状态, 确定每个第二任 务满足进入停止模式的条件时, 控制处理器在目标时长内处于停止模式。 0020 可选的, 处理模块具体用。
15、于, 若确定出每个第二任务的运行状态处于空闲状态, 则 通过第一任务, 分别获取每个第二任务能够维持停止模式的时长; 将每个第二任务能够维 持停止模式的时长中最短的时长, 确定为目标时长。 0021 可选的, 控制模块具体用于, 根据每个第二任务的运行状态, 判断每个第二任务是 否均处于空闲状态; 若每个第二任务均处于空闲状态, 则判断目标时长是否大于预设时长; 若目标时长大于预设时长, 则确定每个第二任务满足进入停止模式的条件。 0022 可选的, 控制模块具体用于, 通过第一任务, 向每个第二任务发送通知消息, 通知 消息用于通知每个第二任务进入停止状态; 若确定每个第二任务均进入停止状态。
16、, 则控制 处理器在目标时长内处于停止模式。 0023 可选的, 第一任务的功耗小于预设值。 0024 可选的, 处理模块具体用于, 通过第一任务, 实时扫描每个第二任务, 得到每个第 二任务的运行状态。 0025 可选的, 每个第二任务的运行状态包括: 空闲状态、 繁忙状态和停止状态。 0026 第三方面, 本申请提供一种电子设备, 包括: 至少一个处理器; 以及与至少一个处 理器通信连接的存储器; 其中, 存储器存储有可被至少一个处理器执行的指令, 指令被至少 一个处理器执行, 以使至少一个处理器能够执行如第一方面或第一方面的可选方式的方 说明书 2/9 页 5 CN 111679730 。
17、A 5 法。 0027 第四方面, 本申请提供一种计算机可读存储介质, 计算机可读存储介质中存储有 计算机执行指令, 计算机执行指令被处理器执行时用于实现如第一方面或第一方面的可选 方式的任一项的基于FreeRTOS的处理器状态控制方法。 0028 本申请提供的基于FreeRTOS的处理器状态控制方法和装置, 通过创建优先级低于 每个第二任务的优先级的第一任务, 并通过第一任务确定多个第二任务中每个第二任务的 运行状态以及基于FreeRTOS的处理器能够维持停止模式的目标时长; 若根据目标时长和每 个第二任务的运行状态, 确定每个第二任务满足进入停止模式的条件时, 则控制基于 FreeRTOS。
18、的处理器在目标时长内处于停止模式。 能够实现基于FreeRTOS的处理器的状态控 制, 使得基于FreeRTOS的处理器能够在每个第二任务满足进入停止模式的情况下进入停止 模式, 进而降低产品功耗。 附图说明 0029 图1为本申请提供的一种基于FreeRTOS的处理器状态控制方法的流程图; 0030 图2为本申请提供的另一种基于FreeRTOS的处理器状态控制方法的流程图; 0031 图3为本申请提供的又一种基于FreeRTOS的处理器状态控制方法的流程图; 0032 图4为本申请提供的一种基于FreeRTOS的处理器状态控制装置的结构示意图; 0033 图5为本申请实施例提供的一种电子设备。
19、的结构示意图。 0034 通过上述附图, 已示出本公开明确的实施例, 后文中将有更详细的描述。 这些附图 和文字描述并不是为了通过任何方式限制本公开构思的范围, 而是通过参考特定实施例为 本领域技术人员说明本公开的概念。 具体实施方式 0035 这里将详细地对示例性实施例进行说明, 其示例表示在附图中。 下面的描述涉及 附图时, 除非另有表示, 不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例 中所描述的实施方式并不代表与本公开相一致的所有实施方式。 相反, 它们仅是与如所附 权利要求书中所详述的、 本公开的一些方面相一致的装置和方法的例子。 0036 STM32处理器的低功耗工作。
20、模式有三种: 睡眠模式、 停止(Stop)模式和待机 (Standby)模式。 在基于嵌入式实时操作系统FreeRTOS的STM32处理器的嵌入式系统的设计 中, 为了降低产品功耗, 多采用FreeRTOS提供的睡眠模式低功耗功能, 通过使STM32处理器 进入睡眠模式, 并采用Systick定时器唤醒进入睡眠模式的STM32处理器, 然而, STM32处理 器在睡眠模式下, 只有STM32处理器的内核停止了工作, 外设仍然在运行, 产品功耗较高。 0037 FreeRTOS具有多任务管理机制。 多任务是指把一个大应用 “分而治之” , 把大的应 用细划分成更多的小应用, 每个小应用就相当于一。
21、个任务, 任务之间是独立互不干扰, 处理 自身的逻辑。 FreeRTOS每个任务还有自身的优先级, 高优先级的任务会打断低优先级任务 的运行而取得CPU的使用权。 0038 本申请的主旨思想是: 通过创建一个任务, 然后通过该任务实时的遍历各个任务 的运行状态, 判断每个任务当前能够维持停止模式的时长, 若发现最小时长大于进入设定 的最小维持停止模式时长时, 该任务确定每个第二任务满足进入停止模式的条件时, 控制 说明书 3/9 页 6 CN 111679730 A 6 STM32处理器进入停止模式; 并通过RTC定时器周期性的唤醒STM32处理器, 并判断STM32处 理器进入停止模式的时长。
22、是否结束, 若STM32处理器进入停止模式的时长没有结束, 则再次 控制STM32处理器进入停止模式, 若STM32处理器进入停止模式的时长结束, 则控制STM32处 理器退出停止模式。 0039 下面将结合附图, 对本申请的实施例进行描述。 这几个具体的实施例可以相互结 合, 对于相同或相似的概念或过程可能在某些实施例中不再赘述。 0040 图1为本申请提供的一种基于FreeRTOS的处理器状态控制方法的流程图, 该方法 的执行主体可以是基于FreeRTOS的处理器, 例如基于FreeRTOS的STM32处理器。 该基于 FreeRTOS的处理器可以应用于手环、 手机等便携式和移动性较强的产。
23、品。 如图1所示, 该方 法包括如下步骤: 0041 S101、 创建第一任务。 0042 S102、 通过第一任务, 确定多个第二任务中每个第二任务的运行状态以及处理器 能够维持停止模式的目标时长。 0043 其中, 第一任务的优先级低于每个第二任务的优先级。 通过该方法, 第一任务不干 扰每个第二任务的执行。 低优先级的第一任务不会打断比其优先级高的任一正在执行的第 二任务, 能够保证每个第二任务的正常执行, 保证产品功能的正常实现; 每个第二任务因为 具有较高优先级, 当需要执行第二任务时, 即使第一任务正在执行, 第二任务也可以将该第 一任务打断, 以使处理器执行第二任务, 进而能够保。
24、证产品功能的正常实现。 0044 第二任务可以是用于实现产品功能的任务, 例如以车载移动终端为例, 车载移动 终端的主要模块有: 全球定位系统(Global Positioning System, 简称GPS)定位模块、 网络 通信模块、 传感器模块等。 每一个模块都有对应的独立任务在运行与管理, 例如GPS定位模 块则有GPS定位任务, 其用于采集定位数据; 网络通信模块有网络通信任务, 其用于当有数 据需发送给车载移动终端时, 网络通信任务会立即进入繁忙状态, 将当前设备的数据, 例如 定位信息、 电池电量等, 及时发送给车载移动终端。 0045 例如, 假设第二任务为网络通信任务, 由于。
25、第一任务的优先级低于第二任务, 当处 理器上的FreeRTOS操作系统正在执行第一任务时, 如果有数据需要发送给车载移动终端, 网络通信任务会立即打断第一任务的运行, 处理器开始执行网络通信任务, 进而及时将当 前设备的数据, 例如定位信息, 电池信息等发送给车载移动终端。 当处理器上的FreeRTOS操 作系统正在执行网络通信任务时, 第一任务无法被执行。 0046 S103、 若根据目标时长和每个第二任务的运行状态, 确定每个第二任务满足进入 停止模式的条件时, 控制处理器在目标时长内处于停止模式。 0047 本申请通过创建的第一任务确定多个第二任务中每个第二任务的运行状态以及 基于Fre。
26、eRTOS的处理器能够维持停止模式的目标时长; 若根据目标时长和每个第二任务的 运行状态, 确定每个第二任务满足进入停止模式的条件时, 则控制基于FreeRTOS的处理器 在目标时长内处于停止模式。 能够实现基于FreeRTOS的处理器的低功耗控制, 使得基于 FreeRTOS的处理器能够在每个第二任务满足进入停止模式的情况下进入停止模式, 进而降 低产品功耗。 0048 图2为本申请提供的另一种基于FreeRTOS的处理器状态控制方法的流程图, 该方 法的执行主体可以是基于FreeRTOS的处理器, 例如基于FreeRTOS的STM32处理器。 该基于 说明书 4/9 页 7 CN 1116。
27、79730 A 7 FreeRTOS的处理器可以应用于手环、 手机等便携式和移动性较强的产品。 图2所示实施例在 图1所示实施例的基础上, 对S103若根据目标时长和每个第二任务的运行状态, 确定每个第 二任务满足进入停止模式的条件时, 控制处理器在目标时长内处于停止模式进行详细说 明。 如图2所示, 该方法包括如下步骤: 0049 S201、 创建第一任务。 0050 在一种可能的实现方式中, 第一任务的功耗小于预设阈值。 0051 因为, 第一任务的处理逻辑比较简单, 功能单一, 所以处理器在运行第一任务时, 占用的资源较少、 处理速度快, 功耗低。 进而创建低功耗的第一任务不会过多的增加。
28、产品功 耗, 进而不会消耗过多电量, 能够保证产品的待机时长。 0052 其中, 预设值可以根据实际情况或者经验进行设置, 对于预设值的具体取值, 本申 请实施例在此不做限制。 当然, 该预设值可以是一种判断标准, 例如当第一任务运行功耗低 于该预设值时, 用户就确定该第一任务为低功耗任务, 而不需要将预设值输入到处理器或 者设备中予以存储。 0053 S202、 通过第一任务, 确定多个第二任务中每个第二任务的运行状态以及处理器 能够维持停止模式的目标时长。 0054 其中, 第一任务的优先级低于每个第二任务的优先级。 通过该方法, 第一任务不干 扰每个第二任务的执行。 具体说明参见步骤10。
29、2。 0055 示例性的, 通过第一任务, 确定多个第二任务中每个第二任务的运行状态的一种 可能的实现方式是: 通过第一任务, 实时扫描每个第二任务, 得到每个第二任务的运行状 态。 具体地, 可以是通过第一任务, 在预设时间内, 周期性的扫描每个第二任务, 获取每个第 二任务相应状态值, 以得到每个第二任务的运行状态, 该状态值用于表示第二任务的运行 状态。 0056 通过该方法能够缩短获取第二任务的运行状态的时间, 提升处理器的运行效率, 同时能够减少获取每个第二任务的运行状态之间的时延, 保证获取的每个第二任务的运行 状态的准确性。 0057 可选的, 每个第二任务的运行状态包括: 空闲。
30、状态、 繁忙状态和停止状态, 其中, 任 一时刻, 任一第二任务的运行状态可以是空闲状态、 繁忙状态和停止状态中的一种。 0058 任一第二任务处于繁忙状态表示该任务正在执行相应操作, 例如GPS定位任务正 在执行GPS定位数据的采集, 则该任务处于繁忙状态。 任一第二任务处于空闲状态表示该任 务没有执行任何操作。 任一第二任务处于停止状态表示该任务接收到第一任务发送的通知 消息, 并完成了进入停止模式前的操作, 例如GPS定位任务关闭GPS定位模块的电源等。 0059 进一步地, 通过第一任务, 确定处理器能够维持停止模式的目标时长的一种可能 的实现方式是: 若确定出每个第二任务的运行状态处。
31、于空闲状态, 则通过第一任务, 分别获 取每个第二任务能够维持停止模式的时长; 将每个第二任务能够维持停止模式的时长中最 短的时长, 确定为目标时长。 若确定出任一第二任务的运行状态处于繁忙状态, 则结束通过 第一任务, 确定处理器能够维持停止模式的目标时长的过程。 通过该方法能够确定出第二 任务中任一任务能够维持停止模式的时长。 0060 具体的, 通过第一任务, 分别获取每个第二任务能够维持停止模式的时长可以是 通过第一任务获取每个第二任务的当前运行状态, 若为空闲状态, 则接着获取第二任务能 说明书 5/9 页 8 CN 111679730 A 8 够维持停止模式的时长。 0061 例如。
32、, 假设第二任务包括三个任务, 分别为GPS定位任务、 网络通信任务和传感器 任务。 其中GPS定位任务能够维持停止模式的时间是1ms、 网络通信任务能够维持停止模式 的时间是0.1ms、 传感器任务能够维持停止模式的时间为2ms, 则将0.1ms确定为目标时长。 0062 S203、 根据目标时长和每个第二任务的运行状态, 确定每个第二任务是否满足进 入停止模式的条件, 若每个第二任务满足进入停止模式的条件, 则执行S204; 若任一第二任 务不满足进入停止模式的条件, 则执行S202。 0063 根据目标时长和每个第二任务的运行状态, 确定每个第二任务满足进入停止模式 的条件的一种可能的实。
33、现方式是: 根据每个第二任务的运行状态, 判断每个第二任务是否 均处于空闲状态; 若每个第二任务均处于空闲状态, 则判断目标时长是否大于预设时长; 若 任一第二任务均处于繁忙状态, 则结束确定每个第二任务满足进入停止模式的条件; 若目 标时长大于预设时长, 则确定每个第二任务满足进入停止模式的条件; 若目标时长小于或 等于预设时长, 则确定每个第二任务不满足进入停止模式的条件。 0064 其中, 预设时长为预设的处理器能够维持停止模式的最小时长。 0065 通过该方法能够确定出第二任务中所有任务同时维持停止模式的时长。 能够防止 因时长设置不合理, 例如设置的太短, 导致处理器进入停止模式后,。
34、 又立即退出停止模式, 没有到达降低功耗的效果, 进而影响产品性能。 0066 S204、 控制处理器在目标时长内处于停止模式。 0067 控制处理器在目标时长内处于停止模式的一种可能的实现方式是: 通过第一任 务, 向每个第二任务发送通知消息, 通知消息用于通知每个第二任务进入停止状态; 若确定 每个第二任务均进入停止状态, 则控制处理器在目标时长内处于停止模式。 0068 通过该方法能够使每个第二任务均进入停止状态, 进而能够使处理器在目标时长 内进入停止模式, 降低系统功耗。 0069 本申请通过创建优先级低于每个第二任务的优先级的第一任务, 并通过第一任务 确定多个第二任务中每个第二任。
35、务的运行状态以及基于FreeRTOS的处理器能够维持停止 模式的目标时长; 若根据目标时长和每个第二任务的运行状态, 确定每个第二任务满足进 入停止模式的条件时, 则控制基于FreeRTOS的处理器在目标时长内处于停止模式。 能够实 现基于FreeRTOS的处理器的低功耗控制, 使得基于FreeRTOS的处理器能够在每个第二任务 满足进入停止模式的情况下进入停止模式, 进而降低产品功耗。 0070 图3为本申请提供的又一种基于FreeRTOS的处理器状态控制方法的流程图, 该方 法的执行主体可以是基于FreeRTOS的处理器, 例如基于FreeRTOS的STM32处理器。 该基于 FreeRT。
36、OS的处理器可以应用于手环、 手机等便携式和移动性较强的产品。 如图3所示, 该方 法包括如下步骤: 0071 S301、 创建第一任务。 0072 可选的, 第一任务的功耗低于预设值。 0073 S302、 通过第一任务, 实时扫描每个第二任务, 得到每个第二任务的运行状态。 0074 可选的, 每个第二任务的运行状态包括: 空闲状态、 繁忙状态和停止状态, 其中, 任 一时刻, 任一第二任务的运行状态可以是空闲状态、 繁忙状态和停止状态中的一种。 0075 S303、 通过第一任务, 分别获取每个第二任务能够维持停止模式的时长。 说明书 6/9 页 9 CN 111679730 A 9 0。
37、076 S304、 将每个第二任务能够维持停止模式的时长中最短的时长, 确定为目标时长。 0077 S305、 判断是否每个第二任务均处于空闲状态, 若每个第二任务均处于空闲状态, 则执行S306; 若任一第二任务处于繁忙状态, 则执行S302。 0078 S306、 判断目标时长是否大于预设时长, 若目标时长大于预设时长, 则将该目标时 长设置为RTC定时器的计时时长, 并执行S307; 若目标时长小于或等于预设时长, 则执行 S302。 0079 S307、 通过第一任务向每个第二任务发送通知消息, 该通知消息用于控制每个第 二任务进入停止状态。 0080 具体的, 任一第二任务接收到该通。
38、知消息后, 则执行进入停止模式前的相应事务, 并在相应事务后执行完后进入停止状态。 0081 例如, 第二任务为GPS定位任务时, GPS定位任务接收到第一任务发送的通知消息 后, 将停止GPS信号采集, 并在停止GPS信号采集后关闭电源进入停止状态。 0082 S308、 通过第一任务, 获取每个第二任务的运行状态, 判断是否所有第二任务都进 入停止状态, 若所有第二任务都进入停止状态, 则执行S309; 若任一第二任务没有进入停止 状态, 则执行S314。 0083 可选的, 可再次通过第一任务, 获取每个第二任务的运行状态, 以判断是否所有第 二任务都进入停止状态。 因为在通过第一任务,。
39、 获取每个第二任务的运行状态, 判断是否所 有第二任务都进入停止状态需要一定时间, 在这段时间内可能发生外部时间触发, 导致任 一第二任务不能进入停止状态。 例如, 传感器检测到设备非法移动, 导致传感器任务不能进 入停止状态。 通过多次检测, 以保证在处理器进入停止模式前没有第二任务处于繁忙状态。 0084 S309、 执行处理器进入停止模式前的事务。 0085 例如, 处理器进入停止模式前的事务可以包括处理器关闭外设、 通用异步收发传 输器接口(Universal Asynchronous Receiver/Transmitter, 简称UART)、 串行外设接口 (Serial Peri。
40、pheral Interface, 简称SPI)、 两线时串行总线接口(Inter-Integrated Circuit, 简称I2C)等等。 0086 S310、 启动实时时钟(Real_Time Clock, RTC)定时器, 其中, RTC定时器的计时时长 为目标时长。 0087 S311、 通过RTC定时器以预设周期时长, 周期性的唤醒处理器, 其中预设周期时长 小于目标时长。 0088 S312、 当处理器被唤醒时, 判断处理器是否是被RTC定时器唤醒, 若处理器是被RTC 定时器唤醒时, 执行S313; 若处理器不是被RTC定时器唤醒时, 执行S314。 0089 S313、 判断。
41、RTC定期器的计时时长是否结束, 若RTC定时器计时时长结束, 则执行 S314; 若RTC定时器计时时长未结束, 则执行S312。 0090 结合S312和S313进行举例说明: 0091 假设将预设周期时长设置为1s, 即RTC定时器每隔1s唤醒一次处理器。 如果处理器 在非RTC定时器唤醒时刻被唤醒, 即唤醒处理器的不是RTC定时器, 则说明处理器有事务要 处理, 不能继续维持停止模式, 需及时退出停止模式。 例如, 处理器被传感器唤醒时, 处理器 需要执行传感器任务, 因而不能继续维持停止模式, 需退出停止模式, 以执行传感器任务。 0092 若处理器是被RTC定时器周期性唤醒, 则继。
42、续判断RTC定时器的计时时长是否结 说明书 7/9 页 10 CN 111679730 A 10 束, 即判断处理器维持停止模式的时长是否结束, 如果RTC定时器的计时时长已结束, 则控 制处理器退出停止模式, 若RTC定时器的计时时长未结束, 则控制处理器继续维持停止模 式。 0093 S314、 通过第一任务向每个第二任务发送退出停止模式消息, 以唤醒每个第二任 务, 其中, 退出停止模式消息用于通知每个第二任务执行退出停止模式前的相应事务。 0094 例如, 第二任务为GPS定位采集任务时, GPS定位采集任务接收到第一任务发送的 退出停止模式消息后, 将开启GPS信号采集, 并在开启G。
43、PS信号采集后退出挂起状态。 0095 可以理解的是, 每个第二任务在进入停止模式前执行的事务和退出停止模式前执 行的事务是相应的, 例如GPS定位采集任务在进入停止模式前执行关闭GPS信号采集, 在退 出停止模式前相应的执行开启GPS采集。 0096 S315、 执行处理器退出停止模式前的事务。 0097 例如, 处理器开启外设、 UART、 SPI、 I2C等等。 0098 可以理解的是, 处理器在进入停止模式前执行的事务和退出停止模式前执行的事 务是相应的, 例如处理器在进入停止模式前执行关闭UART, 在退出停止模式前相应的执行 开启UART。 0099 本申请通过创建的第一任务获取每。
44、个第二任务能够维持停止模式的时长, 将每个 第二任务能够维持停止模式的时长中最短的时长, 确定为目标时长, 并判断目标时长是否 大于预设时长, 若目标时长大于预设时长, 则将该目标时长设置为RTC定时器的第一计时时 长; 通过创建的第一任务实时扫描每个第二任务, 得到每个第二任务的运行状态、 判断是否 每个第二任务均处于空闲状态, 若每个第二任务均处于空闲状态, 则通过第一任务向每个 第二任务发送通知消息, 该通知消息用于通知每个第二任务执行进入停止模式前的相应事 务, 并在相应事务后执行完后进入停止状态。 再次通过第一任务获取每个第二任务的运行 状态, 判断是否所有第二任务都进入停止状态, 。
45、若所有第二任务都进入停止状态, 则启动 RTC定时器, 并通过RTC定时器以预设的第二计时时长, 周期性的唤醒处理器, 其中预设的第 二计时时长小于定时器的第一计时时长。 并当处理器被唤醒时, 判断处理器是否是被RTC定 时器唤醒, 若处理器被RTC定时器唤醒, 则判断RTC定期器的第一计时时长是否结束, 若RTC 定时器第一计时时长结束, 则通过第一任务向每个第二任务发送退出停止模式消息, 以唤 醒每个第二任务, 其中, 退出停止模式消息用于通知每个第二任务执行退出停止模式前的 相应事务。 执行处理器退出停止模式前的事务, 以控制处理器退出停止模式; 若处理器不是 被RTC定时器唤醒, 则直。
46、接通过第一任务向每个第二任务发送退出停止模式消息, 以唤醒每 个第二任务, 其中, 退出停止模式消息用于通知每个第二任务执行退出停止模式前的相应 事务。 执行处理器停止模式前的事务, 以控制处理器退出停止模式。 使基于FreeRTOS的处理 器能够进入停止模式, 能够使基于FreeRTOS的STM32运行在功耗更低的状态下, 进而降低产 品的功耗。 0100 图4为本申请提供的一种基于FreeRTOS的处理器状态控制装置的结构示意图, 如 图4所示, 该装置包括: 0101 创建模块41、 用于创建第一任务。 0102 处理模块42、 用于通过第一任务, 确定多个第二任务中每个第二任务的运行状。
47、态 以及处理器能够维持停止模式的目标时长, 第一任务的优先级低于每个第二任务的优先 说明书 8/9 页 11 CN 111679730 A 11 级。 0103 控制模块43、 用于若根据目标时长和每个第二任务的运行状态, 确定每个第二任 务满足进入停止模式的条件时, 控制处理器在目标时长内处于停止模式。 0104 可选的, 处理模块42, 具体用于若确定出每个第二任务的运行状态处于空闲状态, 则通过第一任务, 分别获取每个第二任务能够维持停止模式的时长; 将每个第二任务能够 维持停止模式的时长中最短的时长, 确定为目标时长。 0105 可选的, 控制模块43, 具体用于根据每个第二任务的运行。
48、状态, 判断每个第二任务 是否均处于空闲状态; 若每个第二任务均处于空闲状态, 则判断目标时长是否大于预设时 长; 若目标时长大于预设时长, 则确定每个第二任务满足进入停止模式的条件。 0106 可选的, 控制模块43, 具体用于通过第一任务, 向每个第二任务发送通知消息, 该 通知消息用于通知每个第二任务进入停止状态; 若确定每个第二任务均进入停止状态, 则 控制处理器在目标时长内处于停止模式。 0107 可选的, 处理模块42, 具体用于通过第一任务, 实时扫描每个第二任务, 得到每个 第二任务的运行状态。 0108 可选的, 每个第二任务的运行状态包括: 空闲状态、 繁忙状态和停止状态,。
49、 其中, 任 一时刻, 任一第二任务的运行状态可以是空闲状态、 繁忙状态和停止状态中的一种。 0109 该基于FreeRTOS的处理器状态控制装置可以执行上述的基于FreeRTOS的处理器 状态控制方法, 其内容和效果可参考方法实施例部分, 对此不再赘述。 0110 图5为本申请实施例提供的一种电子设备的结构示意图, 如图5所示, 本实施例的 电子设备包括: 处理器51、 存储器52; 处理器51与存储器52通信连接。 存储器52用于存储计 算机程序。 处理器51用于调用存储器52中存储的计算机程序, 以实现上述方法实施例中的 方法。 0111 可选地, 该电子设备还包括: 收发器53, 用于。
50、与其他设备实现通信。 0112 该基于FreeRTOS的处理器状态控制设备可以执行上述的基于FreeRTOS的处理器 状态控制方法, 其内容和效果可参考方法实施例部分, 对此不再赘述。 0113 本申请还提供了一种计算机可读存储介质, 计算机可读存储介质中存储有计算机 执行指令, 计算机执行指令被处理器执行时用于实现上述基于FreeRTOS的处理器状态控制 方法。 0114 该计算机可读存储介质所存储的计算机执行指令被处理器执行时能实现上述基 于FreeRTOS的处理器状态控制方法, 其内容和效果可参考方法实施例部分, 对此不再赘述。 0115 本领域技术人员在考虑说明书及实践这里公开的发明后。
- 内容关键字: 基于 FreeRTOS 处理器 状态 控制 方法 装置
养殖禽畜排泄物固液分离处理设备.pdf
铝合金平板加工用夹具.pdf
抗弯抗拉低频闪灯带.pdf
图书馆空气调节装置.pdf
路面高差检测装置.pdf
U肋板转运机器人的行走机构切换装置.pdf
冲压机用的精准送料装置.pdf
茶叶加工用萎凋装置.pdf
糠醛残液回收釜.pdf
蓄电池组中实时时钟芯片供电电路.pdf
水平防跷板调节压轮机构.pdf
高压线圈引出装置.pdf
热管节能型离子溶液碳捕集装置.pdf
工作效率高的多单元碟状容器定量充填装置.pdf
用于散热器铜管的收卷辅助设备.pdf
手提式电动冷烟雾机的驱动式收置结构.pdf
气相三氧化硫磺化反应系统.pdf
基于多频点扫频工作的超声波控藻系统.pdf
改进型太阳能板旋转支架.pdf
基于实时网络的风电场智能图像监控系统.pdf
自动驾驶路线规划方法和系统.pdf
高可靠性的平板探测器数据采集方法、系统及计算机.pdf
多区域虚拟电厂协同优化运行方法.pdf
基于深度学习眼球追踪光斑检测方法及装置.pdf
风电电能质量评估方法及装置.pdf
TBC太阳能电池的制备方法、TBC太阳能电池与光伏系统.pdf
森林冠层高度与地理环境协变量关系确定方法及系统.pdf
基于眼动数据的自动冻屏方法、装置、设备及存储介质.pdf
U形肋焊接定位系统.pdf
太阳能组件撕胶引线点胶一体机及生产方法.pdf
基于辐射传输参数应用卷积神经网络的水深地图反演方法.pdf
化工区域的空气污染溯源方法及装置.pdf
透皮吸收型脑保护剂.pdf
治疗血瘀型子宫肌瘤并发崩漏症的汤剂药物及制备方法.pdf
一种治疗糖尿病的中成药.pdf
一种人参、麦冬和五味子的提取方法及其制剂.pdf
一种超顺应性分段支架.pdf
一种医疗骨科颈部固定支架.pdf
一种减肥球囊的胃腔填充方法.pdf
一种小檗果咀嚼片.pdf
一种集尿裤头.pdf
用于经间期的卫生棉条.pdf
治疗血热型子宫肌瘤并发崩漏症的汤剂药物及制备方法.pdf
具有自备电解质的植入式氧合器.pdf
医用透气强吸水性多功能敷贴.pdf
活血止痛膏的质量检测方法.pdf
一种治疗腹泻型肠易激综合征的中药.pdf
一种质地坚硬且防水的骨科夹板.pdf
治疗臌胀病的药物.pdf
RG1抗体及其用途.pdf
气囊式膝关节支具.pdf