StackAnalyzer automatically determines the worst-case stack usage of the tasks in embedded applications.

Stack overflow is now a thing of the past

In embedded systems, stack memory has to be allocated statically by the developer. Underestimating stack usage can lead to serious runtime errors (due to “stack overflow”) which can be difficult to find. On the other hand, overestimating stack usage means a waste of hardware resources.

StackAnalyzer provides automatic tool support to calculate the stack usage of embedded applications. The detailed and precise analysis results are valid for all inputs and each task execution under any circumstances.

  • When searching for actual products performing stack usage analysis for embedded software, StackAnalyzer seems to be the most promising (and probably only) choice.''

    V. Barthelmann, Germany

StackAnalyzer reads binary executables or assembly files and automatically computes and visualizes the application's call graph and control flow graph. The stack usage analysis results are shown as annotations to functions, basic blocks and assembly instructions. Critical program sections can be immediately identified thanks to customizable color coding. The visualization is done with the aid of aiSee, our award-winning graph layout sofware.

The analysis results provide valuable feedback in optimizing the stack usage of embedded applications. Thus, StackAnalyzer not only helps to prevent serious runtime errors, but also reduces development effort and system costs.

Handout

Images

Control flow graph with stack usage annotations

More images

Supported processors and compilers

  • C16x/TASKING
  • ST10/TASKING
  • PowerPC/DiabData
  • PowerPC/vxWorks gcc
  • HC12/Cosmic
  • HC12/Hiware
  • HCS12/Cosmic
  • HCS12/Hiware
  • NEC V850/Green Hills
  • TMS320C3x/TI
  • ARM/TI
  • ARM/ARM
  • H8/IAR
  • H8S/IAR
  • x86/LynxOS gcc
  • x86rm/ic86
  • M86k/GCC
  • M86k/HP68K
  • TriCore/Tasking
  • TriCore/HighTec gcc
  • ARC/Metaware

Top