一种通用的单片机CPU负载率及周期任务运行状态的监测方法与流程

文档序号:37345695发布日期:2024-03-18 18:20阅读:11来源:国知局
一种通用的单片机CPU负载率及周期任务运行状态的监测方法与流程

本发明涉及单片机嵌入式系统领域,尤其涉及一种通用的单片机cpu负载率及周期任务运行状态的监测方法。


背景技术:

1、现有技术中,通常通过软件实时计算单片机内部cpu的负载率以及监测各个任务的运行状态。

2、而目前嵌入式软件尤其是无操作系统的软件系统对cpu负载率以及任务监控依赖于第三方的监控工具,通用性不强,多任务的嵌入式系统存在任务抢占的情况,尤其在多任务的系统中需要对每一个任务的运行状态进行监测,防止出现任务运行周期不稳以及负载率偏高的问题。


技术实现思路

1、本发明的目的是为了通过软件实时计算单片机内部cpu的负载率以及监测各个任务的运行状态,其中周期任务的运行状态包含了任务运行的负载率和运行调度周期,而提出的一种通用的单片机cpu负载率及周期任务运行状态的监测方法。

2、一种通用的单片机cpu负载率及周期任务运行状态的监测方法,包括cpu负载率计算,周期任务负载率计算,周期任务的运行周期检测计算,并通过上述过程的实时计算对单片机内部cpu的负载率以及各个任务的运行状态进行监控。

3、在上述通用的单片机cpu负载率及周期任务运行状态的监测方法中,所述cpu负载率计算方法包括以下步骤:

4、s1.在单片机的idle任务中循环记录当前单片机内部系统时钟的计数值tick1;

5、s2.在每一个单片机的周期任务起始时刻判断,是否是从idle任务中被打断并进入了该任务,如果是那么记录当前单片机内部系统时钟的计数值tick2,随后将tick2与tick1做差并累加到idle总的tickidle值中;

6、s3.当前统计时间超过了设定的period,那么将tickidle/ticktotal作为当前检测周期的cpu负载率。

7、在上述通用的单片机cpu负载率及周期任务运行状态的监测方法中,所述周期任务负载率计算方法包括以下步骤:

8、s1.在周期任务的起始时刻记录当前系统时钟的计数值tick3。

9、s2.在周期任务结束时记录当前系统时钟的计数值tick4,将(tick4-tick3)/任务周期作为该周期任务的负载率load。

10、s3.对步骤2中计算得到的负载率load进行最大值最小值判断,如果大于max,则赋值给max,如果小于min,则赋值给min,得到运行过程中的最大负载率和最小负载率。

11、s4.在步骤1到步骤3中的检测代码运行前需要关闭中断,运行完成后再打开中断,避免计算过程被打断后计算错误。

12、在上述通用的单片机cpu负载率及周期任务运行状态的监测方法中,所述周期任务的运行周期检测方法包括以下步骤:

13、s1、在周期起始时刻记录当前系统时钟的计数值tick5,将tick5与上一个运行周期的计数值tick6做差,作为当前周期的调度周期period。

14、s2、在步骤1计算完成后将tick5赋值给tick6,用于下一个周期的任务周期监测。

15、s3、对步骤1得到的period进行最大值最小值判断,如果大于max,则赋值给max,如果小于min,则赋值给min,得到该任务启动后运行周期的最大周期和最小周期。

16、s4、步骤1至步骤3中的检测代码运行前需要关闭中断,运行完成后再打开中断,避免计算过程被打断后计算错误。

17、与现有的技术相比,本发明优点在于:

18、本发明通过对嵌入式系统增加少量代码的情况下,对单片机的运行状态进行软件监控,可以更快速更灵活的监控整个单片机系统的运行状态,有助于研发阶段的嵌入式代码优化以及任务合理分配。



技术特征:

1.一种通用的单片机cpu负载率及周期任务运行状态的监测方法,其特征在于,包括cpu负载率计算,周期任务负载率计算,周期任务的运行周期检测计算,并通过上述过程的实时计算对单片机内部cpu的负载率以及各个任务的运行状态进行监控。

2.根据权利要求1所述的一种通用的单片机cpu负载率及周期任务运行状态的监测方法,其特征在于:所述周期任务负载率计算方法包括以下步骤:

3.根据权利要求1所述的一种通用的单片机cpu负载率及周期任务运行状态的监测方法,其特征在于:所述周期任务负载率计算方法包括以下步骤:

4.根据权利要求1所述的一种通用的单片机cpu负载率及周期任务运行状态的监测方法,其特征在于:所述周期任务的运行周期检测方法包括以下步骤:


技术总结
本发明一种用于单片机多任务处理时的CPU负载率以及各个周期任务的运行状态的监测方法,计算CPU负载率的方法如下:以固定周期开始:1、在单片机的IDLE任务中循环记录当前单片机内部系统时钟的计数值TICK1,2、在每一个单片机的周期任务起始时刻判断,是否是从IDLE任务中被打断并进入了该任务,如果是那么记录当前单片机内部系统时钟的计数值TICK2,随后将TICK2与TICK1做差并累加到IDLE总的TICK<subgt;IDLE</subgt;值中,3、当前统计时间超过了设定周期,那么将TICK<subgt;IDLE</subgt;/TICK<subgt;TOTAL</subgt;作为当前检测周期的CPU负载率。本发明的优点是:通过对嵌入式系统增加少量代码的情况下,对单片机的运行状态进行软件监控,更快速更灵活地监控整个单片机系统的运行状态,有助于研发阶段的嵌入式代码优化以及任务合理分配。

技术研发人员:李晓杰,龚剑峰,王琨
受保护的技术使用者:威迪斯电机技术(芜湖)有限公司
技术研发日:
技术公布日:2024/3/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1