CN112559102A - 任务运行时序展示方法,装置,电子设备及存储介质 - Google Patents
任务运行时序展示方法,装置,电子设备及存储介质 Download PDFInfo
- Publication number
- CN112559102A CN112559102A CN202011520541.9A CN202011520541A CN112559102A CN 112559102 A CN112559102 A CN 112559102A CN 202011520541 A CN202011520541 A CN 202011520541A CN 112559102 A CN112559102 A CN 112559102A
- Authority
- CN
- China
- Prior art keywords
- time
- task
- preset command
- execution
- preset
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例中提供了一种任务运行时序展示方法,装置,电子设备及存储介质,该方法包括:获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息;基于所述时间信息绘制所述任务的运行时序图。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
Description
技术领域
本申请涉及程序时序监测技术领域,具体地,涉及一种任务运行时序展示方法,装置,电子设备及存储介质。
背景技术
随着嵌入式处理器运算处理能力的增强,嵌入式产品任务的复杂度也与日俱增,其复杂度主要体现在单任务中算法复杂度的提升,以及繁多的任务要求。由此,会导致任务之间的关系变得更加复杂,任务之间运行顺序和配合关系变得更加不确定,即使每个子系统的设计开发过程正确无误,但是在调度过程中混乱的时序也有可能造成意想不到的后果。
通常,在对任务的时序监测中,仅仅是对中断任务进行监测,忽略了中断任务和其他任务之间的时序关系,或者是通过示波器,仿真器等外部设备进行分析,但这些方式不仅消耗时间,也难以实现对嵌入式系统的中的任务进行全面的时序分析。
发明内容
本申请实施例中提供了一种任务运行时序展示方法,装置,电子设备及存储介质,可以有效解决难以对嵌入式系统中的任务进行全面时序分析的问题。
根据本申请实施例的第一个方面,提供了一种任务运行时序展示方法,应用于嵌入式系统,所述嵌入式系统中运行多个任务,该方法包括:获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息,所述时间信息包括起始时间,结束时间和运行时间;根据所述时间信息绘制所述任务的运行时序图。
根据本申请实施例的第二个方面,提供了一种任务运行时序展示装置,应用于嵌入式系统,所述嵌入式系统中运行多个任务,该装置包括:全局时间获取模块,用于获取嵌入式系统的全局时间;执行模块,用于在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;时间信息获取模块,用于根据所述执行时间确定调用所述预设命令的任务的时间信息,所述时间信息包括起始时间,结束时间和运行时间;展示模块,用于根据所述时间信息绘制所述任务的运行时序图。
根据本申请实施例的第三个方面,提供了一种电子设备,该电子设备包括一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如上述应用于电子设备的方法。
根据本申请实施例的第四方面,本申请实施列提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
采用本申请实施例中提供的任务运行时序展示方法,获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息;基于所述时间信息绘制所述任务的运行时序图。对调用预设命令的任务进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的任务运行时序展示方法的软件体系架构图;
图2为本申请一个实施例提供的任务运行时序展示方法的流程图;
图3为本申请另一个实施例提供的任务运行时序展示方法的流程图;
图4为本申请再一个实施例提供的任务运行时序展示方法的流程图;
图5为本申请一个实施例提供任务运行时序图;
图6为本申请一个实施例提供的CPU资源占用图;
图7为本申请一个实施例提供的任务运行时序展示装置的功能模块图;
图8为本申请实施例提出的用于执行根据本申请实施例的任务运行时序展示方法的电子设备的结构框图。
具体实施方式
随着嵌入式处理器运算处理能力的增强,嵌入式产品任务的复杂度也与日俱增,其复杂度主要体现在单任务中算法复杂度的提升,以及繁多的任务需求。随之而来的不利因素,一方面会导致任务之间的关系变得更加复杂,任务之间运行顺序和配合关系变得更加不确定,即使每个子系统的设计开发过程正确无误,在调度的过程中混乱的时序也有可能造成意想不到的后果,甚至有些异常并不是显性的,测试过程中未能发现,极有可能会带来严重的安全隐患;另一方面对于程序出现的异常的排查也极为困难,异常的排查往往需要耗费更大的人力物力成本。
从实际设计角度来分析,在设计人员设计和编码的过程中,难免会出现一些欠考虑的逻辑疏漏,这些逻辑疏漏的排查并不容易,需要借助如仿真器、示波器等外部设备一步一步的地分析,无端地会产生大量的时间消耗。而对于一个大型的系统来说,软件部分由不同的设计人员完成,即使自己设计的软件逻辑没有问题,也可能会和嵌入式系统中的其他任务产生耦合和冲突,更增加了排查的难度。
发明人在研究中发现,目前有对中断并发进行监测和分析,但是忽略了中断和任务之间,以及不同任务件并发时存在的时序确定问题。在一些其他的方式中提出了通过每个任务的运行信息,计算任务的连续运行时间,获得CPU的使用率,但是仅适用于任务和任务之间没有干扰的情况。忽略了任务和任务之间的时序带来的影响,监测并不完善。
针对上述问题,本申请实施例中提供了一种任务运行时序展示方法,获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息;基于所述时间信息绘制所述任务的运行时序图。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript,以及Python等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参阅图1,示出了本申请提供的任务运行时序展示方法的软件体系架构图。所述软件体系架构10中包括系统服务,任务时序展示模块以及多个任务。系统服务可以进行任务调度,即在该软件体系架构10中可以运行多个任务,系统服务可以对这多个任务进行调度。
本申请实施例提供任务运行时序展示方法可以集成在所述软件体系架构10中的任务时序展示模块中,即在所述系统服务进行任务调度时,可以按照本申请实施例提供的任务运行时序展示方法,展示多个任务的运行时序图。
也就是说,可以将本申请提供的任务运行时序展示方法集成为嵌入式系统的一个功能,在产品运行时能够在线或离线的方式监测产品的正常运行。具体的,为提供一个接口函数供用户调用,以启用任务运行时序展示功能。用户在使用所述任务运行时序展示功能时,在对应的任务中调用提供的接口函数即可。在调用对应的函数接口后,输出任务的运行时序图,该运行时序图可以用于测试阶段过程中的逻辑分析,在一定程度上替换仿真器的功能,从而可以不再购买仿真器等硬件设备,节省资金。并且,除了在测试阶段进行调试之外,还可以在产品上线之后,通过任务运行时序图对产品运行情况进行分析,提高运行的正确性。
请参阅图2,本申请实施例提供了一种任务运行时序展示方法,可以集成在嵌入式系统中,成为所述嵌入式系统的系统功能,具体的该方法可以包括以下步骤。
步骤110,获取嵌入式系统的全局时间。
在需要进行任务运行时序分析时,首先需要获取到所述嵌入式系统的全局时间,所述全局时间可以为各个任务提供统一时间度量尺度。可以是使用嵌入式系统提供的固定定时间隔的计数器,通过获取所述固定定时间隔的计数器的计数值,可以获取到对应的时间。其中,所述计数器的计数频率需高于系统中任务执行的频率,确保可以监测到任务的运行时序。
在获取所述嵌入式系统的全局时间时,可以获取到所述嵌入式系统的定时间间隔的计数器的地址;根据所述地址对所述定时间隔的计数器进行初始化,得到全局时间。
在一些实施方式中,可以基于所述定时间隔的计数器产生一个标准时间,从而可以准确定定位到任务的执行时刻。当前,在没有标准时间的情况下,基于所述全局时间也可以获取到任务和任务之间的相对时间下的运行时序。
作为一种实施方式,在初始化所述定时间隔的计数器时,还可以对数据存储区进行初始化,用于存储后续步骤中获得的数据。
步骤120,在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间。
在获取到全局时间后,可以提供统一的时间度量,以方便后续的时序分析。可以理解的是,在嵌入式系统中,可以运行多个任务,这些任务可以是程序,中断,以及分支任务。在需要对这些任务进行监控时,可以在这些任务的底层代码中,调用预设命令,实现对任务运行的监控。
在所述任务运行时,本质上是在执行底层代码,从而,在所述任务的底层代码中调用预设命令时,所述系统可以接收所述预设命令,从而可以根据全局时间获取执行所述预设命令的执行时间。
其中,可以预先设置与所述预设命令对应的预设操作,那么,在所述系统在接收到所述任务的中的预设命令时,需要执行所述预设命令,可以执行与所述预设命令对应的预设操作,获取执行所述预设操作的时间为所述执行时间。所述预设命令可以是插入探针命令,与所述插入探针命令对应的预设操作可以是插入探针。下面以预设命令为插入探针命令,预设操作为插入探针进行详细说明。在所述系统接收到插入探针命令时,可以插入探针,同时记录插入探针对应的时间为所述执行时间。
全局时间提供了统一的时间度量,在确定所述执行时间时,通过获取所述定时间隔的计数器的计数值,可以获取到基于所述全局时间下的所述执行时间,假设所述计数值每间隔10us时,计数值加1,执行预设操作时,获取到的计数器的值为2,从而,对应的全局时间为20us,从而,可以通过计数器值表示所述执行时间。
步骤130,根据所述执行时间确定调用所述预设命令的任务的时间信息。
在获取到所述执行时间之后,可以根据所述执行时间确定调用所述预设命令的任务的时间信息。其中,所述时间信息包括起始时间,结束时间以及运行时间。所述起始时间为所述任务开始运行的时间,所述结束时间为所述任务完整运行的时间,所述运行时间为所述任务运行所消耗的时间。起始时间,结束时间和运行时间之间具备一定的数量关系,运行时间等于结束时间与起始时间之间的差值。
在需要对任务进行时序分析时,任务底层代码中,可以调用所述预设命令,具体的,可以是在任务开始时,调用预设命令,在任务结束时,再次调用预设命令。在每次调用所述预设命令时,系统可以获取执行预设操作,获取执行所述预设操作的时间为所述执行时间。在一个任务从运行到结束,所述系统至少可以接收到两次所述预设命令,即可以获取到至少两个所述执行时间。因此,同一个标识信息可以对应着两个执行时间。
所述系统获取到调用所述预设命令的任务的标识信息,将获取到所述标识信息与所述执行时间关联存储。具体的,可以是存储在初始化后的数据存储区。在任务运行完毕时,系统关联的存储的所述标识信息与所述执行时间中,同一个标识信息对应着两个不同的执行时间。
由于任务的底层代码在任务开始运行时,调用了预设命令,在任务结束运行时,再次调用了预设命令,那么第一次调用预设命令的时序是在第二次调用预设命令的时序之前,因此,在两个执行时间中,时序靠前的执行时间为起始时间,时序靠后的执行时间为结束时间。
例如,任务1从开始执行到执行完毕的过程中,系统一共收到两次探针插入命令,对应的执行时间分别为20us,40us。从全局时间来看,20us在时序上靠前,因此,可以确定20us为起始时间,40us在时序上靠后,可以确定40us为结束时间。
在确定所述起始时间和结束时间之后,可以将所述结束时间与所述起始时间作差,得到所述标识信息对应的任务的运行时间。如前举例所述,起始时间为20us,结束时间为40us,作差得到运行时间为20us。
在一些实施方式中,任务中可能出现分支任务,那么,在所述分支任务的底层代码中也可以调用所述预设命令,从而根据所述预设命令,可以获取到任务中的分支任务对应的时间信息。也就是说,可以进行嵌套设置,在一个任务已经被监测的同时,可以继续对所述任务中的分支任务进行监测,从而,可以监测到任务中的分支任务的运行时序。
在一些实施方式中,还可以获取用户预先设置的异常情况,当监测到出现所述异常情况时,将所述异常情况发生时对应的任务的时间信息存储在所述数据存储区中,便于分析所述异常情况的发生原因。其中,所述异常情况可以是指定任务,分支,或者中断的发生,还可以是变量的赋值异常,具体的,可以根据实际的需要进行设置,在此不做具体限定。
步骤140,根据所述时间信息绘制所述任务的运行时序图。
在获取到调用所述预设命令的任务的时间信息之后,以所述标识信息指代所述任务,从而,可以绘制所述标识信息与时间信息的关系,得到所述任务的运行时序图。
可以理解是,所述系统中可以运行多个任务,可以对运行的多个任务进行监控,那么,对于每个任务而言,都可以获取到对应该任务的时间信息,从而,将所述多个任务对应的时间信息绘制在同一个坐标系中,从而多个任务的运行时序图,可以组成多个任务之间的时序关系图。
在一些实施方式中,在所述任务运行时,CPU满载运行,基于所述任务的运行时间可以获取到任务的CPU占用率,从而可以绘制出所述任务的CPU资源占用图。
作为一种实施方式,在获取到任务的标识信息以及对应的时间信息后,所述嵌入式系统可以将所述标识信息以及对应的时间信息输出到上位机中,由所述上位机根据所述标识信息以及对应的时间信息绘制运行时序图和CPU资源占用图,并进行显示。从而便于用户根据所述运行时序图以及CPU资源占用图进行时序分析。
作为另一种实施方式,在获取到所述任务的标识信息以及对应的时间信息后,所述嵌入式系统根据所述标识信息以及对应的时间信息绘制任务的运行时序图,以及CPU资源占用图。将所述运行时序图和CPU资源占用图输出到上位机进行显示,从而便于用户根据所述运行时序图以及CPU资源占用图进行时序分析。
通过软件手段可以对嵌入式系统中运行的任务进行监测,并以可视化的方式进行展示,无需购买仿真器等硬件设备,可以通过确定出的时序关系完成产品功能的测试和验证,节省资金,并且,提供异常情况监测功能,可以对用户自定义的异常情况进行监测,通过任务的运行时序的可视化展示,便于定位出现异常的原因。
本申请实施例提供的任务运行时序展示方法,获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间,获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息,并根据所述时间信息绘制所述任务的运行时序图。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。并且在出现异常情况时,可以更加全面的进行异常分析。
请参阅图3,本申请另一实施例提供了一种任务运行时序展示方法,在前述实施例的基础上重点描述了获取执行时间以及确定任务的时间信息的过程,具体的该方法可包括以下步骤。
步骤210,获取嵌入式系统的全局时间。
在获取嵌入式系统的全局时间时,可以理解为初始化所述任务运行时序分析的基础功能,那么,在获取到所述嵌入式系统的全局时间之后,可以对数据存储区进行初始化,从而,可以将后续步骤中获得的数据存储在所述数据存储区中。
在一些实施方式中,还可以获取用于预先设置的异常情况,在监测任务的时序时,进行异常情况的监测,所述异常情况可以是指定任务,分支,或者中断的发生,还可以是变量的赋值异常,具体的,可以根据实际的需要进行设置,在此不做具体限定。也就是说,用户在需要监测任务的时序时,还可以设置异常情况一并监测。步骤210的内容与前述实施例对应部分的内容相互参照,为避免重复,不再赘述。
步骤220,在接收到所述预设命令时,执行与所述预设命令对应的预设操作。
在需要监测任务时,任务的底层代码中需要调用预设命令,从而,系统在接收到所述预设命令时,执行所述预设命令实现对所述任务的监测。
预先设置有与所述预设命令对应的预设操作,在所述系统接收到所述预设命令时,可以获取到与所述预设命令对应的预设操作,从而执行所述预设操作。
例如,所述预设命令为插入探针命令,对应的预设操作为插入探针,从而,在所述系统接收到所述插入探针命令时,可以在对应位置处插入探针。
步骤230,获取执行所述预设操作的时间为所述执行时间。
所述系统在执行预设操作时,即对任务的运行时序进行监测,此时可以记录执行所述预设操作的时间。可以理解的是,在得到全局时间后,任何时间都是以所述全局时间为时间度量得到的。
步骤240,获取调用所述预设命令的任务的标识信息,将所述执行时间与所述标识信息关联存储。
在所述系统每接收到所述预设命令时,执行一次预设操作,在执行预设操作时,获取执行所述预设操作的执行时间,同时,系统可以获取到调用所述预设命令的任务的标识信息,从而可以将所述执行时间与所述标识信息关联存储在初始化后的数据存储区中。若对系统上运行的所有任务进行监测,即可以获取到多个任务对应的标识信息,以及对应的执行时间。
其中,所述任务的标识信息可以是能够区分任务的信息,例如,任务的名称,任务的ID等信息。所述任务可以是普通任务,中断任务,分支任务等。
例如,此时普通任务为任务1,任务1中包括分支任务a,获取到所述任务1的执行时间为t1,分支任务a的执行时间为t2,那么,对应存储的内容可以是任务1:t1,分支任务a:t2。
步骤250,获取同一个标识信息对应的所述执行时间,确定时序靠前的所述执行时间为所述起始时间,另一个执行时间为所述结束时间。
由于需要监测任务的运行时序时,在每个任务的底层代码中,在任务开始运行时,以及运行完毕时,均会调用所述预设命令,从而获取的执行时间分别与所述任务的起始时间和结束时间对应。从而,存储的同一个标识信息对应两个执行时间。根据执行时间可以确定出所述任务的起始时间和结束时间。
可以理解的是,任务的底层代码中,调用所述预设命令的时间点为任务开始运行时,以及任务运行结束时。起始时间的时序早于所述结束时间,从而,在同一个标识信息对应的两个执行时间中,时序靠前的执行时间为起始时间,另一个为结束时间。
例如,任务1对应的执行时间分别为t1,t3,t1<t3,由于执行时间为计数器的计数值表示,计数值越小,表示时序越靠前,可以确定t1为任务1的起始时间,t3为任务1的结束时间。
步骤260,将结束时间与所述起始时间作差,得到所述标识信息对应的任务的运行时间。
在得到所述任务的起始时间和结束时间之后,容易理解是,若要得到所述任务运行时间,可以将所述结束时间与所述起始时间作差,即为与所述标识信息对应的任务的运行时间。
如前举例所述,所述任务1的起始时间为t1,任务1的结束时间为t3,那么,任务1的运行时间为t3-t1。由此,任务1的时间信息,即起始时间,结束时间以及运行时间都可以得到,以供后续使用。
此外,在上述步骤执行的过程中,若用户预设设置了异常情况,可以在获取全局时间时,获取到用户设置所述异常情况。在任务运行时,系统根据接收到的所述预设命令,执行预设操作后,可以对整个任务的运行进行监测,在监测到所述异常情况发生时,可以将调用所述预设命令的任务的时间信息存储在在所述数据存储区。
也就是说,系统可以对调用了所述预设命令的任务进行监测,在异常情况发生时,可获取到这些任务的时间信息,将这些时间信息存储起来,便于分析所述异常情况。
步骤270,根据所述时间信息绘制所述任务的运行时序图。
步骤270可参照前述实施例对应部分,在此不再赘述。
本申请实施例提供的任务运行时序展示方法,在接收到预设命令时,执行与所述预设命令对应的预设操作,可以获取到任务的时间信息,即起始时间,结束时间以及运行时间,基于所述时间信息确定所述任务的运行时序,便于用户对嵌入式系统中的任务运行进行全面分析,并且,在监测到用户设置的异常情况发生时,保存任务的时间信息,也便于用户对所述异常情况进行分析。
请参阅图4,本申请再一实施例提供了一种任务运行时序展示方法,在前述实施例的基础上重点描述了根据时间信息绘制任务运行时序图的过程,具体的该方法可包括以下步骤。
步骤310,获取嵌入式系统的全局时间。
步骤320,在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间。
步骤330,根据所述执行时间确定调用所述预设命令的任务的时间信息。
步骤310至步骤330可参照前述实施例对应部分,在此不再赘述。
步骤340,以所述标识信息为纵坐标,以时间为横坐标,绘制所述时间信息得到所述任务的运行时序图。
在前述获取到的任务的时间信息中,包括了任务的标识信息与所述时间信息的对应关系,其中,时间信息包括起始时间,结束时间以及运行时间。为了更加直观展示任务的运行时序,可以以所述标识信息为纵坐标,以所述时间信息为横坐标绘制所述任务的运行时序图。具体的,可参照图5,示出了任务运行时序图。在图5中,纵坐标为Task,表示任务的标识信息,横坐标为时间。其中,任务包括了普通任务,Task1,Task2,Task3以及Task4,分支任务Branch1和Branch2,中断任务中断1和中断2。其中,图5中的t1表示任务的运行时间,t2表示CPU空闲时间,t3表示分支任务Branch1的运行时间,t4表示中断时间。其中,Branch1和Task1之间的运行时间有重叠部分,表示,Branch1为所述Task1中的分支任务。根据所述时间信息绘制所述运行时序图,可以清楚的展示各个任务之间的运行时序,便于用户分析任务和任务之间时序。
在一些实施方式中,根据所述时间信息确定正在运行的任务的CPU占用率,任务在运行时,CPU满载运行,任务的运行时间与总时间的比值则为CPU占用率,所述CPU占用率。例如,嵌入式系统中一共运行了2个任务为任务1和任务2,总时间为任务1和任务2的运行时间,以及CPU的空闲时间的和为T,任务1的运行时间为t1,那么,对应任务1的CPU占用率为t1/T。根据所述CPU占用率可以绘制CPU的占用图。具体可参照图6,示出了CPU资源占用图。在图6中,可以看出,除了任务运行本身会占用CPU资源,在系统服务进行任务调度时,也会占用一定的CPU资源。
在一些实施方式中,运行时序图的绘制,以及CPU资源占用图的绘制可以是由所述嵌入式系统进行绘制,输出到上位机中直接显示即可。
在另一些实施方式中,可以将获取到时间信息传输到上位机中,由上位机根据所述时间信息绘制运行时序图以及CPU资源占用图。可以理解的是,CPU资源占用图可以选择性的进行绘制。在监测到异常情况出现时,将对应存储的数据传输到上位机,以供用户结合所述运行时序图进行异常情况的分析。
本申请实施例提供的任务运行时序展示方法,在获取到调用所述预设命令的任务的时间信息后,以任务的标识信息为纵坐标,时间为横坐标,绘制所述时间信息得到任务的运行时序图,并且基于所述时间信息还可以绘制出CPU资源占用图。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
请参阅图7,本申请实施例提供了一种任务运行时序展示装置400,所述任务运行时序展示装置400包括全局时间获取模块410,执行模块420,时间信息获取模块430,展示模块440。所述全局时间获取模块410,用于获取嵌入式系统的全局时间;所述执行模块420,用于在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;所述时间信息获取模块430,用于根据所述执行时间确定调用所述预设命令的任务的时间信息,所述时间信息包括起始时间,结束时间和运行时间;所述展示模块440,用于根据所述时间信息绘制所述任务的运行时序图。
进一步的,所述全局时间获取模块410还用于获取所述嵌入式系统的定时间间隔的计数器的地址,所述计数器的计数频率高于嵌入式系统中的任务执行频率;根据所述地址对所述定时间隔的计数器进行初始化,得到所述全局时间。
进一步的,预先设置与所述预设命令对应的预设操作,所述执行模块420还用于在接收到所述预设命令时,执行与所述预设命令对应的预设操作;获取执行所述预设操作的时间为所述执行时间。
进一步的,所述时间信息获取模块430还用于获取调用所述预设命令的任务的标识信息,将所述执行时间与所述标识信息关联存储;获取同一个标识信息对应的所述执行时间,确定时序靠前的所述执行时间为所述起始时间,另一个执行时间为所述结束时间;将结束时间与所述起始时间作差,得到所述标识信息对应的任务的运行时间。
进一步的,所述展示模块440还用于以所述标识信息为纵坐标,以时间为横坐标,绘制所述时间信息得到所述任务的运行时序图。
进一步的,所述展示模块440还用于根据所述时间信息确定所述任务的CPU占用率;基于所述CPU占用率绘制CPU资源占用图。
进一步的,所述任务运行时序展示装置400还用于获取用户预先设置的异常情况;检测到所述异常情况发生时,获取异常触发时,调用所述预设命令的任务的时间信息。
本申请实施例提供的任务运行时序展示装置,获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息;基于所述时间信息确定所述任务的运行时序。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图8,本申请实施例提供了一种电子设备的结构框图,该电子设备500包括处理器510以及存储器520以及一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器520中并被配置为由所述一个或多个处理器510执行,所述一个或多个程序配置用于执行上述任务运行时序展示的方法。
该电子设备500可以是智能手机、平板电脑、电子书等能够运行应用程序的终端设备,还可以是服务器。本申请中的电子设备500可以包括一个或多个如下部件:处理器510、存储器520、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器520中并被配置为由一个或多个处理器510执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器510可以包括一个或者多个处理核。处理器510利用各种接口和线路连接整个电子设备500内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行电子设备500的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器510可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。
存储器520可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备500在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
本申请实施例提供的电子设备,获取嵌入式系统的全局时间;在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;根据所述执行时间确定调用所述预设命令的任务的时间信息;基于所述时间信息确定所述任务的运行时序。对调用预设命令的程序进行监测,获取任务的时间信息,并将所述时间信息以可视化的方式进行展示,从而用户可以清晰的了解到各个任务的运行时序,便于对嵌入式系统中的任务进行全面的时序分析。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种任务运行时序展示方法,其特征在于,应用于嵌入式系统,所述嵌入式系统中运行多个任务,所述方法包括:
获取嵌入式系统的全局时间;
在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;
根据所述执行时间确定调用所述预设命令的任务的时间信息,所述时间信息包括起始时间,结束时间和运行时间;
根据所述时间信息绘制所述任务的运行时序图。
2.根据权利要求1所述的方法,其特征在于,所述获取所述嵌入式系统的全局时间,包括:
获取所述嵌入式系统的定时间间隔的计数器的地址,所述计数器的计数频率高于嵌入式系统中的任务执行频率;
根据所述地址对所述定时间隔的计数器进行初始化,得到所述全局时间。
3.根据权利要求1所述的方法,其特征在于,预先设置与所述预设命令对应的预设操作,所述在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间,包括:
在接收到所述预设命令时,执行与所述预设命令对应的预设操作;
获取执行所述预设操作的时间为所述执行时间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述执行时间确定调用所述预设命令的任务的时间信息,包括:
获取调用所述预设命令的任务的标识信息,将所述执行时间与所述标识信息关联存储;
获取同一个标识信息对应的所述执行时间,确定时序靠前的所述执行时间为所述起始时间,另一个执行时间为所述结束时间;
将结束时间与所述起始时间作差,得到所述标识信息对应的任务的运行时间。
5.根据权利要求4所述的方法,其特征在于,所述根据所述时间信息绘制所述任务的运行时序图,包括:
以所述标识信息为纵坐标,以时间为横坐标,绘制所述时间信息得到所述任务的运行时序图。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述时间信息确定所述任务的CPU占用率;
基于所述CPU占用率绘制CPU资源占用图。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取用户预先设置的异常情况;
检测到所述异常情况发生时,获取异常触发时,调用所述预设命令的任务的时间信息。
8.一种任务运行时序展示装置,其特征在于,应用于嵌入式系统,所述嵌入式系统中运行多个任务,所述装置包括:
全局时间获取模块,用于获取嵌入式系统的全局时间;
执行模块,用于在接收到预设命令时,基于所述全局时间获取执行所述预设命令的执行时间;
时间信息获取模块,用于根据所述执行时间确定调用所述预设命令的任务的时间信息,所述时间信息包括起始时间,结束时间和运行时间;
展示模块,用于根据所述时间信息绘制所述任务的运行时序图。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,与所述一个或多个处理器电连接;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1至7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011520541.9A CN112559102A (zh) | 2020-12-21 | 2020-12-21 | 任务运行时序展示方法,装置,电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011520541.9A CN112559102A (zh) | 2020-12-21 | 2020-12-21 | 任务运行时序展示方法,装置,电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559102A true CN112559102A (zh) | 2021-03-26 |
Family
ID=75030704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011520541.9A Pending CN112559102A (zh) | 2020-12-21 | 2020-12-21 | 任务运行时序展示方法,装置,电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559102A (zh) |
-
2020
- 2020-12-21 CN CN202011520541.9A patent/CN112559102A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3149590B1 (en) | Performance optimization tip presentation during debugging | |
EP2476059B1 (en) | A method and apparatus for determining processor performance | |
WO2015043527A1 (zh) | 电子设备性能的测试方法及装置 | |
CN103838663A (zh) | 一种应用程序的测试方法及装置 | |
CN109522208B (zh) | 页面流畅度测试方法及装置、计算机装置及存储介质 | |
CN103246602A (zh) | 代码覆盖率确定方法及系统、代码覆盖检测方法及系统 | |
CN108664372A (zh) | 测试过程的监控装置、方法及计算机可读存储介质 | |
CN110908915B (zh) | 一种测试覆盖率的展示方法、装置及计算机系统 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN107193729A (zh) | 一种应用程序兼容性测试方法和装置 | |
CN113127314A (zh) | 一种检测程序性能瓶颈的方法、装置及计算机设备 | |
CN108287781B (zh) | 一种内存占用监控方法及装置、系统 | |
CN112985867A (zh) | 舵机测试方法、装置、设备及存储介质 | |
CN112559102A (zh) | 任务运行时序展示方法,装置,电子设备及存储介质 | |
CN109902001B (zh) | 对未初始化变量的检测方法及终端设备 | |
CN111127223A (zh) | 保险产品测试方法、装置和存储介质 | |
CN113590498B (zh) | 一种桌面操作系统应用启动时间的测试方法及系统 | |
CN113806231B (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN115269431A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
CN111309595A (zh) | 特效的测试方法、装置、电子设备及计算机可读介质 | |
CN111026989B (zh) | 页面加载时间的检测方法、装置和电子设备 | |
EP2788865B1 (en) | Method, device and computer program product for measuring user perception quality of a processing system comprising a user interface | |
CN112181853A (zh) | 程序调试方法、装置及系统 | |
CN108268347B (zh) | 一种物理设备性能测试方法及装置 | |
CN112527571A (zh) | 一种cpu指令集覆盖率计算方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |