All tools now support floating licenses in addition to node-locked licenses. Any existing node-locked license can also be upgraded to a floating license if desired. Please contact support@absint.com with any questions.
All tools now support running multiple analyses in parallel to save time.
In batch mode, the desired concurrency limit can be specified using the option -j <number>
.
In the GUI, you can set a default limit in the Preferences. It can then
be overridden for a particular analysis run by pressing and holding down the “Run All”
button to select a new limit from a popup.
This all-new tool provides worst-case execution time estimates by combining static path analysis with timing measurements obtained from real-time instruction-level tracing. A preview version for PowerPC is now available on request.
The new C++ Call Target Analyzer automatically resolves C++ virtual function calls by parsing the application source code.
Since release 16.10, all tools rely on DLLs from the Microsoft Visual C++ Redistributable
for Visual Studio 2017. Starting with this release, the redistributable is included
in the installer as an optional component, or can be installed manually at a later point
from the directory share/3rdparty/vc
.
inf
,
are now only accepted for the chronometrical units. If your expected bounds do include inf
,
please check the manual on how to make it be assumed automatically
(e.g. by writing 42
instead of -inf..42
).area contains
.area contains data
annotations.align(x, n)
as a shortcut for x - (x % n)
.
For example, to provide an initial stack pointer that is aligned to 16 bytes you can now use
align(address("STACK_SEG"), 16)
count accesses
annotation now supports providing a custom name for the corresponding area:
area 0xd0000000 to 0xd000ffff count accesses: "DATA";The textual report will then contain information such as:
Global Access Statistics:
- Region 'DATA': 0xd0000000 .. 0xd000ffff
- Port Width: 64bit
- Reads: 461
- Writes: 509
- Unknown: 0
contains data: [ address(("EventTable"[])), address("HeadEvent") ];can now evaluate to a precise set of constants, rather than plain intervals, if the allowed set size is large enough.
area 0x400281e0 width 1 contains { data: [0x00, 0xfe..0xff]; }will now be precisely used by the value analysis:
memory areas considered as constant:
1: [0x400281e0]
[0x400281e0]:1 contains [0x00, 0xfe..0xff]
takes X cycles
annotation is now supported not only for loops but also for non-recursive routines:
routine "testFunction" { takes: 1234 cycles; }
routine <ProgramPoint> begin partitioning: trace;
Annotated call resolves to routines with mismatching type signatures:
- 'f(int)
'
- 'g(int, int)
'
- 'h(double)
'
This could be due to an incorrect annotation.
Please review your annotation.
tw
/twi
instructions.<wcet_edge source_block="b183" source_context="r180_c0" count="1" cycles="55" edge_cycles="55" target_block="b274" target_context="r180_c0"> <wcet_cache_infos> <wcet_cache_info routine="r180" type="icache" hits="14" misses="9" /> <wcet_cache_info routine="r180" type="dcache" hits="2" misses="2" /> </wcet_cache_infos> </wcet_edge>