Stack overflow is now a thing of the past.
StackAnalyzer automatically determines
the worst-case stack usage of the tasks in your application. The
analysis results are shown as annotations in the call graph and
control flow graph.

Call graph with stack usage annotations

Control flow graph with stack usage annotations
Features
- Detailed and precise information on both
user-stack and system-stack usage by application tasks.
- Stack analysis for all hierarchy levels:
routines, basic blocks, assembly instructions.
- Freely selectable entry points for the analysis.
- Easy recognition of critical program sections
thanks to customizable color coding.
- Fully integrated, feature-rich graphical and textual viewers
for control flow, analysis results, source code, assembly code, and configuration files.
- Seamless integration with other analysis tools from AbsInt
(e.g. aiT for worst-case execution time analysis)
in a single intuitive user interface called ał.
Why do you need StackAnalyzer?
Stack memory has to be allocated statically by the
programmer. Underestimating stack usage can lead to serious runtime
errors which can be difficult to find. Overestimating stack usage
means a waste of memory resources.
- StackAnalyzer provides
automatic tool support to calculate the stack usage of your
application. The analysis results are valid for all inputs and each
task execution.
- StackAnalyzer not only
reduces development effort but also helps to prevent runtime
errors due to stack overflow.
- The analysis results provide valuable
feedback in optimizing the stack usage of your application.
Supported targets
- StackAnalyzer for C16x/ST10
supports all 16-bit C16x/XC16x/C16x2 and ST10/Super10 microcontrollers
from Infineon and ST. It reads executables
in IEEE695 format (
.abs) as produced by the TASKING C compiler
or executables in OMF166 format as produced by the KEIL compiler.
|

 |
- StackAnalyzer for PowerPC
supports all 32-bit PowerPC microprocessors from Motorola and IBM. It reads
executables in
.elf format as produced by either of the following
compilers:
- GCC
- DiabData C compiler from WindRiver
- GHS ADA compiler
- GHS C/C++ compiler
|


 |
- StackAnalyzer for HC12/HCS12 reads linked
binary executables for M68HC12/STAR12/HCS12X microprocessors
as produced by the Cosmic C compiler or the Hiware C compiler from Metrowerks.
|

 |
- StackAnalyzer for ARM reads
binary executables given either as
.elf files that have been
produced from C source code by the C compiler in the ARM Developer Suite
or as .out files in coff format that have been produced from
C source by the TI C compiler.
|

 |
- StackAnalyzer also
supports the following processor/compiler combinations:
- TMS320C3x/Texas Instruments (TI)
- NEC V850/GHS (Green Hills)
- x86 (restricted)/Lynxworks GCC
- x86rm (realmode)/ic86
- M68k/GCC
- M68k/HP68K
- TriCore/TASKING (Altium)
- TriCore/HighTec gcc
- ARC/Metaware
- LEON3/GCC
- NEW: H8/GCC
|




 |
Stack depth analysis for further target processors
and compilers is currently under development. Please do not hesitate to
contact us for more information.
Qualification support
We offer special qualification support
for StackAnalyzer:
- Qualification Support Kits (QSKs) that simplify the qualification process for DO-178B level A.
- Qualification Software Life Cycle Data (QSLCD) Reports that document
our development processes, including all verification and quality assurance activities.
In the past, our QSKs and QSLCD Reports have been successfully used by leading
corporations in their DO-178B qualification process, most notably in the avionics industry.
StackAnalyzer is also an integral part of the SCADE
development environment, which is DO-178B qualified up to level A for Military and Aerospace Industries, IEC 61508 certified at SIL 3
by TÜV for Heavy Equipment and Energy, and EN 50128 certified at SIL 4 by
TÜV for Rail Transportation.
The bottom line
When searching
for actual products performing stack usage analysis for embedded software, the
StackAnalyzer seems to be the most promising (and probably only) choice.
Volker Barthelmann, University of Erlangen