一种用于故障指示器功能性能均衡调度方法

文档序号:9506049阅读:243来源:国知局
一种用于故障指示器功能性能均衡调度方法
【技术领域】
[0001]本发明涉及一种用于故障指示器功能性能均衡调度方法。
【背景技术】
[0002]现有故障指示器CPU从成本上考虑一般采用FLASH空间大,RAM小的匹配方式,而其需要功能任务又不少,在这种情况下,使用微型操作系统来管理任务很困难,并且微型操作系统需要占用RAM空间,这样应用任务数要变少,无法发挥好整个CPU的调度资源和应用功能的需求。传统的故障指示器软件设计方法是采用多个任务按顺序流进行,当有突发事件产生时,必须轮流顺序执行程序任务,不仅效率低而且任务执行结果可能无法满足,这样便无法做到突发事件产生应用任务立即调度执行,从而影响开发周期和成本投入。

【发明内容】

[0003]本发明要解决的技术问题,在于提供一种用于故障指示器功能性能均衡调度方法。
[0004]本发明是这样实现的:一种用于故障指示器功能性能均衡调度方法,包括如下步骤:
[0005]步骤1、设定各个故障指示器的任务的优先级;
[0006]步骤2、根据任务的优先级计算出每个任务在二位数组中的行数和列数;
[0007]步骤3、根据得到的行数和列数将该任务的任务入口存入对应的二维数组的位置,并将行数和列数进行存储;
[0008]步骤4、当某一事件突发时,CPU获取该事件对应的任务,根据该任务存储的行数以及列数获取该任务的任务入口,将任务入口赋给PC值,CPU开始执行该任务。
[0009]进一步地,所述步骤2中,所述行数即为:将优先级右移3位,之后和0x07进行与运算;所述列数为:将优先级和0x07进行与运算。
[0010]进一步地,所述故障指示器的任务数小于64。
[0011]进一步地,所述步骤3中,行数和列数存放于一字节中,该字节中两个位为空。
[0012]进一步地,还包括步骤5、CPU执行完该任务后,恢复其他任务执行。
[0013]本发明具有如下优点:本发明一种用于故障指示器功能性能均衡调度方法,采用本发明方法既能满足使用RAM空间小,又能满足突发事件响应后应用任务立即执行的效果,在不增加成本开销的情况下,满足了实时性能和功能的要求,提升了产品的竞争力。
【附图说明】
[0014]下面参照附图结合实施例对本发明作进一步的说明。
[0015]图1为本发明方法执行流程图。
【具体实施方式】
[0016]如图1所示,本发明用于故障指示器功能性能均衡调度方法,包括如下步骤:
[0017]步骤1、设定各个故障指示器的任务的优先级,所述故障指示器的任务数小于64 ;
[0018]步骤2、根据任务的优先级计算出每个任务在二位数组中的行数和列数,所述行数即为:将优先级右移3位,之后和0x07进行与运算;所述列数为:将优先级和0x07进行与运算;
[0019]步骤3、根据得到的行数和列数将该任务的任务入口存入对应的二维数组的位置,并将行数和列数进行存储,行数和列数存放于一字节中,该字节中两个位为空;
[0020]步骤4、当某一事件突发时,CPU获取该事件对应的任务,根据该任务存储的行数以及列数获取该任务的任务入口,将任务入口赋给PC值,CPU开始执行该任务。
[0021]步骤5、CPU执行完该任务后,恢复其他任务执行。
[0022]其中本发明一种【具体实施方式】如下:
[0023]限定任务数为小于64,对于小单片机来说,实际使用任务数肯定远小于64。
[0024]本算法采用距阵思想,即总计64个任务分布在8行和8列中,任务入口分别保存在二维数组TaskEntry [Row] [Col]中,任务的优先级采用TaskPr1rity —个字节来表示,其中BIT7 BIT6不用,BIT5 BIT4 BIT3作为任务所在行Row, BIT2 BIT1 ΒΙΤ0表示任务所在列Col。任务所在行计算方法Row = (TaskPr1rity?3)&0x07,任务所在列计算方法Col=TaskPr1rity&0x07o
[0025]把从1到64个任务执行入口按照优先级别先排列好,并存入TaskEntry 二维数组中。
[0026]处于低功耗下的事件N突发时,CPU执行均衡调度方法,把事件N所在的行列计算出来,唤醒CPU进入全速态,把所在的行列任务入口赋给PC值,接着执行任务N中的应用。任务N执行完成后,再调用均衡调度算法,恢复给其他任务执行,或者任务重新进入休眠态。
[0027]虽然以上描述了本发明的【具体实施方式】,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【主权项】
1.一种用于故障指示器功能性能均衡调度方法,其特征在于:包括如下步骤: 步骤1、设定各个故障指示器的任务的优先级; 步骤2、根据任务的优先级计算出每个任务在二位数组中的行数和列数; 步骤3、根据得到的行数和列数将该任务的任务入口存入对应的二维数组的位置,并将行数和列数进行存储; 步骤4、当某一事件突发时,CPU获取该事件对应的任务,根据该任务存储的行数以及列数获取该任务的任务入口,将任务入口赋给PC值,CPU开始执行该任务。2.根据权利要求1所述的一种用于故障指示器功能性能均衡调度方法,其特征在于:所述步骤2中,所述行数即为:将优先级右移3位,之后和0x07进行与运算;所述列数为:将优先级和0x07进行与运算。3.根据权利要求1所述的一种用于故障指示器功能性能均衡调度方法,其特征在于:所述故障指示器的任务数小于64。4.根据权利要求3所述的一种用于故障指示器功能性能均衡调度方法,其特征在于:所述步骤3中,行数和列数存放于一字节中,该字节中两个位为空。5.根据权利要求1所述的一种用于故障指示器功能性能均衡调度方法,其特征在于:还包括步骤5、CPU执行完该任务后,恢复其他任务执行。
【专利摘要】本发明提供一种用于故障指示器功能性能均衡调度方法,设定各个故障指示器的任务的优先级;根据任务的优先级计算出每个任务在二位数组中的行数和列数;根据得到的行数和列数将该任务的任务入口存入对应的二维数组的位置,并将行数和列数进行存储;当某一事件突发时,CPU获取该事件对应的任务,根据该任务存储的行数以及列数获取该任务的任务入口,将任务入口赋给PC值,CPU开始执行该任务,便于用户使用,提高调度效率。
【IPC分类】G06F9/48
【公开号】CN105260239
【申请号】CN201510675700
【发明人】梁安韬, 王军锋, 江伟, 郑骁凌, 赵晖, 吴孝彬, 孙振业, 徐士华
【申请人】福建奥通迈胜电力科技有限公司
【公开日】2016年1月20日
【申请日】2015年10月19日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1