CN103631695A - 时间监测方法及装置 - Google Patents
时间监测方法及装置 Download PDFInfo
- Publication number
- CN103631695A CN103631695A CN201310706393.3A CN201310706393A CN103631695A CN 103631695 A CN103631695 A CN 103631695A CN 201310706393 A CN201310706393 A CN 201310706393A CN 103631695 A CN103631695 A CN 103631695A
- Authority
- CN
- China
- Prior art keywords
- time
- counting module
- software counting
- queue
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种时间监测方法及装置,该方法包括:接收第一时间监测指示;根据预先设置的时间参数与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数,所述第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种;根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号。采用本发明实施例提供的方法及装置可以实现监测时间的具体实现方法。
Description
技术领域
本发明涉及嵌入式系统技术领域,更具体的说,是涉及时间监测方法及装置。
背景技术
随着嵌入式控制器的快速发展,应用程序对嵌入式实时操作系统的要求越来越高,因为嵌入式实时操作系统可以为嵌入式控制器中的所有应用程序提供一个实时的运行环境。
在以嵌入式实时操作系统为软件架构开发应用程序时,需要对应用程序运行过程中的各类时间参数进行监测,对各类时间参数进行监测包括:对任务\第二类ISR(Interrupt Service Routine,中断服务函数)的执行时间进行监测、对任务\第二类ISR的内部到达时间进行监测、对资源锁定时间进行监测以及对中断关闭时间进行监测中的一种或多种的保护。而现有技术中并未给出监测时间的具体实现方法。
发明内容
有鉴于此,本发明提供了一种时间监测方法及装置,以克服现有技术中没有监测时间的具体实现方法的问题。
为实现上述目的,本发明提供如下技术方案:
一种时间监测方法,包括:
接收第一时间监测指示;
根据预先设置的时间参数与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数,所述第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种;
根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
一种时间监测装置,包括:
接收模块,用于接收第一时间监测指示;
获得模块,用于根据预先设置的时间参数与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数,所述第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种;
第一确定模块,用于根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
经由上述的技术方案可知,与现有技术相比,本发明实施例提供了一种时间监测方法,由于预先设置了时间参数与第一时间监测指示的对应关系,当接收到第一时间监测指示时,可以根据预先设置的时间参数与第一时间监测指示的对应关系,获得第一时间监测指示对应的第一时间参数,第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种,根据第一时间参数与第一时间监测指示对应的实际运行时间,就可以获知实际运行时间是否违反与第一时间参数对应的要求,所以可以根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号。从而实现了监测时间的具体实现方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种时间监测方法的流程示意图;
图2为本发明实施例提供的一种时间保护参数结构体的结构示意图;
图3为本发明实施例提供的一种时间监测方法中根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的一种实现方式的方法流程示意图;
图4为本发明实施例提供的一种时间监测方法中根据软件计数模块记录的实际运行时间与上述比较值,确定是否发出报错信号的一种实现方式的方法流程示意图;
图5为本发明实施例提供的一种时间监测方法中存储比较值的一种实现方法的方法流程示意图;
图6为本发明实施例提供的一种时间监测方法中软件计数模块的结构示意图;
图7为本发明实施例提供的一种时间监测方法中根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的又一实现方式的方法流程示意图;
图8为本发明实施例提供的一种没有资源锁定时间监测功能的嵌入式实时操作系统中资源锁定时间的过程示意图;
图9为现有技术中没有中断关闭时间监测功能的嵌入式实时操作系统中的中断关闭时间的结构示意图;
图10为本发明实施例提供的一种时间监测装置的结构示意图;
图11为本发明实施例提供的一种时间监测装置中第一确定模块的一种实现方式的结构示意图;
图12为本发明实施例提供的一种时间监测装置中的存储单元的一种实现方式的结构示意图;
图13为本发明实施例提供的一种时间监测装置中第一确定模块的另一实现方式的方法流程示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词的说明、简写或缩写总结如下:
AUTOSAR:AUTomotive Open System Architecture,汽车开发系统架构;
AUTOSAR OS:AUTOSAR Specification of Operating System,符合AUTOSAR规范的嵌入式实时操作系统;
OSEK:Offene Systeme und deren Schnittstellen für die Elektronik inKraftfahrzeugen,用于汽车电子的、带有接口的开放式系统。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图1,为本发明实施例提供的一种时间监测方法的流程示意图,该方法包括:
步骤S101:接收第一时间监测指示。
第一时间监测指示是对当前接收到的时间监测指示的统称,第一时间监测指示可以包括一个或多个时间监测指示。
第一时间监测指示可以为内部到达时间监测指示、执行时间监测指示、资源锁定时间监测指示和中断关闭时间监测指示中的一种或多种。
为了本领域技术人员更加理解本发明实施例中的第一时间监测指示,下面对生成上述第一时间监测指示的时机进行详细说明,本发明实施例提供但不限于以下场景。
一、内部到达时间监测指示。
内部到达时间监测指示可以为任务和/或第二类ISR的内部到达时间监测指示。嵌入式实时操作系统中同一时刻可能需要对一个或多个任务/第二类ISR的内部到达时间进行检测。
假设嵌入式实时操作系统为任务或第二类ISR的内部到达时间监测设置的内部到达时间监测的接口函数为StartTimeFrame,调用此函数就会生成任务内部到达时间监测指示和/或第二类ISR内部到达时间监测指示,此接口函数的调用时间如下:
任务由终止状态进入到就绪状态、任务由等待状态进入到就绪状态或第二类ISR发生,且嵌入式实时操作系统执行该第二类ISR。
二、执行时间监测指示。
执行时间监测指示可以为任务或第二类ISR的执行时间监测指示。
无论嵌入式实时操作系统中包括多少任务或多少第二类ISR,由于嵌入式实时操作系统在同一时刻只能执行一个任务或一个第二类ISR,所以嵌入式实时操作系统对任务或第二类ISR的执行时间监测,是对当前正在执行的任务或第二类ISR的执行时间进行监测。
当嵌入式实时操作系统开始处理任务或第二类ISR时,生成任务或第二类ISR执行时间监测指示。
三、资源锁定时间监测指示。
嵌入式实时操作系统中同一时刻可能存在一个或多个资源处于锁定状态。所以嵌入式实时操作系统需要对一个或多个资源对应的资源锁定时间分别进行监测。
任务或第二类ISR在执行过程中可能会调用资源,这时资源就会被任务或第二类ISR占用,此时的资源处于锁定状态。
当任务或第二类ISR调用资源时,生成与该被调用的资源对应的资源锁定时间监测指示。
四、中断关闭时间监测指示。
中断关闭时间监测指示可以包括全部中断关闭时间监测指示和第二类中断关闭时间监测指示中的一种或多种。
假设嵌入式实时操作系统为全部中断或第二类中断(第二类中断对应的中断函数为第二类ISR,当第二类中断关闭时,第二类ISR就不能被执行)的关闭时间设置的中断关闭时间监测的接口函数为StartAllIntLockBudget/StartOSIntLockBudget,调用此函数就会生成全部中断关闭时间监测指示或第二类中断关闭时间监测指示中的一种或多种,此接口函数的调用时间如下:当全部中断或第二类中断被关闭时,调用StartAllIntLockBudget/StartOSIntLockBudget。
步骤S102:根据预先设置的时间参数与时间监测指示的对应关系,获得第一时间监测指示对应的第一时间参数。
第一时间参数是对第一时间监测指示对应的时间参数的统称。
第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种。
执行时间参数可以为任务的执行时间参数或第二类ISR的执行时间参数;内部到达时间参数可以为任务的内部到达时间参数和/或第二类ISR的内部到达时间参数;中断关闭时间参数可以为第二类中断关闭时间参数或所有中断的中断关闭时间参数。
任务或第二类ISR的执行时间参数是指嵌入式实时操作系统在运行过程中对各个任务或第二类ISR的实际执行时间进行监控,各个任务或第二类ISR的实际运行时间不能超出其对应的执行时间参数;任务和/或第二类ISR的内部到达时间参数是指嵌入式实时操作系统在运行过程中对各个任务或第二类ISR的执行间隔时间进行监控,该执行时间间隔的实际值不能低于其内部到达时间参数;资源锁定时间保护是指嵌入式实时操作系统在运行过程中对任务或第二类ISR占用资源的时间进行监控,任务或第二类ISR占用资源的时间的实际值不能超过其资源锁定时间;中断关闭时间参数是指嵌入式实时操作系统对任务或第二类ISR在运行过程中,中断关闭时间的监测,关闭中断的实际值不能超出中断关闭时间参数。
可以理解的是,预先设置的时间参数与时间监测指示的对应关系的方法有多种,本发明实施例提供但不限于以下方法。
嵌入式实时操作系统中的各个任务的名称,各个任务的执行时间参数和内部到达时间参数,各个第二类ISR的名称,各个第二类ISR的执行时间参数和内部到达时间参数,各个资源的名称,各个资源的资源锁定时间,中断的关闭时间,均可以由人为设置。可以在嵌入式实时操作系统中建立时间保护参数结构体,时间保护参数结构体中可以包括多个数组。通过建立数组以及数组索引,来建立各个的时间参数与时间监测指示之间的关联。
可以将任务的执行时间参数和第二类ISR的执行时间参数存储在同一数组中,也可以存储在不同的数组中,可以将任务的内部到达时间参数和第二类ISR的内部到达时间参数存储在同一数组中,也可以存储在不同的数组中。中断关闭时间参数包括全部中断关闭时间参数和/或第二类中断关闭时间参数,这两个参数可以存储在同一数组中,也可以存储在不同的数组中,下面以存在不同的数组中为例进行说明。
将任务的执行时间参数存储至第一数组,可以将各个任务的名称分别作为第一数组中各个元素的索引,也可以将为各个任务分配的数字标识分别作为第一数组中各个元素的索引(该索引为上述时间监测标识),第一数组元素的个数为人为设置的任务的个数,每一任务对应一个数组索引。该第一数组整体也有一个索引,该索引可以用于标识第一数组存储的参数类型为执行时间参数类型。
将第二类ISR的执行时间参数存储至第二数组,可以将各个第二类ISR的名称分别作为第二数组中各个元素的索引,也可以将为各个第二类ISR分配的数字标识分别作为第二数组中各个元素的索引(该索引为上述时间监测标识),第二数组元素的个数为人为设置的任务的个数,每一第二类ISR都有一个数组索引。该第二数组整体也有一个索引,该索引可以用于标识第二数组存储的参数类型为执行时间参数类型。
将任务的内部到达时间参数存储至第三数组,可以将各个任务的名称分别作为第三数组中各个元素的索引,也可以将为各个任务分配的数字标识分别作为第三数组中各个元素的索引(该索引为上述时间监测标识),第三数组元素的个数为人为设置的任务的个数,每一任务都有一个数组索引。该第三数组整体也有一个索引,该索引可以用于标识第三数组存储的参数类型为内部到达时间参数类型。
将第二类ISR的内部到达时间参数存储至第四数组,可以将各个第二类ISR的名称分别作为第四数组中各个元素的索引,也可以将为各个第二类ISR分配的数字标识分别作为第四数组中各个元素的索引(该索引为上述时间监测标识),第四数组元素的个数为人为设置的任务的个数,每一第二类ISR都有一个数组索引。该第四数组整体也有一个索引,该索引可以用于标识第四数组存储的参数类型为内部到达时间参数类型。
将资源锁定时间参数存储至第五数组,可以将各个资源的名称分别作为第五数组中各个元素的索引,也可以将为各个资源分配的数字标识分别作为第五数组中各个元素的索引(该索引为上述时间监测标识),第五数组元素的个数为人为设置的资源的个数,每一资源都有一个数组索引。该第五数组整体也有一个索引,该索引可以用于标识第五数组存储的参数类型为资源锁定时间参数类型。
将全部中断关闭时间参数存储至第六数组中,该第六数组中可以包括一个元素,该元素的索引为该第二类中断关闭时间参数对应的名称。
将第二类中断关闭时间参数存储至第七数组中,该第七数组中可以包括一个元素,该元素的索引为该第二类中断关闭时间参数对应的名称。
请参阅图2,为本发明实施例提供的一种时间保护参数结构体的结构示意图。
从图2所示的时间保护参数结构体2中可知,嵌入式实时操作系统中一共有8个任务,所以第一数组201中至少包括8个元素,图2中示出了8个元素,这8个元素中分别存储了这8个任务对应的执行时间参数。第三数组203中至少包括8个元素,图2中的第三数组203只示出了分别存储内部到达时间的8个元素。
嵌入式实时操作系统中一共有6个第二类ISR,所以第二数组202至少包括6个元素,图2中示出了分别存储了有第二类ISR对应的执行时间参数的6个元素。第四数组204中至少包括6个元素,图2中示出了分别存储有第二ISR内部到达时间的6个元素。
嵌入式实时操作系统中一共有4个资源,所以第五数组205中至少包括4个元素,图2中示出了分别存储有资源锁定时间参数的4个元素。
图2中还示出了存储有全部中断关闭时间参数的第六数组206,以及存储有第二类ISR关闭时间参数的第七数组207。
第六数组206和第七数组207中的元素个数可以为1。
图2中同一数组不同元素用虚线进行区分。
当接收到第一时间监测指示时,可以从上述时间保护参数结构体中获得“预先设置的时间参数与时间监测指示的对应关系”,再进一步获得第一时间监测指示对应的第一时间参数。
步骤S103:根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
当第一时间参数为内部到达时间参数时,第一时间监测指示对应的实际运行是指内部到达时间的实际运行时间,当内部到达时间的实际运行时间不小于内部到达时间参数时,不发出报错信号,当内部到达时间的实际运行值小于内部到达时间参数时,发出报错信号。
当第一时间参数为执行时间参数时,第一时间监测指示对应的实际运行是指执行时间的实际运行值,当执行时间的实际运行值不大于执行时间参数时,不发出报错信号,当执行时间的实际运行值大于执行时间参数时,发出报错信号。
当第一时间参数为资源锁定时间参数时,第一时间监测指示对应的实际运行是指资源锁定时间的实际运行值,当资源锁定时间的实际运行值不大于资源锁定时间参数时,不发出报错信号,当资源锁定时间的实际运行值大于资源锁定时间参数时,发出报错信号。
当第一时间参数为中断关闭时间参数时,第一时间监测指示对应的实际运行是指中断关闭时间的实际运行值,当中断关闭时间的实际运行值不大于中断关闭时间参数时,不发出报错信号,当中断关闭时间的实际运行值大于中断关闭时间参数时,发出报错信号。
本发明实施例提供的一种时间监测方法,由于预先设置了时间参数与第一时间监测指示的对应关系,当接收到第一时间监测指示时,可以根据预先设置的时间参数与第一时间监测指示的对应关系,获得第一时间监测指示对应的第一时间参数,第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种,根据第一时间参数与第一时间监测指示对应的实际运行时间,就可以获知实际运行时间是否违反与第一时间参数对应的要求,所以可以根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号。从而实现了监测时间的具体实现方法。
嵌入式实时操作系统中可以同时具备上述监测执行时间的实际运行值、监测内部到达时间的实际运行值、监测资源锁定时间的实际运行值和监测中断关闭时间的实际运行值中的一种或多种功能。
从上述实施例中可知对于同一任务或同一第二类ISR而言,都包括执行时间参数和内部到达时间参数,为了区分同一任务对应的执行时间参数和内部到达时间参数,或为了区分同一第二类ISR对应的执行时间参数和内部到达时间参数,第一时间监测指示可以包括第一时间参数类型,第一时间参数类型可以区分执行时间参数和内部到达时间参数。嵌入式实时操作系统中可以包括一个或多个任务、一个或多个第二类ISR、一个或多个资源,所以第一时间监测指示可以包括第一时间监测标识,可以通过第一时间监测标识区分各个任务、各个第二类ISR、各个资源。所以第一时间监测指示可以包括第一时间参数类型以及第一时间监测标识。本发明实施例提供的一种时间监测方法中“根据预先设置的时间参数值与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数”可以为:根据预先设置的时间参数类型、时间参数与时间监测标识的对应关系,获得与第一时间参数类型和第一时间监测标识对应的第一时间参数。
当第一时间监测指示为资源锁定时间监测指示时,可以不包括时间参数类型,因为资源锁定时间的参数类型为一个。此时第一时间监测指示可以包括第一时间监测标识,不包括第一时间参数类型。
当第一时间监测指示为中断关闭时间监测指示时,可以不包括时间参数类型,因为中断关闭时间监测指示的时间参数类型为一个。此时第一时间监测指示可以包括第一时间监测标识,不包括第一时间参数类型。
请参阅图3,为本发明实施例提供的一种时间监测方法中根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的一种实现方式的方法流程示意图,该方法包括:
步骤S301:存储比较值。
上述比较值为第一时间参数与计数值之和,该计数值为在接收到第一时间监测指示时,软件计数模块的值。
实际运行时间由软件计数模块进行记录。
软件计数模块可以包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,第一软件计数模块用于记录执行时间的实际值,第二软件计数模块用于记录内部到达时间的实际运行时间,第三软件计数模块用于记录资源锁定时间的实际运行时间,第四软件计数模块用于记录中断关闭时间的实际运行时间。
步骤S302:根据软件计数模块记录的实际运行时间与上述比较值,确定是否发出报错信号。
为了本领域技术人员更加理解本发明实施例提供的根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的实现方法,下面举具体例子进行说明。
软件计数模块可以包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,第一软件计数模块用于记录执行时间的实际值,第二软件计数模块用于记录内部到达时间的实际值,第三软件计数模块用于记录资源锁定时间的实际值,第四软件计数模块用于记录中断关闭时间的实际值。比较值包括与第一软件计数模块对应的第一比较值、与第二软件计数模块对应的第二比较值、与第三软件计数模块对应的第三比较值和与第四软件计数模块对应的第四比较值中的一个或多个。实际运行时间包括:执行时间的实际值、内部到达时间的实际值、资源锁定时间的实际值和中断关闭时间的实际值中的一个或多个。
一、第一时间监测指示为执行时间监测指示。
当接收到执行时间监测指示时,将第一软件计数模块的第一计数值与第一时间参数相加,得到第一比较值,并将该第一比较值进行存储。随着时间流逝第一软件计数模块的计数值在不断增加,第一软件计数模块的计数值为执行时间的实际值,当任务或第二类ISR执行完毕后,第一软件计数模块记录的执行时间的实际值不大于第一比较值时,说明任务或第二类ISR的实际执行时间没有超过第一时间参数,该任务或第二类ISR可以被正常处理,此时可以不需要在监测该任务或第二类ISR的实际执行时间,嵌入式实时操作系统可以调用接口函数ResetExecutionBudget关闭对该任务或第二类ISR执行时间的监测。当第一软件计数模块记录的执行时间的实际值大于第一比较值,且任务或第二类ISR未执行完毕,则说明任务或第二类ISR的实际执行时间超过第一时间参数,此时可以发出报错信号,例如执行错误处理函数。
第一软件计数模块可以包括第一软件计数子模块和第二软件计数子模块,第一软件计数子模块用于记录任务的执行时间的实际值,第二软件计数子模块用于记录第二类ISR的执行时间的实际值。相应的,第一比较值包括与第一软件计数子模块对应的第一子比较值,和与第二软件计数子模块对应的第二子比较值。
可以理解的是,在任务或第二类ISR执行的过程中可能被中断打断,这时嵌入式实时操作系统可以调用接口函数StopExecutionBudget暂停对该任务或第二类ISR执行时间的监测,请参阅图4,为本发明实施例提供的一种时间监测方法中根据软件计数模块记录的实际运行时间与上述比较值,确定是否发出报错信号的一种实现方式的方法流程示意图,该方法包括:
步骤S401:接收到中断指示时,将软件计数模块的当前计数值进行存储,并停止监测所述软件计数模块记录的计数值与比较值的大小关系。
当前计数值是指接收到中断指示时,软件计数模块的计数值。
步骤S402:接收到与上述中断指示对应的中断执行完毕指示时,控制软件计数模块的计数值为所述当前计数值,并继续监测软件计数模块记录的计数值与比较值的大小关系。
接收到与上述中断指示对应的中断执行完毕指示时,表明该任务或第二类ISR又继续执行。这时嵌入式实时操作系统可以重新调用接口函数StartExecutionBudget,以获得上述当前计数值。
二、第一时间监测指示为内部到达时间监测指示。
嵌入式实时操作系统中可以包括一个或多个任务、一个或多个第二类ISR。
当接收到内部到达时间监测指示时,将第二软件计数模块的第二计数值与第一时间参数相加,得到第二比较值,并将该第二比较值进行存储。随着时间流逝第二软件计数模块的计数值在不断增加,第二软件计数模块的计数值为内部到达时间的实际值,在任务或第二类ISR产生下一次执行请求时,如果第二软件计数模块记录的内部到达时间的实际值不小于第二比较值,说明任务或第二类ISR的实际内部到达时间超过了第一时间参数,该任务或第二类ISR的下一次执行请求可以被正常处理。此时,新一次的任务或第二类ISR的内部到达时间监测启动,嵌入式实时操作系统可以调用接口函数StartTimeFrame开始对任务或第二类ISR的新一次的内部到达时间的监测。如果第二软件计数模块记录的内部到达时间的实际值小于第二比较值,任务或第二类ISR开始执行,则说明任务或第二类ISR的实际内部到达时间未超过第一时间参数,此时可以发出报错信号,例如执行错误处理函数。
第二软件计数模块可以包括第三软件计数子模块和第四软件计数子模块,第三软件计数子模块可以用于记录任务的内部到达时间的实际值,第四软件计数子模块可以用于记录第二类ISR的内部到达时间的实际值。相应的,第二比较值包括与第三软件计数子模块对应的第三子比较值,和与第四软件计数子模块对应的第四子比较值。
本发明实施例可以利用一个第二软件计数模块对多个任务或多个第二类ISR的内部到达时间进行检测,假设在第二软件计数模块在对第一任务的时间内部达到时间进行监测的过程中,嵌入式实时操作系统又接收到了对第二任务的内部到达时间监测指示,此时将第二软件计数模块的计数值1(计数值1为接收到第二任务的时间内部到达时间监测指示时,第二软件计数模块的计数值)与第二任务对应的第一时间参数1相加,获得第二任务对应的比较值,此时将第二任务对应的比较值与第二软件计数模块记录的第二任务对应的内部到达时间实际值进行比较,以判断是否发出报错信号。详细过程与上述相同,在此不再进行一一赘述。
三、第一时间监测指示为资源锁定时间监测指示。
嵌入式实时操作系统当检测到有资源被锁定时,就会调用接口函数StartResourceBudget,以生成对该资源的资源锁定时间监测指示,嵌入式实时操作系统将第三软件计数模块的第三计数值与第一时间参数之和作为第三比较值,并将第三比较值进行存储,随着时间的流逝,第三软件计数模块的记录的资源锁定时间的实际值不断增加,在资源未被释放之前,当第三软件计数模块记录的资源锁定时间的实际值大于第三比较值时,说明资源锁定时间的实际值肯定大于第一时间参数,此时需要发出报错信号,例如执行错误处理函数。当第三软件计数模块记录的资源锁定时间的实际值小于第三比较值时,说明资源锁定时间小于第一时间参数,此时不需要报错,当该资源被释放时,第三软件计数模块记录的资源锁定时间的实际值仍然不大于第三比较值,则说明资源被正常释放,可以不用在监测该资源对应的资源锁定时间的实际值了。这时嵌入式实时操作系统可以通过调用接口函数StopResourceLockBudget将第三比较值删除,并停止对于该资源锁定时间的实际值的监测。
可以理解的是,嵌入式实时操作系统中,在同一时刻可能有一个或多个资源处于被锁定状态,第三软件计数模块可以同时对这几个资源的锁定时间进行监测,在第三软件计数模块对一个或多个资源锁定时间进行监测的过程中,可能又有一个或多个资源刚刚被锁定,此时也需要对这些资源的锁定时间进行监测。
假设第三软件计数模块对第一资源的资源锁定时间的监测过程中,嵌入式实时操作系统又接收到对第二资源的资源锁定时间监测指示(假设第二任务需要占用第二资源),此时需要将第三软件计数模块的计数值2(计数值2为接收到第二资源的资源锁定时间监测指示时,第三软件计数模块的计数值)与第二资源对应的第一时间参数2相加,获得第二资源对应比较值,此时将第二资源对应比较值与第三软件计数模块记录的第二资源对应的资源锁定时间实际值进行比较,以判断是否发出报错信号。详细过程与上述相同,在此不再进行一一赘述。
上述第三软件计数模块可以对一个或多个资源锁定时间进行监测,在判断是否有实际的资源锁定时间大于资源锁定时间参数时,需要将第三软件计数模块分别与各个资源对应的比较值相比对,从而造成嵌入式实时操作系统效率下降。
为了提高嵌入式实时操作系统的效率,可以将各个处于锁定状态的资源对应的比较值存储在一队列中,且各个比较值按照从小到大的顺序依次存储在队列的队首至队尾。假设队列中已经存储N个比较值,N为大于等于零的整数,上述队列中的各个比较值按照从小到大的顺序依次分别存储于该队列的队首至队尾,请参阅图5,为本发明实施例提供的一种时间监测方法中存储比较值的一种实现方法的方法流程示意图,该方法包括:
步骤S501:按照从上述队列的队头至队尾的顺序,依次判断上述比较值与上述队列中存储的N个比较值的大小关系。
步骤S502:当判断出上述队列中某一比较值不小于上述比较值时,将上述比较值存储至上述某一比较值所在的位置,分别将上述某一比较值至上述队列队尾的比较值的存储位置依次向上述队尾移一个位置。
通过上述方法存储的各个比较值,位于队列队首的比较值最小,从队首至队尾比较值依次增大。这时只需要将第三软件计数模块记录的资源锁定时间的实际值与队列队首的比较值比较即可,所以本发明实施例提供的时间监测方法还可以包括:当软件计数模块记录的实际运行时间不小于上述队列的队首的比较值时,确定发出与所述队列队首的比较值对应的报错信号,并删除所述队列队首的比较值。这时嵌入式实时操作系统可以通过调用接口函数StopResourceLockBudget将上述队列中队首的比较值删除,并停止对队列队首的比较值对应的资源锁定时间的实际值的监测。
四、第一时间监测指示为中断关闭时间监测指示。
当接收到中断关闭时间监测指示时,将第四软件计数模块的第四计数值与第一时间参数之和作为第四比较值,并将第四比较值进行存储,随着时间的流逝,第四软件计数模块的记录的中断关闭时间的实际值不断增加,当第四软件计数模块记录的中断关闭时间的实际值大于第四比较值时,说明中断关闭时间大于第一时间参数,此时需要发出报错信号,例如执行错误处理函数。当第四软件计数模块记录的中断关闭时间的实际值小于第四比较值时,说明中断关闭时间小于第一时间参数,此时不需要报错,当恢复中断时,第四软件计数模块记录的中断关闭时间的实际值仍然不大于第四比较值,则说明中断被正常恢复,可以不用在监测该中断对应的中断关闭时间的实际值了。
中断关闭时间参数可以包括全部中断关闭时间参数和第二类中断关闭时间参数中的一种或多种,当全部中断被正常恢复时,嵌入式实时操作系统可以调用接口函数StopAllIntLockBudget停止对全部中断关闭时间实际值的监测。当第二类中断被正常恢复时,嵌入式实时操作系统可以调用接口函数StopOSIntLockBudget停止对第二类中断关闭时间实际值的监测。
第四软件计数模块可以包括第五软件计数子模块和第六软件计数子模块,第五软件计数子模块可以用于记录全部中断关闭时间的实际值,第六软件计数子模块可以用于记录第二类中断关闭时间的实际值。相应的第四比较值可以包括与第五软件计数子模块对应的第五子比较值,和与第六软件计数子模块对应的第六子比较值。
在实际应用中可能存在一个或多个任务,一个或多个第二类ISR,一个或多个资源,而每一任务对应一内部到达时间以及一执行时间,每一第二类ISR对应一内部到达时间以及一执行时间,每一资源对应一资源锁定时间。一个硬件定时器包括有限个数个硬件定时器通道,如果用硬件定时器为各个任务/第二类ISR的执行时间、各个任务/第二类ISR的内部到达时间和各个资源的锁定时间进行监测,则需要为每一时间参数分配一硬件定时器通道,下面以对一个任务中的内部到达时间的监测为例对利用硬件定时器对时间监测的方法进行说明:为该任务的内部到达时间分配一硬件定时器通道,并将该任务的内部到达时间与该硬件定时器的计数值之和存储至硬件计数器的比较寄存器中,然后启动硬件定时器,硬件定时器在运行过程中,计数值周期性累加,一旦硬件技术器的计数值与比较寄存器中存储的数值相等时,说明任务的内部到达时间已经达到预期值,使用这种方法,每个硬件定时器通道同一时刻只能对一个时间参数进行监测,而一个硬件定时器的通道个数是有限的,受硬件支持的硬件定时器总数限制,当用户在操作系统中需要同一时刻对多个时间参数进行监测,则需要嵌入式实时操作系统中的一定数目的硬件定时器支持相应个数个硬件定时器通道,这会使嵌入式实时操作系统时间保护功能的实现受硬件定时器资源的限制。而本发明实施例中利用一个第二软件计数模块就可以实现对多个任务/第二类ISR的内部到达时间进行监测,也可以利用一个第三软件计数模块就可以实现对多个资源的资源锁定时间的监测。即节省了硬件定时器资源,又不会受到硬件定时器资源的限制。
通过上述实施例可知软件计数模块可以包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个。
可以由一硬件定时器为第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块提供周期性的定时中断信号,该定时中断信号的优先级可以高于嵌入式实时操作系统中所有第二类ISR的优先级,该中断定时信号可以用于触发第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块计数。
第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块每次被定时中断信号触发后,就会增加当前计数值,或减小当前计数值。例如,硬件定时器每1ms向第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块发送一定时中断信号,第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块被定时中断信号触发后,可以将当前计数值自加1或自减1。
当然,本发明实施例提供的软件计数模块也可以包括4个硬件定时器,此时第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块也可以分别对应一硬件定时器,本发明实施例提供的软件计数模块也可以包括6个硬件定时器(第一软件计数子模块、第二软件计数子模块、第三软件计数子模块和第四软件计数子模块分别对应一硬件定时器),本发明实施例提供的软件计数模块也可以包括7个硬件定时器(第一软件计数子模块、第二软件计数子模块、第三软件计数子模块、第四软件计数子模块、第五软件计数子模块和第六软件计数子模块分别对应一硬件定时器)。
本发明实施例提供的软件计数模块中可以包括硬件定时器,也可以不包括硬件定时器,当软件计数模块中不包括硬件定时器时,可以利用嵌入式实时操作系统对应的嵌入式控制器中的硬件定时器,为第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块提供周期性的定时中断信号。
请参阅图6,为本发明实施例提供的一种时间监测方法中软件计数模块的结构示意图。软件计数模块可以包括第一软件计数子模块601、第二软件计数子模块602、第三软件计数子模块603、第四软件计数子模块604、第三软件计数模块605、第五软件计数子模块606、第六软件计数子模块607和硬件定时器608。其中,硬件定时器608分别与第一软件计数子模块601、第二软件计数子模块602、第三软件计数子模块603、第四软件计数子模块604、第三软件计数模块605、第五软件计数子模块606和第六软件计数子模块607相连。
请参阅图7,为本发明实施例提供的一种时间监测方法中根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的又一实现方式的方法流程示意图,该方法包括:
步骤S701:在接收到第一时间监测指示时,控制软件计数模块的计数值为第一时间参数。
实际运行时间由软件计数模块进行记录,软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,第一软件计数模块用于记录执行时间的实际值,第二软件计数模块用于记录内部到达时间的实际值,第三软件计数模块用于记录资源锁定时间的实际值,第四软件计数模块用于记录中断关闭时间的实际值。
步骤S702:根据软件计数模块记录的计数值与零的大小,确定是否发出报错信号。
该计数值为第一时间参数和实际运行时间之差。
为了本领域技术人员更加理解本发明实施例提供的根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的实现方法,下面举具体例子进行说明。
一、第一时间监测指示为执行时间监测指示。
当接收到执行时间监测指示时,控制第一软件计数模块的值为第一时间参数,随着时间流逝,第一软件计数模块的值在不断减小,第一软件计数模块的值为第一时间参数与实际运行时间的差值,当任务或第二类ISR执行完毕后,第一软件计数模块的值仍不为零,则说明任务或第二类ISR的实际执行时间小于第一时间参数,该任务或第二类ISR可以被正常处理,此时可以不需要在监测该任务或第二类ISR的实际执行时间,嵌入式实时操作系统可以调用接口函数ResetExecutionBudget关闭对该任务或第二类ISR执行时间的监测。当第一软件计数模块的值为零,且任务或第二类ISR未执行完毕,则说明任务或第二类ISR的实际执行时间超过第一时间参数,此时可以发出报错信号,例如执行错误处理函数。
第一软件计数模块可以包括第一软件计数子模块和第二软件计数子模块,第一软件计数子模块用于记录任务的第一时间参数与实际运行时间的差值,第二软件计数子模块用于记录第二类ISR的第一时间参数与实际运行时间的差值。相应的,第一比较值包括与第一软件计数子模块对应的第一子比较值,和与第二软件计数子模块对应的第二子比较值。
由于嵌入式实时操作系统在同一时刻,只有一个任务或一个第二类ISR处于执行状态,所以可以采用上述方法。
可以理解的是,在任务或第二类ISR执行的过程中可能被中断打断,这时嵌入式实时操作系统可以调用接口函数StopExecutionBudget暂停对该任务或第二类ISR执行时间的监测,将软件计数模块的当前计数值进行存储,并停止监测所述软件计数模块记录的计数值与比较值的大小关系。接收到与上述中断指示对应的中断执行完毕指示时,控制软件计数模块的计数值为所述当前计数值,并继续监测软件计数模块记录的计数值与比较值的大小关系。
上述的当前计数值是指接收到中断指示时,软件计数模块的计数值。
接收到与上述中断指示对应的中断执行完毕指示时,表明该任务或第二类ISR又继续执行。这时嵌入式实时操作系统可以重新调用接口函数StartExecutionBudget,以获得上述当前计数值。
二、第一时间监测指示为内部到达时间监测指示。
当接收到内部到达时间监测指示时,控制第二软件计数模块的计数值为第一时间参数。随着时间流逝第二软件计数模块的计数值在不断减小,第二软件计数模块的计数值为第一时间参数与内部到达时间的实际值的差值,在任务或第二类ISR产生下一次执行请求时,如果第二软件计数模块记录的时间小于等于零,说明任务或第二类ISR的实际内部到达时间超过了第一时间参数,该任务或第二类ISR的下一次执行请求可以被正常处理。此时,新一次的任务或第二类ISR的内部到达时间监测启动,嵌入式实时操作系统可以调用接口函数StartTimeFrame开始对任务或第二类ISR的新一次的内部到达时间的监测。如果在任务或第二类ISR产生下一次执行请求之前,第二软件计数模块记录的时间小于等于零,说明任务或第二类ISR的实际内部到达时间肯定超过了第一时间参数,该任务或第二类ISR可以被正常处理,此时可以不再监测任务或第二类ISR的内部到达时间,嵌入式实时操作系统可以调用接口函数ResetExecutionBudget关闭对该任务或第二类ISR内部到达时间的监测。当第二软件计数模块记录的计数值大于零,且任务或第二类ISR开始执行,则说明任务或第二类ISR的实际内部到达时间未超过第一时间参数,此时可以发出报错信号,例如执行错误处理函数。
第二软件计数模块可以包括第三软件计数子模块和第四软件计数子模块,第三软件计数子模块可以用于记录任务的第一时间参数与内部到达时间的实际值的差值,第四软件计数子模块可以用于记录第二类ISR的第一时间参数与内部到达时间的实际值的差值。相应的,第二比较值包括与第三软件计数子模块对应的第三子比较值,和与第四软件计数子模块对应的第四子比较值。
此时的第二软件计数模块只可以记录一个任务或一个第二类ISR的内部到达时间。
三、第一时间监测指示为资源锁定时间监测指示。
嵌入式实时操作系统当检测到有资源被锁定时,就会调用接口函数StartResourceBudget,以生成对该资源的资源锁定时间监测指示,嵌入式实时操作系统控制第三软件计数模块的计数值为第一时间参数,随着时间的流逝,第三软件计数模块的记录的计数值不断减小,在资源未被释放之前,当第三软件计数模块记录的计数值不大于零时,说明资源锁定时间的实际值肯定大于第一时间参数,此时需要发出报错信号,例如执行错误处理函数。当第三软件计数模块记录的计数值大于零时,说明资源锁定时间小于第一时间参数,此时不需要报错,当该资源被释放时,第三软件计数模块记录的计数值仍然大于零,则说明资源被正常释放,可以不用在监测该资源对应的资源锁定时间的实际值了。这时嵌入式实时操作系统可以通过调用接口函数StopResourceLockBudget将第三比较值删除,并停止对于该资源锁定时间的实际值的监测。
此时的第三软件计数模块只可以记录一个资源的资源锁定时间。
四、第一时间监测指示为中断关闭时间监测指示。
当接收到中断关闭时间监测指示时,控制第四软件计数模块的计数值为第一时间参数,随着时间的流逝,第四软件计数模块的记录的计数值不断减小,当第四软件计数模块记录的计数值小于零时,说明中断关闭时间的实际值大于第一时间参数,此时需要发出报错信号,例如执行错误处理函数。当第四软件计数模块记录的计数值不小于零时,说明中断关闭时间实际时间小于第一时间参数,此时不需要报错,当恢复中断时,第四软件计数模块记录的计数值仍然大于零,则说明中断被正常恢复,可以不用在监测该中断对应的中断关闭时间的实际值了。
中断关闭时间参数可以包括全部中断关闭时间参数和第二类ISR关闭时间参数中的一种或多种,当全部中断被正常恢复时,嵌入式实时操作系统可以调用接口函数StopAllIntLockBudget停止对全部中断关闭时间实际值的监测。当第二类ISR被正常恢复时,嵌入式实时操作系统可以调用接口函数StopOSIntLockBudget停止对第二类ISR关闭时间实际值的监测。
第四软件计数模块可以包括第五软件计数子模块和第六软件计数子模块,第五软件计数子模块可以用于记录全部中断关闭时间的实际值,第六软件计数子模块可以用于记录第二类ISR关闭时间的实际值。相应的第四比较值可以包括与第五软件计数子模块对应的第五子比较值,和与第六软件计数子模块对应的第六子比较值。
本发明实施例提供的时间监测方法可以应用于汽车电子领域的嵌入式控制器对应的嵌入式实时操作系统中,因为汽车电子领域的嵌入式控制器同样需要借助嵌入式实时操作系统来提高应用软件性能表现,同时优化应用软件的开发过程。AUTOSAR是用于汽车电子嵌入式软件开发的一套开放式、分布式的软件架构,主要目的是为汽车制造商、供应商、以及汽车电子软件开发商提供一套适用于汽车电子软件的标准化解决方案。为了本领域技术人员更加理解本发明实施例提供的时间监测方法带来的实际效果,下面将对AUTOSAR OS中资源锁定时间的监测和对中断关闭时间的监测的重要性进行说明。
请参阅图8,为本发明实施例提供的一种没有资源锁定时间监测功能的嵌入式实时操作系统中资源锁定时间的过程示意图。
下面都以任务为了进行说明,第二类ISR类似,此处不再进行赘述。
每一任务的状态包括:运行状态、就绪状态和终止状态,其中运行状态是指任务正在执行,就绪状态是指任务已经被激活,正在等待执行,终止状态是指任务执行完毕。
OSEK OS标准中规定的优先级天花板协议,资源的天花板优先级不低于占用资源的任务中静态优先级最高的一个,假设嵌入式实时操作系统中一共有5个任务,各个任务的静态优先级从低到高可以分别为1,2,3,4,5,则这五个任务共同使用的资源的天花板优先级最小为5,如果任务占用了资源,则该任务的优先级别就会被提升到该资源的天花板优先级别上,所以占用该资源的任务的优先级别是所有使用该资源的任务中优先级别最高的。嵌入式实时操作系统对每个任务的完成时间有一个规定,例如第一任务需要在20ms之内完成,第二任务需要在30ms之内完成,可以将这个时间称为任务截止时间,该截止时间是从任务进入到就绪状态开始至任务被运行完毕所需要的时间。
假设第一任务801从T0时刻开始处于运行状态,并在T1时刻调用了第一资源802,此时第一资源802处于资源锁定状态,由于将第一任务801的优先级别提升到第一资源802的优先级别上,所以第一任务801的优先级别是各个任务中最高的,第二任务803在运行状态时也需要占用第一资源802,因为第一任务801已经将第一资源802占用了,且第一任务801的优先级别被提升,第二任务的静态优先级别低于第一任务的优先级别,所以第二任务803被激活后将一直处于就绪状态等待第一任务801释放第一资源802,在T2时刻第一任务801将第一资源802释放,第一任务801的优先级别就恢复了原有的静态优先级别了,由于第二任务803的静态优先级别比第一任务801的静态优先级别高,此时静态优先级别较高的第二任务803开始抢占第一任务801,并由就绪状态转换到运行状态,第二任务803在T3时刻至T4时刻占用第一资源802,由于第一任务801占用第一资源802的时间太长,第二任务803还未执行完毕就已经到达任务截至时间,从图8可以看出第二任务在T5时刻运行完毕,而第二任务的截止时间为T,这时嵌入式实时操作系统中就会出现由于某个任务占用资源时间过长,导致其他任务违反执行时间要求的错误。。
上述情况也会出现静态优先级别较低的任务或第二类ISR占用资源时间过长,导致静态优先级别较高的任务或第二类ISR无法在截止时间之前完成执行。
采用本发明实施例提供的时间监测方法后,可以对上述第一资源的资源锁定时间进行监测,当第一任务占用第一资源的时间过长时,嵌入式实时操作系统就会报错,这时嵌入式实时操作系统可以快速定位到违反时间要求的任务或者第二类ISR上,避免对嵌入式实时操作系统中其他任务或第二类ISR产生影响。
请参阅图9,为现有技术中没有中断关闭时间监测功能的嵌入式实时操作系统中的中断关闭时间的结构示意图。
下面都以任务为了进行说明,第二类ISR类似,将下面的描述中的“任务”替换成“第二类ISR”就是对第二类ISR的描述,此处不再进行赘述。
中断的截止时间是指从中断信号发生后,对应的ISR必须完成执行的最晚时间点。
假设第一任务901在T1时刻由就绪状态进入运行状态,且在T0时刻将中断关闭,在T2时刻嵌入式实时操作系统产生第一中断902(第一中断902可以为全部中断或第二类ISR),由于在T0时刻已经进行了中断关闭,所以嵌入式实时操作系统无法执行第一中断902,第一中断902处于等待处理状态,第一任务901在T3时刻恢复中断,此时第一任务901被第一中断902打断,第一任务901暂停运行,嵌入式实时操作系统开始执行第一中断902,在T4时刻第一中断902才可以执行完毕,但是在T5时刻,已经到达第一中断902的截止时间T6,即第一任务901关闭中断的时间过长导致第一中断902无法被正常执行。
中断关闭时间监测包括全部中断关闭时间监测和第二类ISR关闭时间监测,嵌入式实时操作系统中全部中断关闭时,对于任何中断嵌入式实时操作系统都不响应,嵌入式实时操作系统中第二类ISR关闭时,嵌入式实时操作系统可以响应第一类ISR,不响应第二类ISR。
采用本发明实施例提供的时间监测方法中,可以对中断关闭时间进行监测,以避免当中断关闭时间过长,导致中断不能被正常处理的现象。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
请参阅图10,为本发明实施例提供的一种时间监测装置的结构示意图,该时间监测装置包括:接收模块1001、获得模块1002和第一确定模块1003,其中:
接收模块1001,用于接收第一时间监测指示。
第一时间监测指示与步骤S101中对第一时间监测指示相同,请参阅对步骤S101中第一时间监测指示的说明,此处不再进行一一赘述。
获得模块1002,用于根据预先设置的时间参数与时间监测指示的对应关系,获得第一时间监测指示对应的第一时间参数。
第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种。
执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数与步骤S102中执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数相同。请参阅步骤S102的详细说明。
预先设置的时间参数与时间监测指示的对应关系与步骤S102中的相同,请参阅步骤S102处的详细介绍,此处不再进行赘述。
第一确定模块1003,用于根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
本发明实施例提供的一种时间监测装置,由于预先设置了时间参数与第一时间监测指示的对应关系,当接收模块1001接收到第一时间监测指示时,获得模块1002可以根据预先设置的时间参数与第一时间监测指示的对应关系,获得第一时间监测指示对应的第一时间参数,第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种,第一确定模块1003根据第一时间参数与第一时间监测指示对应的实际运行时间,就可以获知实际运行时间是否超出第一时间参数,所以第一确定模块1003可以根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号。从而实现了监测时间的具体实现方法。
嵌入式实时操作系统中可以同时具备上述监测执行时间的实际运行值、监测内部到达时间的实际运行值、监测资源锁定时间的实际运行值和监测中断关闭时间的实际运行值中的一种或多种功能。
本发明实施例提供的一种时间监测装置中的第一时间监测指示可以包括第一时间参数类型以及第一时间监测标识,上述获得模块可以具体用于:根据预先设置的时间参数类型、时间参数与时间监测标识的对应关系,获得与第一时间参数类型和第一时间监测标识对应的第一时间参数。
请参阅图11,为本发明实施例提供的一种时间监测装置中第一确定模块的一种实现方式的结构示意图,第一确定模块可以包括:存储单元1101和第一确定单元1102,其中:
存储单元1101,用于存储比较值。
上述比较值为第一时间参数与计数值之和,该计数值为在接收到第一时间监测指示时,软件计数模块的值。
实际运行时间由软件计数模块进行记录。
软件计数模块可以包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,第一软件计数模块用于记录执行时间的实际值,第二软件计数模块用于记录内部到达时间的实际运行时间,第三软件计数模块用于记录资源锁定时间的实际运行时间,第四软件计数模块用于记录中断关闭时间的实际运行时间。
第一确定单元1102,用于根据软件计数模块记录的实际运行时间与比较值,确定是否发出报错信号。
根据第一时间参数与第一时间监测指示对应的实际运行时间,确定是否发出报错信号的实现方法有很多种,请参阅时间监测方法实施例中的相关说明,此处不在进行赘述。
请参阅图12,为本发明实施例提供的一种时间监测装置中的存储单元的一种实现方式的结构示意图,存储单元包括:判断子单元1201和存储子单元1202,其中:
判断子单元1201,用于按照从所述队列的队头至队尾的顺序,依次判断所述比较值与所述队列中存储的所述N个比较值的大小关系。
第一时间参数类型为资源锁定时间参数类型,第一时间监测指示为第一资源锁定时间监测指示,上述比较值存储在队列中,队列中存储有N个资源锁定时间监测指示对应的N个比较值,N为大于等于零的整数,队列中的各个比较值按照从小到大的顺序依次分别存储于队列的队首至队尾。
存储子单元1202,用于当判断出队列中某一比较值不小于第一资源锁定时间监测指示对应的比较值时,将第一资源锁定时间监测指示对应的比较值存储至上述某一比较值所在的位置,分别将上述某一比较值至所述队列队尾的比较值的存储位置依次向所述队尾移一个位置。
相应的,时间监测装置还包括:第二确定模块,用于当软件计数模块记录的实际运行时间不小于队列的队首的比较值时,确定发出与队列队首的比较值对应的报错信号,并删除队列队首的比较值。
请参阅图13,为本发明实施例提供的一种时间监测装置中第一确定模块的另一实现方式的方法流程示意图,该第一确定模块包括:控制单元1301和第二确定单元1302,其中:
控制单元1301,用于在接收到第一时间监测指示时,控制软件计数模块的计数值为第一时间参数。
实际运行时间由软件计数模块进行记录,软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,第一软件计数模块用于记录执行时间的实际值,第二软件计数模块用于记录内部到达时间的实际值,第三软件计数模块用于记录资源锁定时间的实际值,第四软件计数模块用于记录中断关闭时间的实际值。
第二确定单元1302,用于根据软件计数模块记录的计数值与零的大小,确定是否发出报错信号。
该计数值为所述第一时间参数和实际运行时间之差。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置或系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种时间监测方法,其特征在于,包括:
接收第一时间监测指示;
根据预先设置的时间参数与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数,所述第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种;
根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
2.根据权利要求1所述时间监测方法,其特征在于,所述第一时间监测指示包括第一时间参数类型以及第一时间监测标识,所述根据预先设置的时间参数值与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数包括:
根据预先设置的时间参数类型、时间参数与时间监测标识的对应关系,获得与所述第一时间参数类型和所述第一时间监测标识对应的第一时间参数。
3.根据权利要求1或2所述时间监测方法,其特征在于,所述实际运行时间由软件计数模块进行记录,所述软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,所述第一软件计数模块用于记录执行时间的实际值,所述第二软件计数模块用于记录内部到达时间的实际值,所述第三软件计数模块用于记录资源锁定时间的实际值,所述第四软件计数模块用于记录中断关闭时间的实际值,所述根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号包括:
存储比较值,所述比较值为所述第一时间参数与计数值之和,所述计数值为在接收到所述第一时间监测指示时,所述软件计数模块的值;
根据所述软件计数模块记录的实际运行时间与所述比较值,确定是否发出报错信号。
4.根据权利要求3所述时间监测方法,其特征在于,所述第一时间参数类型为资源锁定时间参数类型,所述第一时间监测指示为第一资源锁定时间监测指示,所述比较值存储在队列中,所述队列中存储有N个资源锁定时间监测指示对应的N个比较值,N为大于等于零的整数,所述队列中的各个比较值按照从小到大的顺序依次分别存储于所述队列的队首至队尾,所述存储比较值包括:
按照从所述队列的队头至队尾的顺序,依次判断所述比较值与所述队列中存储的所述N个比较值的大小关系;
当判断出所述队列中某一比较值不小于所述比较值时,将所述比较值存储至所述某一比较值所在的位置,分别将所述某一比较值至所述队列队尾的比较值的存储位置依次向所述队尾移一个位置;
相应的,所述时间监测方法还包括:
当所述软件计数模块记录的实际运行时间不小于所述队列的队首的比较值时,确定发出与所述队列队首的比较值对应的报错信号,并删除所述队列队首的比较值。
5.根据权利要求1或2所述时间监测方法,其特征在于,所述实际运行时间由软件计数模块进行记录,所述软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,所述第一软件计数模块用于记录执行时间的实际值,所述第二软件计数模块用于记录内部到达时间的实际值,所述第三软件计数模块用于记录资源锁定时间的实际值,所述第四软件计数模块用于记录中断关闭时间的实际值,所述根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号包括:
在接收到所述第一时间监测指示时,控制所述软件计数模块的计数值为第一时间参数;
根据所述软件计数模块记录的计数值与零的大小,确定是否发出报错信号,所述计数值为所述第一时间参数和所述实际运行时间之差。
6.一种时间监测装置,其特征在于,包括:
接收模块,用于接收第一时间监测指示;
获得模块,用于根据预先设置的时间参数与时间监测指示的对应关系,获得所述第一时间监测指示对应的第一时间参数,所述第一时间参数可以为执行时间参数、内部到达时间参数、资源锁定时间参数和中断关闭时间参数中的一种或多种;
第一确定模块,用于根据所述第一时间参数与所述第一时间监测指示对应的实际运行时间,确定是否发出报错信号。
7.根据权利要求6所述时间监测装置,其特征在于,所述第一时间监测指示包括第一时间参数类型以及第一时间监测标识,所述获得模块具体用于:根据预先设置的时间参数类型、时间参数与时间监测标识的对应关系,获得与所述第一时间参数类型和所述第一时间监测标识对应的第一时间参数。
8.根据权利要求6或7所述时间监测装置,其特征在于,所述实际运行时间由软件计数模块进行记录,所述软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,所述第一软件计数模块用于记录执行时间的实际值,所述第二软件计数模块用于记录内部到达时间的实际值,所述第三软件计数模块用于记录资源锁定时间的实际值,所述第四软件计数模块用于记录中断关闭时间的实际值,所述第一确定模块包括:
存储单元,用于存储比较值,所述比较值为所述第一时间参数与计数值之和,所述计数值为在接收到所述第一时间监测指示时,所述软件计数模块的值;
第一确定单元,用于根据所述软件计数模块记录的实际运行时间与所述比较值,确定是否发出报错信号。
9.根据权利要求8所述时间监测装置,其特征在于,所述第一时间参数类型为资源锁定时间参数类型,所述第一时间监测指示为第一资源锁定时间监测指示,所述比较值存储在队列中,所述队列中存储有N个资源锁定时间监测指示对应的N个比较值,N为大于等于零的整数,所述队列中的各个比较值按照从小到大的顺序依次分别存储于所述队列的队首至队尾,所述存储单元包括:
判断子单元,用于按照从所述队列的队头至队尾的顺序,依次判断所述比较值与所述队列中存储的所述N个比较值的大小关系;
存储子单元,用于当判断出所述队列中某一比较值不小于所述比较值时,将所述比较值存储至所述某一比较值所在的位置,分别将所述某一比较值至所述队列队尾的比较值的存储位置依次向所述队尾移一个位置;
相应的,所述时间监测装置还包括:第二确定模块,用于当所述软件计数模块记录的实际运行时间不小于所述队列的队首的比较值时,确定发出与所述队列队首的比较值对应的报错信号,并删除所述队列队首的比较值。
10.根据权利要求6或7所述时间监测装置,其特征在于,所述实际运行时间由软件计数模块进行记录,所述软件计数模块包括第一软件计数模块、第二软件计数模块、第三软件计数模块和第四软件计数模块中的一个或多个,所述第一软件计数模块用于记录执行时间的实际值,所述第二软件计数模块用于记录内部到达时间的实际值,所述第三软件计数模块用于记录资源锁定时间的实际值,所述第四软件计数模块用于记录中断关闭时间的实际值,所述第一确定模块包括:
控制单元,用于在接收到所述第一时间监测指示时,控制所述软件计数模块的计数值为第一时间参数;
第二确定单元,用于根据所述软件计数模块记录的计数值与零的大小,确定是否发出报错信号,所述计数值为所述第一时间参数和所述实际运行时间之差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310706393.3A CN103631695B (zh) | 2013-12-19 | 2013-12-19 | 时间监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310706393.3A CN103631695B (zh) | 2013-12-19 | 2013-12-19 | 时间监测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631695A true CN103631695A (zh) | 2014-03-12 |
CN103631695B CN103631695B (zh) | 2017-02-08 |
Family
ID=50212780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310706393.3A Active CN103631695B (zh) | 2013-12-19 | 2013-12-19 | 时间监测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631695B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168149A (zh) * | 2014-09-03 | 2014-11-26 | 成都朗锐芯科技发展有限公司 | 一种多通道任意定时器的实现方法 |
CN105094066A (zh) * | 2014-05-06 | 2015-11-25 | 中芯国际集成电路制造(上海)有限公司 | 生产系统的控制方法及装置 |
CN107046600A (zh) * | 2017-03-09 | 2017-08-15 | 广东艾檬电子科技有限公司 | 一种Android系统标准时间的确定方法及装置 |
CN111474913A (zh) * | 2019-01-23 | 2020-07-31 | 北京新能源汽车股份有限公司 | 一种程序运行监测方法、装置及电动汽车 |
US11347892B2 (en) * | 2019-11-27 | 2022-05-31 | AO Kaspersky Lab | System and method for access control in electronic control units of vehicles |
US20220245266A1 (en) * | 2019-11-27 | 2022-08-04 | AO Kaspersky Lab | System and method for providing a security policy |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295273A (zh) * | 2008-06-20 | 2008-10-29 | 北京中星微电子有限公司 | 看门狗设计方法及看门狗 |
CN102339029A (zh) * | 2011-06-30 | 2012-02-01 | 电子科技大学 | 一种嵌入式操作系统定时保护的实现方法 |
US20120110582A1 (en) * | 2010-10-29 | 2012-05-03 | International Business Machines Corporation | Real-time computing resource monitoring |
-
2013
- 2013-12-19 CN CN201310706393.3A patent/CN103631695B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295273A (zh) * | 2008-06-20 | 2008-10-29 | 北京中星微电子有限公司 | 看门狗设计方法及看门狗 |
US20120110582A1 (en) * | 2010-10-29 | 2012-05-03 | International Business Machines Corporation | Real-time computing resource monitoring |
CN102339029A (zh) * | 2011-06-30 | 2012-02-01 | 电子科技大学 | 一种嵌入式操作系统定时保护的实现方法 |
Non-Patent Citations (1)
Title |
---|
高嵊昊: "面向汽车电子领域的嵌入式软件可靠技术的研究与开发", 《中国优秀硕士学位论文全文数据库工程科技II辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094066A (zh) * | 2014-05-06 | 2015-11-25 | 中芯国际集成电路制造(上海)有限公司 | 生产系统的控制方法及装置 |
CN104168149A (zh) * | 2014-09-03 | 2014-11-26 | 成都朗锐芯科技发展有限公司 | 一种多通道任意定时器的实现方法 |
CN104168149B (zh) * | 2014-09-03 | 2017-04-12 | 成都朗锐芯科技发展有限公司 | 一种多通道任意定时器的实现方法 |
CN107046600A (zh) * | 2017-03-09 | 2017-08-15 | 广东艾檬电子科技有限公司 | 一种Android系统标准时间的确定方法及装置 |
CN111474913A (zh) * | 2019-01-23 | 2020-07-31 | 北京新能源汽车股份有限公司 | 一种程序运行监测方法、装置及电动汽车 |
CN111474913B (zh) * | 2019-01-23 | 2021-07-20 | 北京新能源汽车股份有限公司 | 一种程序运行监测方法、装置及电动汽车 |
US11347892B2 (en) * | 2019-11-27 | 2022-05-31 | AO Kaspersky Lab | System and method for access control in electronic control units of vehicles |
US20220245266A1 (en) * | 2019-11-27 | 2022-08-04 | AO Kaspersky Lab | System and method for providing a security policy |
US11640481B2 (en) * | 2019-11-27 | 2023-05-02 | AO Kaspersky Lab | System and method for providing a security policy |
Also Published As
Publication number | Publication date |
---|---|
CN103631695B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631695A (zh) | 时间监测方法及装置 | |
CN103294533B (zh) | 任务流控制方法及系统 | |
AU2010336363B2 (en) | Managing queries | |
CN106547612B (zh) | 一种多任务处理方法及装置 | |
US9436498B2 (en) | Runtime analysis and control to monitor the status of the threads during execution of folded thread | |
US8112559B2 (en) | Increasing available FIFO space to prevent messaging queue deadlocks in a DMA environment | |
CN109684060B (zh) | 一种多类型时间关键任务的混合调度方法 | |
CN102541642B (zh) | 一种增强实时性能的任务管理方法 | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
US10305974B2 (en) | Ranking system | |
WO2020172852A1 (en) | Computing resource scheduling method, scheduler, internet of things system, and computer readable medium | |
CN106886450A (zh) | 任务调度方法和系统 | |
US8631086B2 (en) | Preventing messaging queue deadlocks in a DMA environment | |
CN109542599A (zh) | 一种嵌入式操作系统线程监视方法 | |
CN110659147B (zh) | 一种基于模块自检行为的自修复方法和系统 | |
CN102932200A (zh) | 一种信息流节点处理时限的监控方法及装置 | |
CN102929770B (zh) | 嵌入式linux系统用户态任务独占的监测定位方法 | |
CN102549510B (zh) | 用于检查操作系统的实时特性的方法 | |
US20020010732A1 (en) | Parallel processes run scheduling method and device and computer readable medium having a parallel processes run scheduling program recorded thereon | |
CN109407981A (zh) | 一种数据处理方法及装置 | |
CN105740079A (zh) | 一种死锁处理方法与系统 | |
CN101751293B (zh) | 程序的线程群组管理方法 | |
CN101149702A (zh) | 操作系统故障检测的方法和装置 | |
KR101083049B1 (ko) | 시뮬레이션 시스템 및 시뮬레이션 방법 | |
JPH08137703A (ja) | タスク切替装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Patentee after: Beijing Jingwei Hengrun Technology Co., Ltd Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Patentee before: Beijing Jingwei HiRain Technologies Co.,Ltd. |