嵌入式软件执行效率分析器aiT WCET
在实时系统中,一个最基本的特征就是要求程序中的任务能够在规定的时间里执行完成;只有每个实时任务都在规定时间里完成才能保证整个系统正常工作。开发人员有职责保证程序能够达到指定的时间要求。
AbsInt 的 aiT WCET 能够分析出您系统中任务的最大执行时间。分析可以针对
所有的输入和每个任务。
aiT 是第一个用来保证可靠性软件时间特性的自动化工具。它基于静态方式来分析任务中使用的 cache 和管道(pipeline)操作;从而能够正确地计算出系统的最大执行时间。
aiT 赢得了 2004 年欧洲 Information Society Technology (IST)奖项。
推算最大执行时间面临的挑战:
如果分析方法中不考虑 cache 和管道(pipeline)操作,那么计算出的 WCET 将远高出实际值,这样将会导致硬件资源的严重浪费。
测量一个任务的执行时间通常是不可靠的;例如,通过验证所有的条件来测量最大运行时间通常是难以实现的。
关闭数据 cache 和指令 cache 来简化 WCET 的推算将会导致性能的严重下降。
aiT 的解决方法:
aiT-基于你系统的真实的性能进行推算,这样就能确保不会造成硬件资源额外的浪费。
aiT-分析程序所有的输入和执行情况来计算运行时间;现在花费大量的时间来
进行性能测试将成为历史。
aiT 直接分析二进制可执行代码;完全独立于编译器和源代码语言;这意味着不需要改变您的工具链或者程序的执行和性能。
aiT 的输入:
aiT 分析的是目标代码,要求生成被分析程序的源代码中没有使用动态数据结构和
setjmp/longjmp 语句。
用户可以通过注解的方式对程序进行说明,如程序中间接函数调用的目标地址以及循环的最大次数等;这些信息只有在工具不能自动侦测到的时候才需要。
对于内存和总线的描述,也就是对于内存最大和最小访问时间的列表。
被分析任务的开始地址。
aiT 的输出:
在没有外部程序打断的情况下,程序的最大执行时间。
提供详细的可视化的分析结果;例如,最大执行时的路径及不同程序点的状态机。
aiT 支持的处理器:
ARM7, Motorola Star12/HCS12, PowerPC555, PowerPC755, ColdFire 5307。关于其它处理器请和我们联系。
为什么需要aiT:
在实时系统中,在任务实际运行前,需要知道在最差情况下的任务执行时间。在事件触发系统或者周期系统中(如 RMA)需要分析出确定的时间;在时间触发系统中(如 TTA)需要在静态情况下确定出固定的时间。
aiT 能够通过分析和测试替换有错误倾向的方法,从而能够提高系统的安全性。
随着微处理器性能的提高,单个嵌入式处理单元能够完成越来越多的功能。软件越来越复杂,就越来越难以了解软件中各模块的时间性能;测试系统所有的输入条件几乎是不可能的。
aiT 提供自动工具来计算程序最大执行时间;从而节省您宝贵的开发时间。