You are on page 1of 3

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
 Immediate recognition of critical program sections thanks to customizable color
coding (see screenshots)
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.
Availability

 StackAnalyzer for C16x/ST10 supports all 16-bit


C16x/XC16x/C16x2 and ST10/Super10 microcontrollers from
Infineon Technologies and STMicroelectronics. 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:

o GCC

o DiabData C compiler from WindRiver

o GHS ADA compiler

o GHS C/C++ compiler

 StackAnalyzer for HC12 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 for H8 reads executables for H8 processors from
the H8/300 and H8S/2x00 series given as .abs files in IEEE695 or
SRecord file format that have been produced from C source code
by the IAR H8 Compiler. If the executable is in SRecord format,
StackAnalyzer for H8 may be given a map file containing debug
information missing in the executable.
 StackAnalyzer also supports the following processor/compiler
combinations:
o TMS320C3x/Texas Instruments (TI)

o NEC V850/GHS (Green Hills)

o x86 (restricted)/Lynxworks GCC

o x86rm (realmode)/ic86

o M68k/GCC

o M68k/HP68K

o TriCore/TASKING (Altium)
o NEW: TriCore/HighTec gcc

o NEW: ARC/Metaware

Stack depth/height analysis for further target processors and compilers is currently under
development. Please do not hesitate to contact us for more information.

StackAnalyzer is now also available as an integral part of the SCADE Suite, the market-
leading mission and safety-critical embedded software development environment from
Esterel Technologies. SCADE is the only model-based design solution to offer DO-178B
qualified C code generation up to level A, certified IEC 61508 C code generation up to SIL
3 and certified EN 50128 C code generation up to SIL 4. Thanks to StackAnalyzer, SCADE
is the first embedded-software development environment worldwide to feature stack usage
analysis at the model level.

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.

You might also like