主要内容

代码检测分析器

在代码检测分析器中,代码被添加到生成的代码中,以记录处理器上执行的每个任务的开始和停止时间。记录的每个任务的开始和停止时间被发送到开发计算机以进行保存、处理和显示。根据流程中所有任务的启动和停止时间以及优先级的组合,可以推断出每个任务的瞬时状态。

考虑一个简单的模型,有两个任务,一个高优先级和低优先级在一个嵌入式处理器上执行,并由一个代码仪表分析器测量。这个图显示了代码测试分析器所做的测量,以及由这些测量所导致的各个任务状态的推断。

通过查看该图,可以看出低优先级任务的状态是从高优先级任务的执行中推断出来的。由于只测量任务执行的开始和结束时间,一些相关数据可能会丢失,特别是内核延迟。由于内核延迟先于任务的启动,因此不会直接观察到中断事件的实际时间,并且可以假定任务的启动时间比中断的实际时间延迟。此外,当任务从抢占状态移动到运行状态时,内核延迟会添加到低优先级任务的解释执行时间中。

代码检测分析得益于易于生成和部署。在部署到操作系统以单任务模式运行单进程的处理器上的模型上,任务执行时间测量必须具有足够的准确性和精确度。因为只有最少的代码来记录任务的开始和停止时间t添加到每个任务中,在大多数情况下,代码插装探查器对任务执行时间的影响可以忽略不计。

局限性

代码检测评测提供了生成代码的轻量级度量工具。但是,在使用代码检测探查器测量任务执行和持续时间时,必须考虑两个限制。这些限制如下:

  • 无法测量内核延迟或内核延迟的组成部分。内核延迟通常可以视为常数。由于内核延迟对所有任务启动时间的影响大致相同,因此可以通过与模拟中的任务计时进行比较来推导出内核延迟的估计值。有关内核延迟的更多信息,请参阅内核延迟

  • 无法使用自定义代码块捕获任务中向OS内核发出的命令的效果。代码检测探查器记录任务的开始时间、结束时间以及其他任务对任务的抢占。但是,当任务调用OS内核时,代码插装探查器不会将任务和内核之间的控制更改记录为抢占。由于内核调用没有详细的计时知识,可以被视为不确定的,因此无法使用这种类型的探查器可靠地测量测量任务持续时间。有关任务持续时间的详细信息,请参阅任务持续时间.

另见

相关话题