基于逻辑分析仪的CPU内部中断响应时间和恢复时间的测量方法与流程

文档序号:11949915阅读:1117来源:国知局
基于逻辑分析仪的CPU内部中断响应时间和恢复时间的测量方法与流程

本发明涉及一种测量方法,尤其是一种基于逻辑分析仪的CPU内部中断响应时间和恢复时间的测量方法。



背景技术:

目前,国内的发动机控制软件,不管是采用多重中断框架的软件还是采用实时操作系统的软件,都避免不了使用CPU内部中断,例如CPU自带的定时器中断或者通过指令触发的其它软中断,而且这些内部中断通常扮演着重要的角色,比如实时调度的时钟节拍中断。

中断响应时间和恢复时间是实时操作系统或者多重中断系统最重要的性能指标之一,中断响应时间是指中断请求产生到处理器(CPU)开始处理用户程序之间的时间,中断恢复时间是指处理器返回到被中断代码所需的时间。中断响应时间和恢复时间映着系统对于外部事件响应的速度,对于分析实时系统的实时性能具有重要意义,特别是对于中断切换频率的系统,这两个时间占用的系统运行时间越大。中断响应时间和恢复时间的精确测量,不仅为控制软件的前期架构设计提供了重要的参考依据,而且直接关系到保证后期控制器产品的性能。

国外的发动机控制软件的有限技术资料中虽然也有提到操作系统用到CPU内部中断,但未找到中断测量的具体的指导和实施方法。国内的发动机控制软件在此之前对于中断响应时间和恢复时间这两个性能一直缺乏足够的关注,也没有对它们的测量有着明确的指导方法,且对于CPU内部中断这两个指标的测量的难点在于中断请求事件和中断返回时刻点的捕获,不像外部中断有中断请求的硬件信号可以观察。其它行业有关程序运行时间的测量方法,是运用CPU自带定时器来进行测量,它对于普通顺序执行的时间测量能达到精确的效果,但对于内部中断这两个时间指标的测量,因为缺乏对测量点的捕获,会造成很大的精确度损失。



技术实现要素:

本发明的目的是克服现有技术中存在的不足,提供一种基于逻辑分析仪的CPU内部中断响应时间和恢复时间的测量方法,其操作方便,能实现对CPU内部中断响应时间以及恢复时间的精确测量,减少系统运行时间和时序分析的偏差,安全可靠。

按照本发明提供的技术方案,一种基于逻辑分析仪的CPU内部中断响应时间和恢复时间的测量方法,所述测量方法包括如下步骤:

S1、选取CPU的两个GPIO口,并将所选取的两个GPIO口配置为通用输出接口且初始化为低电平输出,所述两个GPIO口分别标识为GPIO1口以及GPIO2口;CPU通过GPIO1口、GPIO2口分别与逻辑分析仪匹配连接,在GPIO1口的电平处于上升沿时,逻辑分析仪采集并保存GPIO1口、GPIO2口对应的电平信号;

步骤S2、选定CPU的软件可触发中断,并在软件可触发中断触发前,翻转GPIO1口的电平,以使得逻辑分析仪对GPIO1口、GPIO2口对应的电平信号进行采集与保存;

步骤S3、触发所选定的软件可触发中断,并连续N次翻转GPIO1口的电平信号,且在中断处理过程中进行插桩,以使得在响应的软中断处理函数开始位置翻转GPIO1口的电平,并在中断处理函数结束位置将GPIO2口的电平置高;

步骤S4、在上述软件可触发中断恢复后且GPIO1电平变化后,逻辑分析仪停止对GPIO1口、GPIO2口对应电平信号的采集,并对记录GPIO1口、GPIO2口对应的电平信号进行分析,以确定中断响应时间T1以及恢复时间T2。

步骤S3中,在软件可触发中断触发后,连续N次翻转GPIO1口的电平信号时,(N-2)*相邻两侧翻转GPIO1口电平的间隔时间大于软件可触发中断的触发到CPU中止执行当前程序指令的时间,N大于等于3。

步骤S2中,选定CPU的软件可触发中断后,屏蔽CPU的其余中断。

本发明的优点:将CPU的GPIO1口、GPIO2口与逻辑分析仪连接,通过逻辑分析仪采集并记录GPIO1口、GPIO2口对应的电平信号,通过GPIO1口、GPIO2口对应电平信号的翻转变化,能够测量得到CPU内部中断的中断响应时间以及中断恢复时间,操作方便,减少系统运行时间和时序分析的偏差,安全可靠。

附图说明

图1为本发明的流程图。

图2为本发明逻辑分析仪采集GPIO1口、GPIO2口对应电平信号的示意图。

具体实施方式

下面结合具体附图和实施例对本发明作进一步说明。

如图1所示:能实现对CPU内部中断响应时间以及恢复时间的精确测量,避免系统运行时间和时序分析的偏差,本发明的测量方法包括如下步骤:

S1、选取CPU的两个GPIO口,并将所选取的两个GPIO口配置为通用输出接口且初始化为低电平输出,所述两个GPIO口分别标识为GPIO1口以及GPIO2口;CPU通过GPIO1口、GPIO2口分别与逻辑分析仪匹配连接,在GPIO1口的电平处于上升沿时,逻辑分析仪采集并保存GPIO1口、GPIO2口对应的电平信号;

具体地,对于选取的CPU,选取两个GPIO口,并将所选取的GPIO口配置为通用输出接口,并将所述GPIO口初始化为低电平输出的具体过程为本技术领域人员所熟知,此处不再赘述。逻辑分析仪与CPU连接时,将CPU的GPIO1口、GPIO2口分别与逻辑分析仪的两个连接输入通道连接,逻辑分析仪的地线与CPU的地线连接,逻辑分析仪与CPU具体的连接配合为本技术领域人员所熟知,此处不再赘述。一般地,逻辑分析仪的具有较高的采样精度,逻辑分析仪的工作参数可以为主频100M,采样精度为2ns。由于GPIO1口、GPIO2口均被初始化为低电平输出,在逻辑分析仪与CPU连接后,当且仅当GPIO1口的电平处于上升沿时,逻辑分析仪才会采集及保存GPIO1口、GPIO2口对应的电平信号。

步骤S2、选定CPU的软件可触发中断,并在软件可触发中断触发前,翻转GPIO1口的电平,以使得逻辑分析仪对GPIO1口、GPIO2口对应的电平信号进行采集与保存;

本发明实施例中,选取CPU内部的软件可触发中断,即在CPU上运行对应的软件,通过软件触发对应的内部中断,从而能够实现中断响应时间和恢复时间的测量。选定CPU的软件可触发中断后,屏蔽CPU的其余中断,以避免产生多中断抢占或嵌套的情况。由步骤1可知,由于GPIO1口初始化为低电平输出,因此,在翻转GPIO1口的电平后,使得GPIO1口具有上升沿,此时,逻辑分析仪能够实现对GPIO1口、GPIO2口对应电平信号的采集与存储。

步骤S3、触发所选定的软件可触发中断,并连续N次翻转GPIO1口的电平信号,且在中断处理过程中进行插桩,以使得在响应的软中断处理函数开始位置翻转GPIO1口的电平,并在中断处理函数结束位置将GPIO2口的电平置高;

本发明实施例中,在软件可触发中断触发后,连续N次翻转GPIO1口的电平信号时,(N-2)*相邻两侧翻转GPIO1口电平的间隔时间大于软件可触发中断的触发到CPU中止执行当前程序指令的时间,N大于等于3。所述软件可触发中断的触发到CPU中止执行当前程序指令的时间可以从CPU手册中查询得到;具体实施时,可以通过软件指令,实现GPIO1口的电平信号翻转。

软件可触发中断通过软件指令实现触发,具体触发过程为本技术领域人员所熟知。在中断处理过程中,通过在响应的软中断处理函数开始位置翻转GPIO1口的电平,能够实现捕获CPU开始处理中断用户程序的时刻点,通过在中断处理函数结束位置将GPIO2口的电平置高,能够实现捕获中断用户程序执行完毕的时刻点,可以采用本技术领域常用的技术手段实现在中断处理过程中的插桩,具体实施过程为本技术领域人员所熟知,此处不再赘述。

在对软件可触发中断进行触发后,连续N次翻转GPIO1口的电平信号时,利用N次翻转GPIO1口的电平信号中的第M次翻转(M=取整(软中断触发到CPU中止执行当前程序指令的时间/两次翻转CPIO1之间的间隔时间 + 1),M大于等于1)能模拟捕获CPU内部中断请求的产生,在第M次翻转GPIO1口的电平信号后,CPU进入中断处理过程,通过上述的时间设置,后续的翻转GPIO1口的电平信号能够实现捕获CPU返回到原程序的时间点以及用于观察中断恢复后的软件执行状态。

步骤S4、在上述软件可触发中断恢复后且GPIO1电平变化后,逻辑分析仪停止对GPIO1口、GPIO2口对应电平信号的采集,并对记录GPIO1口、GPIO2口对应的电平信号进行分析,以确定中断响应时间T1以及恢复时间T2。

本发明实施例中,逻辑分析仪对GPIO1口、GPIO2口对应电平信号的采样受限于逻辑分析仪的存储能力等限制,但至少需要保证能对GPIO1口、GPIO2口对应电平信号的采样至软件可触发中断恢复后,具体实施时,可以设置逻辑分析仪的采样停止条件,所述采样停止条件可以根据需要进行确定,此处不再赘述。在停止采样后,对记录的GPIO1口、GPIO2口对应的电平信号进行分析。

如图2所示,根据中断响应时间和中断恢复时间的定义,T1是中断响应时间,从图示T1开始位置:GPIO1口电平的下降沿代表中断请求产生,到T1结束位置:GPIO1口电平的上升沿代表CPU开始处理中断用户程序,从逻辑分析仪上读出T1结束位置与开始位置的时间差,从而得到中断响应时间T1。

对中断恢复时间T2,图中,T2开始位置:GPIO2口对应的上升沿代表中断用户程序执行完毕, T2结束位置:GPIO1口电平的下降沿代表CPU返回到原程序时刻点,从逻辑分析仪上读出T2结束位置与开始位置的时间差,即能得到中断恢复时间T2。

以CPU采用处理器TMS320F2812,CPU运行发动机控制软件,测量的内部中断是RTOSINT中断对应的中断响应时间T1以及中断恢复时间T2为例,对本发明的具体实施过程进行说明。具体地,

在控制软件的启动段之后,配置GPIOA10和GPIOD6两个管脚为通用输出功能,初始化为输出低电平,确保这两个管脚不在其它无关本次测量插桩代码中使用,屏蔽其它中断。连接两个GPIOA10和GPIOD6信号和接地线到逻辑分析仪的两个通道ch1、ch2和地线ch_Gnd,设置逻辑分析仪的采集精度为2ns,触发条件为GPIOA10的上升沿触发并保存数据。

在置RTOSINT中断标志位前,置GPIOA的数据寄存器值的第10位为1,GPIOA10为高电平,在置RTOSINT中断标志位后,反复置GPIOA的数据寄存器值的第10位为1或者0,然后达到翻转GPIOA10电平五次的效果。

在响应的软中断处理函数开始位置翻转GPIOA10对应的数据寄存器位的值,在中断处理函数结束位置将GPIOD6的数据寄存器位置为1,GPIOD6输出高电平。

逻辑分析仪采集并分析上述记录的数据,从而能得到中断响应时间T1以及中断恢复时间T2。具体地,利用GPIO的快速输出硬件特性(在TMS320F2812的GPIO翻转电平需要的时间是40ns,翻转GPIO用的指令只是1-3条CPU指令,占用时间最多为25ns),GPIO的电平变化时刻近似表达中断请求产生、CPU开始处理中断用户程序、中断用户程序执行完毕和CPU返回到被中断代码四个时刻点,中断响应和恢复时间测量的误差最多是25ns,这比定时器获取计数值的函数(包括函数出入栈的时间和函数处理时间)造成的误差要小,通过逻辑分析仪的高精度捕获GPIO信号的电平变化,然后通过分析数据,得出中断响应时间T1和中断恢复时间T2,测量结果的精度在100M左右的处理器上能到达几十ns左右。

按上述过程,可较为精确的测得发动机控制软件的RTOSINT中断响应时间T1和中断恢复时间T2,与理论分析符合,这为系统的时序和时间分析和验证提供基础,为产品性能的评估和验证提供了基础保证。

本发明将CPU的GPIO1口、GPIO2口与逻辑分析仪连接,通过逻辑分析仪采集并记录GPIO1口、GPIO2口对应的电平信号,通过GPIO1口、GPIO2口对应电平信号的翻转变化,能够测量得到CPU内部中断的中断响应时间以及中断恢复时间,操作方便,减少系统运行时间和时序分析的偏差,安全可靠。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1