Optional user annotations such as targets of indirect function calls, upper bounds on loop iteration counts, recursion depth, code snippets that should not be analyzed, infeasible code, etc.
Annotations are only required if the information cannot be detected automatically by aiT, e.g. for dynamic program properties. The amount of required annotations is dramatically reduced by advanced techniques such as automatic loop-bound and array-call recognition. It can be reduced further still by running an initalization analysis using the ValueAnalyzer add-on.
“aiT is very easy and straightforward to use. While it does provide a lot of configuration options, one can get to a first WCET computation result very quickly. Advanced configuration through annotations can be added later. [… It also] has by a wide margin the best capabilities to resolve dynamic calls automatically.”Independent study by University of Stuttgart (PDF)
Annotations for library functions (RT, communication) and RTOS functions can be provided by their respective developers either on source level or in separate files.
alloc
family (such as malloc
and
calloc
) must not occur in the analyzed code.setjmp
and longjmp
statements
must not be used in the analyzed code.