一种嵌入式操作系统定时保护的实现方法

文档序号:6328473阅读:196来源:国知局
专利名称:一种嵌入式操作系统定时保护的实现方法
技术领域
本发明属于计算机技术领域,更为具体地讲,涉及一种嵌入式操作系统定时保护的实现方法。
背景技术
在汽车电子应用领域,某些汽车电子的控制器系统需要使用到嵌入式实时操作系统软件,提供多任务的应用软件运行环境。AUTOSAR OS (Automotive Open Systems Architecture Operating System)定义了一套支持分布式的、功能驱动的汽车电子软件开发方法和电子控制单元上的软件架构标准化方案,以便应用于不同的汽车平台,提高软件复用,降低开发成本。AUTOSAR OS为实时应用提供了所有基本服务,即中断处理、调度、系统时间和时钟同步、本地消息处理,以及错误检测机制等。AUTOSAR OS是AUTOSAR体系架构中对嵌入式实时操作系统提出的规范,基于OSEK OS并对其在安全保护以及时间触发的网络同步等功能进行了扩展,更好的满足汽车电子应用领域的需求。^fc AUTOSAR OS 夫 1 ^ (AUTOSAR Specification of Operating System Version4. 0, November 30th, 2009)中,提出了定时保护的概念,对任务或中断等实体的运行时间等进行检测。其具体含义是1)、在实时操作系统中,对任务或者中断在的结束时间有严格约束,即任务或中断执行必须在某个时间点之前完成,称之为任务或中断的截止时间。2)、如果任务或者中断错过其截止时间,对整个应用系统也许会造成致命的损伤。 而对于支持多任务的操作系统来说,一个任务能否按时执行很可能受到其他任务的影响。 比如一个系统中有三个周期性任务,表1中给出该三个任务的执行参数,其截止时间等于任务的周期,任务必须在截止时间前完成。
任务ID优先级执行时间截止时间(=任务周期)A15B中38C低515表 1图1是现有技术的任务执行过程示意图。如图1所示,任务A、B、C同时在时刻0就绪,任务A优先级最高,先执行,当其在时刻ι执行完毕接着任务B执行,由于某些原因任务B执行超时,当它在时刻5执行完后,任务A又再次就绪,任务A也因为某些原因执行超时,当其在时刻7执行完毕,任务C得以运行,而任务C运行一个周期,在时刻8任务B又就绪将任务C抢占,这样任务A、B、C按照优先级抢占运行,最终导致任务C在其截至时间,即时刻15前并没有执行完。
而任务C本身并没有超时现象,是由于任务A、B的超时导致了任务C截至时间未言旨完成。3)、所以根据以上示例分析,定时保护应该在系统级,对各个任务和中断的执行都进行监测,才能保证系统中的各任务/中断保持独立,不相互影响,超时不扩散。而一个任务或中断是否能够满足它的截止时间是由上面提到的“某些原因”所决定的,“某些原因”具体包括(1)系统中任务/中断的执行时间,执行时间过长影响其他任务或者中断的执行;(2)系统中任务/中断的到达间隔时间,任务或中断切换的频率过高,间隔时间过短,影响任务或中断的正确执行。4)、当任务或者中断有违规或超时现象发生时,操作系统可以采取终止任务或者中断,以避免超时扩散到其他任务,也方便定位出现问题的任务或者中断,满足AUTOSAR OS 规范有关定时保护的要求。

发明内容
本发明的目的在于克服现有技术的不足,提供一种嵌入式操作系统定时保护的实现方法,使任务/中断的执行时间以及到达时间间隔不超过预算值,避免影响其他任务或中断的正确执行。为实现上述目的,本发明嵌入式操作系统定时保护的实现方法,其特征在于,包括以下步骤(1)、在任务控制块中,增加任务剩余执行时间元素以及任务上次激活时刻元素; 在任务控制块中任务配置信息表指针指向的任务配置信息表中,增加任务执行预算时间以及任务到达预算时间间隔,任务剩余执行时间的初始值等于任务执行预算时间;在中断控制块中,增加中断剩余执行时间元素以及中断上次激活时刻元素;在中断控制块中中断配置信息表指针指向的中断配置信息表中,增加中断执行预算时间以及中断到达预算时间间隔,中断剩余执行时间的初始值等于中断执行预算时间;O)、执行的定时保护选择系统时钟模块的一个通道作为执行的定时保护通道2. 1)对于任务,在任务即将进入运行态之前,将该任务的任务控制块中记录任务剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,开始执行的定时保护监测任务在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该任务的执行预算时间到达,定时保护通道产生中断,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果任务在其执行预算时间到之前正常执行完毕,说明该任务并没有超过其执行预算时间,则恢复该任务控制块中的任务剩余执行时间为其任务配置信息表中静态配置的任务执行预算时间;如果任务在其执行过程中被抢占,由运行态切换到就绪态时,则将定时保护通道比较寄存器中的数值减去计数器的计数值,得到任务剩余执行时间,并存入该任务的任务控制块中的任务剩余执行时间元素中;
2.2)对于中断,当中断触发并且处理器响应中断后,首先进入操作系统的中断服务程序,在跳转到具体对应的中断服务程序之前,将该中断的中断控制块中记录中断剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中, 开始执行的定时保护监测中断在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该中断的执行预算时间到达,定时保护通道产生中断,该产生中断的优先级高于当前正在执行的中断并且抢占后者,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果中断在其执行预算时间到之前正常执行完毕,说明该中断并没有超过其执行预算时间,则恢复该中断控制块中的中断剩余执行时间为其中断配置信息表中静态配置的中断执行预算时间;如果中断在其执行过程中被抢占,由运行态切换到就绪态时,则将定时保护通道比较寄存器中的数值减去计数器的计数值,得到中断剩余执行时间,并存入该中断的中断控制块中的中断剩余执行时间元素中;(3)、任务和中断的到达时间间隔的定时保护在任务或中断就绪或到达时,对本次就绪或到达时间减去任务控制块或中断控制块中上次激活时刻,得到本次到达时间间隔,并与任务配置信息表或中断配置信息表中的任务或中断到达预算时间间隔进行比较,如果小于任务或中断到达预算时间间隔,则阻止该任务或中断就绪。本发明的发明目的是这样实现的在本发明中,定时保护需要监测的内容及其约束条件有每个任务的执行时间不能超过系统为该任务所配置的执行时间预算,即任务配置信息表中静态配置的任务执行预算时间,每个任务的就绪或到达间隔时间不能小于系统为该任务所配置的任务到达间隔预算,即任务配置信息表中静态配置的任务到达预算时间间隔;每个中断的执行时间不能超过系统为该中断所配置的执行时间预算,即中断配置信息表中静态配置的中断执行预算时间,每个中断的就绪或到达间隔时间不能小于系统为该中断所配置的中断到达间隔预算, 即中断配置信息表中静态配置的中断到达预算时间间隔。本发明通过对任务或中断控制块中剩余执行时间、执行时间预算时间以及系统时钟模块定时保护通道计数器、比较寄存器中的值进行计算、比较,并进行相应的操作,使其不超过系统为该任务或中断所配置的执行时间预算,同时,将就绪或到达时间减去任务控制块或中断控制块中上次激活时刻,并与配置信息表中到达预算时间间隔进行比较,如果超过任务或中断到达预算时间间隔,则阻止该任务或中断就绪。这样实现了嵌入式操作系统定时保护,避免执行时间超时和到达频率过高影响其他任务或中断正确执行情况的发生。


图1是现有技术的任务执行过程示意图;图2是系统时钟模块硬件功能示意图;图3是任务状态变迁及相关的定时保护操作逻辑示意图;图4是中断的状态变迁及相关的定时保护操作逻辑示意图5是任务控制块及配置信息表的一种具体实施结构图6是中断控制块及配置信息表的一种具体实施结构图7是系统ID栈示意图8是有定时保护情况下,系统运行过程中任务状态的变化示意图9是t0时刻的系统ID栈示意图10是tl时刻的系统ID栈示意图11是t2时刻的系统ID栈示意图12是t3时刻的系统ID栈示意图13是t4时刻的系统ID栈示意图14是t5时刻的系统ID栈示意图15是t6时刻的系统ID栈示意图16是t7时刻的系统ID栈示意图17是伪时刻的系统ID栈示意图18是110时刻的系统ID栈示意图19是til时刻的系统ID栈示意图20是无定时保护情况下,系统运行过程中任务状态的变化示意图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例为了实现嵌入式实时操作系统的定时保护的功能,满足AUT0SAR规范对于汽车电子嵌入式操作系统的特殊功能要求。在本实施例中,在MPC5634平台上设计实现了一种支持定时保护的方法,MPC5634是一种用于汽车电子领域的嵌入式微处理器。在本发明中,定时保护功能需要监测的内容及其约束条件有(1)、每个任务的执行时间不能超过系统为该任务所配置的执行预算时间;(2)、每个任务的到达间隔时间不能小于系统为该任务所配置的任务到达预算时间间隔;(3)、每个中断的执行时间不能超过系统为该中断所配置的执行预算时间;(4)、每个中断的到达间隔时间不能小于系统为该中断所配置的中断到达预算时间间隔。在本实施例中,在MPC5634平台上,本发明嵌入式操作系统定时保护的实现方法采取的策略是⑴利用MPC5634的系统时钟模块(system timer module,简称STM)来协助完成对以上所列各项内容的监测。( 当监测到上述任何一种时间超出其约束条件时,采取相应的保护措施,实现嵌入式操作系统定时保护。图2是系统时钟模块硬件功能示意图。在本实施例中,如图2所示,MPC5634的系统时钟模块有多个通道(只画出了一个, 其他的相同),统一用系统时钟的1-256倍分频做时钟源,系统时钟模块中的计数器是以递增的方式计数,每个通道有自己的比较寄存器,当计数器计数到比较寄存器的值时,可以产生对应的中断,而且比较寄存器的值是可以在系统时钟模块的工作过程中动态修改的。具体示意请参考图2,其中中断寄存器用于标记该通道是否产生中断,而控制寄存器用于存储通道是否打开的状态。对于AUTOSAR OS的定时保护监测部分设计思路如下1、对于执行时间的监测,包括任务执行时间和中断执行时间统一用同一个通道, 因为无论是任务还是中断,在任何一个时刻都只有一个对象在CPU中执行,因此,可以共用一个系统时钟模块通道来控制其执行时间。图3是任务状态变迁及相关的定时保护操作逻辑示意图。(1)对于任务,如图3所示,任务从就绪态到运行态,执行时间保护开始或继续。在任务即将进入运行态之前,将该任务的任务控制块中记录任务剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,开始执行的定时保护监测任务在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该任务的执行预算时间到达,定时保护通道产生中断,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果任务在其执行预算时间到之前正常执行完毕,包括进入等待态或挂起态,说明该任务并没有超过其执行预算时间,则恢复该任务控制块中的任务剩余执行时间为其任务配置信息表中静态配置的任务执行预算时间,执行保护时间终止;如果任务在其执行过程中被抢占,由运行态切换到就绪态时,执行保护时间暂停, 将定时保护通道比较寄存器中的数值减去计数器的计数值,得到任务剩余执行时间,并存入该任务的任务控制块中的任务剩余执行时间元素中。图4是中断的状态变迁及相关的定时保护操作逻辑示意图。(2)对于中断,如图4所示,任务从就绪态到运行态,执行时间保护开始或继续。当中断触发并且处理器响应中断后,首先进入操作系统的中断服务程序,在跳转到具体对应的中断服务程序之前,将该中断的中断控制块中记录中断剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,开始执行的定时保护监测中断在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该中断的执行预算时间到达,定时保护通道产生中断,该产生中断的优先级高于当前正在执行的中断并且抢占后者,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果中断在其执行预算时间到之前正常执行完毕,进入未激活状态,说明该中断并没有超过其执行预算时间,则该中断退出的时候,恢复该中断控制块中的中断剩余执行时间为其中断配置信息表中静态配置的中断执行预算时间,执行时间保护终止;如果中断在其执行过程中被抢占,即在系统允许中断嵌套的前提下,被更高优先级的中断抢占,由运行态切换到就绪态时,执行时间保护暂停,将定时保护通道比较寄存器中的数值减去计数器的计数值,得到中断剩余执行时间,并存入该中断的中断控制块中的中断剩余执行时间元素中。2、对于任务和中断的到达时间间隔的监控,不需要与系统时钟模块结合使用其中断的方法。如图3、4所示,在任务或中断就绪/到达时,对本次就绪距离上次就绪/到达的时间的差值进行计算,并与该任务或中断所配置的到达预算时间间隔进行比较,如果小于任务或中断到达预算时间间隔,则阻止任务或中断就绪或激活。接下来具体说明与执行时间和到达间隔相关的定时保护功能的数据结构及算法。图5是任务控制块及配置信息表的一种具体实施结构图。为了实现定时保护的要求,对传统的任务控制块的数据结构进行了改进,在任务控制块中增加了记录任务剩余执行时间的元素。由于操作系统要求是完全静态配置的,因此在数据结构的设计上,将配置相关的信息独立出来,专门放在任务配置信息表中,在该任务配置信息表中记录任务所允许的最大执行时间,即任务执行预算时间以及任务到达预算时间间隔,任务剩余执行时间的初始值等于任务执行预算时间。在本实施例中,如图5所示,有关任务控制块及其任务配置信息表中的元素说明如下configTable 为任务配置信息表指针,通过它可以获取任务的一些静态配置的信息;inFIT 用于记录任务是否处于FIT上下文中;FIT是fixed-interval timer简写,为一种系统时钟,定时产生异常,用于操作系统时钟,按时激活周期性任务;任务可以分为两种类型,一种是由FIT触发的周期性任务,则任务在执行过程中其实是处在FIT的上下文中的。另一种是零星任务且不是由FIT触发的任务激活的任务,这样的任务不处于FIT 的上下文中。对于以上两种不同类型的任务,在定时保护的过程中要区别对待。executionTime 用于记录该任务的剩余执行时间,在初始化时,每个任务控制块中的该项都被初始化为配置中的executionBudget。当任务每次由就绪态到运行态时,都将任务控制块中的该项与系统时钟模块定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,用于监测该任务的执行。当任务被抢占由运行态到就绪态时,根据任务已经执行的时间,计算任务的剩余执行时间,赋给该任务控制块中的该项。当任务正常执行完毕,未出现超时现象,由运行态转为等待态或挂起态时,将该项记录值重新初始化为配置的执行预算时间。activatePoint 用于监控任务的到达时间间隔,记录该任务上次激活时刻。该项的值在初始化时初始为-1,在每次由挂起态或等待态转为就绪态时,计算跟上次进入就绪态的时间差,与该任务配置中的到达时间间隔比较,来完成监测任务到达率的目的。任务配置信息表中的信息都是通过用户静态配置的,在任务的运行过程中是不会改变的,其相关元素的说明如下executionBudget 任务执行预算时间。用户为该任务配置的可执行时间,如果任务执行超过这个值将被终止;timeFrame 任务到达预算时间间隔。用户为该任务配置的到达间隔的最短时间, 如果任务的到达间隔小于这个值将被阻止就绪。图6是中断控制块及配置信息表的一种具体实施结构图。中断控制块的相关元素说明如下configTable 指向中断的配置信息表的指针,通过它可以获取中断的一些静态配
直fe息;
executionTime 用于记录该中断的剩余执行时间,在初始化时每个中断控制块中的该项都被初始化为配置中的executionBudget。每次该中断触发时,都将中断控制块中的该项与系统时钟模块定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,用于监测该中断的执行。当中断被抢占,由运行态到就绪态时,根据中断已经执行的时间,计算中断的剩余执行时间,赋给该中断控制块中的该项。当中断正常执行完毕,未出现超时现象,将该记录值重新初始化为配置的执行时间预算。activatePoint 用于监控中断的到达时间间隔,记录该中断上次激活时刻。该项的值在初始化时初始为-1,在每次中断触发,由未激活到就绪时,计算跟上次触发的时间差,与该中断配置中的到达时间间隔比较,来完成监测中断到达率的目的。中断配置信息表中的信息都是通过用户静态配置的,在中断的运行过程中是不会改变的,其相关元素的说明如下executionBudget 中断执行预算时间。用户为该中断配置的可执行时间,如果中断执行超过这个值将被终止;timeFrame 中断到达预算时间间隔。用户为该中断配置的到达间隔的最短时间, 如果中断的到达间隔小于这个值将被阻止就绪。图7是系统ID栈示意图。由于中断抢占任务后,需要恢复到原任务上下文过程中,所以需要记录系统中任务或中断运行的次序,以判断接下来要运行的对象是谁。这样就需要维护一个系统的ID栈来记录系统中运行任务或中断的先后顺序。在本实施例中,如图7所示,ID栈的实现采取的是静态数组的方式,在编译时就已确定其大小,ID栈的大小是系统中所有任务激活次数的和再加上中断个数的和,而栈顶指针始终指向当前的空闲位置。入栈操作时,先对栈顶指针所指位置的内容进行修改,将入栈任务或中断的ID加入,再将栈顶指针加1 ;出栈操作时则先将栈顶指针减1,再对栈顶指针现在所指位置内容清零。对于任务和中断ID的区分采取的方法是让其ID分布在不同的数段,中断的ID即为其中断向量号,在0到IOM之间,而任务ID为其原来的任务ID号加上 1024,其值在1024到2048之间。对于执行时间保护和到达间隔以及ID栈的操作需要完成以下操作1、任务或中断由就绪态转为运行态首先通过任务或中断ID不同来判断要运行的是任务还是中断,再判断ID栈中是否有该任务或中断,如果有,则说明该任务或中断之前运行过,没运行完又被抢占了,此时, 需要将该任务或中断ID由栈中的位置调整到栈顶的位置;如果该ID栈中没有该任务或中断,则说明该任务或中断之前没有未运行完的实体,将该任务或中断ID压入栈中;获得系统时钟模中计数器当前的计数值,与该任务或中断的控制块中的剩余执行时间executionTime相加,得到该任务或中断到期的时间,写到定时保护通道的比较寄存器中。2、任务或中断由运行态转为就绪态用比较寄存器的值减去当前计数器的值计算出该任务或中断的剩余执行时间,把该值记录在该任务或中断的控制块的剩余执行时间executionTime中。3、任务或中断由运行态转为挂起态或等待态、未激活态
将该任务或中断配置信息表中的执行预算时间executionBudget赋给任务或中断控制块中的剩余执行时间executionTime,将该任务或中断控制块中的可执行剩余执行时间还原成配置的执行预算时间值;将该任务或中断的ID弹出栈。4、任务或中断由挂起态或等待态、未激活态转为就绪态1)、检查该任务或中断控制块中记录的上次激活时刻activatePoint是否大于0,如果不大于0说明是第一次激活,则将计数器当前计数值记录在该实体控制块中的 activatePoint;2)、如果大于0说明不是第一次激活,则用计数器当前计数值减去该任务或中断控制块中的上次激活时刻activatePoint中的值,得到该任务或中断本次激活距离上次激活的时间。3)用这个时间值与该任务或中断配置的到达预算时间间隔timeFrame比较,如果小于到达预算时间间隔timeFrame,则说明该任务或中断到达率太高,则拒绝此次激活,如果大于到达预算时间间隔timeFrame,则该任务或中断可正常就绪。4)将计数器当前计数值记录在该中断或任务控制块中的任务上次激活时刻 activatePoint 中。5、当任务或中断执行出现超时现象,系统定时模块定时保护通道产生中断时1)、首先进入中断派发程序,中断派发程序根据中断向量号跳转到定时保护通道的中断服务程序中,该服务程序除了清除该通道的中断标志还获取用户对该超时现象所希望采取的动作。2)、再返回到中断派发程序中,根据需要终止的任务或中断的类型来完成终止操作2. 1)如果是非FIT上下文中的任务,则需要释放任务所持有的所有资源,终止任务并进行重新调度。2.2)如果是FIT上下文中的任务,则在释放任务所持有的所有资源,终止任务后不进行重调度,而是回到FIT的派发程序中,完成返回到FIT抢占的实体上下文中。2.3)如果是中断,则需要释放中断所持有的所有资源,并返回到中断之前的上下文中。应用实例通过本发明的方法实现了 AUT0SAR操作系统对于定时保护的要求。下面是一个实际的例子,说明了在一个系统中多个任务运行,有些任务或中断执行出现超时的情况,或者有些任务或中断到达时间间隔过短,以及在这个过程中ID栈以及系统定时模块中定时保护通道寄存器的变化情况。在这个例子中,系统中共有3个任务Tl T3,这3个任务的优先级从高到低依次是任务Tl优先级最高、任务T2优先级次之、任务T3最低,还有2个中断II、12,中断12 的优先级高于中断II,具体如表2所示
权利要求
1.一种嵌入式操作系统定时保护的实现方法,其特征在于,包括以下步骤(1)、在任务控制块中,增加任务剩余执行时间元素以及任务上次激活时刻元素;在任务控制块中任务配置信息表指针指向的任务配置信息表中,增加任务执行预算时间以及任务到达预算时间间隔,任务剩余执行时间的初始值等于任务执行预算时间;在中断控制块中,增加中断剩余执行时间元素以及中断上次激活时刻元素;在中断控制块中中断配置信息表指针指向的中断配置信息表中,增加中断执行预算时间以及中断到达预算时间间隔,中断剩余执行时间的初始值等于中断执行预算时间;O)、执行的定时保护选择系统时钟模块的一个通道作为执行的定时保护通道2.1)对于任务,在任务即将进入运行态之前,将该任务的任务控制块中记录任务剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中, 开始执行的定时保护监测任务在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该任务的执行预算时间到达,定时保护通道产生中断,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果任务在其执行预算时间到之前正常执行完毕,说明该任务并没有超过其执行预算时间,则恢复该任务控制块中的任务剩余执行时间为其任务配置信息表中静态配置的任务执行预算时间;如果任务在其执行过程中被抢占,由运行态切换到就绪态时,则将定时保护通道比较寄存器中的数值减去计数器的计数值,得到任务剩余执行时间,并存入该任务的任务控制块中的任务剩余执行时间元素中;·2. 2)对于中断,当中断触发并且处理器响应中断后,首先进入操作系统的中断服务程序,在跳转到具体对应的中断服务程序之前,将该中断的中断控制块中记录中断剩余执行时间与定时保护通道中计数器的计数值相加,并存入定时保护通道的比较寄存器中,开始执行的定时保护监测中断在执行过程中,计数器以递增的方式计数,当计数器的计数值与比较寄存器中暂存的数值相同时,该中断的执行预算时间到达,定时保护通道产生中断,该产生中断的优先级高于当前正在执行的中断并且抢占后者,在该产生中断的服务程序中进行用户所需要的保护处理操作;如果中断在其执行预算时间到之前正常执行完毕,说明该中断并没有超过其执行预算时间,则恢复该中断控制块中的中断剩余执行时间为其中断配置信息表中静态配置的中断执行预算时间;如果中断在其执行过程中被抢占,由运行态切换到就绪态时,则将定时保护通道比较寄存器中的数值减去计数器的计数值,得到中断剩余执行时间,并存入该中断的中断控制块中的中断剩余执行时间元素中;(3)、任务和中断的到达时间间隔的定时保护在任务或中断就绪或到达时,对本次就绪或到达时间减去任务控制块或中断控制块中上次激活时刻,得到本次到达时间间隔,并与任务配置信息表或中断配置信息表中的任务或中断到达预算时间间隔进行比较,如果小于任务或中断到达预算时间间隔,则阻止该任务或中断就绪。
2.根据权利要求1所述的嵌入式操作系统定时保护的实现方法,其特征在于,定时保护通道产生中断时,还要进行以下步骤1)、首先进入中断派发程序,中断派发程序根据中断向量号跳转到定时保护通道的中断服务程序中,该服务程序除了清除该通道的中断标志还获取用户对该超时现象所希望采取的动作。2)、再返回到中断派发程序中,根据需要终止的任务或中断的类型来完成终止操作·2. 1)如果是非FIT上下文中的任务,则需要释放任务所持有的所有资源,终止任务并进行重新调度。·2. 2)如果是FIT上下文中的任务,则在释放任务所持有的所有资源,终止任务后不进行重调度,而是回到FIT的派发程序中,完成返回到FIT抢占的实体上下文中。·2.3)如果是中断,则需要释放中断所持有的所有资源,并返回到中断之前的上下文中。
3.根据权利要求1所述的嵌入式操作系统定时保护的实现方法,其特征在于,所述的任务或中断运行的先后顺序用ID栈来记录ID栈的实现采取的是静态数组的方式,在编译时就已确定其大小,ID栈的大小是系统中所有任务激活次数的和再加上中断个数的和,而栈顶指针始终指向当前的空闲位置;入栈操作时,先对栈顶指针所指位置的内容进行修改,将入栈任务或中断的ID加入,再将栈顶指针加1 ;出栈操作时则先将栈顶指针减1,再对栈顶指针现在所指位置内容清零。
全文摘要
本发明公开了一种嵌入式操作系统定时保护的实现方法,通过对任务或中断控制块中剩余执行时间、执行时间预算时间以及系统时钟模块定时保护通道计数器、比较寄存器中的值进行计算、比较,并进行相应的操作,使其不超过系统为该任务或中断所配置的执行时间预算,同时,将就绪或到达时间减去任务控制块或中断控制块中上次激活时刻,并与配置信息表中到达预算时间间隔进行比较,如果小于任务或中断到达预算时间间隔,则阻止该任务或中断就绪。这样实现了嵌入式操作系统定时保护,避免执行时间超时和到达频率过高影响其他任务或中断正确执行情况的发生。
文档编号G05B19/048GK102339029SQ20111018168
公开日2012年2月1日 申请日期2011年6月30日 优先权日2011年6月30日
发明者李允 , 陈丽蓉, 高嵊昊 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1