Static value analysis for embedded systems

ValueAnalyzer is a tool for static analysis of register and memory contents. It is particularly useful for:

ValueAnalyzer screenshot
ValueAnalyzer screenshot

Verifying the absence of illegal accesses

When developing complex safety-critical software systems, it is quite common to integrate third-party object code in it. However, it is usually difficult to verify that such code only does what you want it to do:

Common reasons for such illegal accesses to your system by third-party code are:

Illegal accesses may cause problems in the field. Additionally, license or liability issues can arise.

ValueAnalyzer provides the solution to these problems. It statically analyzes object code and reports any violation of your spec.

Initialization analysis

A common principle in embedded control software is that global data structures like (function-)pointer variables are initialized in separate code sections. Consequently, when a task or runnable is analyzed for its worst-case timing or stack usage, these initializations are unknown. This usually leads to a less precise analysis with more manual annotations.

With ValueAnalyzer you can automatically collect initialization data for global variables and feed it as auto-generated annotations to a WCET, stack-usage, or yet another value analysis.

Dead code elimination

Modern development standards such as DO-178B require unreachable code to be eliminated. Since the required testing effort is high, it is desirable to remove unreachable code as early as possible.

ValueAnalyzer automatically identifies code that is provably unreachable during any program execution.

Features

Your benefits

Supported processors and compilers

ValueAnalyzer is available as an add-on to aiT, StackAnalyzer, TimingProfiler, and TimeWeaver, for all processor–compiler combinations supported by these tools.

Free trial

Start your free trial today, complete with free online training and technical support.