zephyriot / zephyr-issues

0 stars 0 forks source link

Create a tool for finding out stack sizes automatically. #966

Open nashif opened 8 years ago

nashif commented 8 years ago

Reported by Benjamin Walsh:

As a user of Zephyr, I would like to have the sizes of the thread stacks to be computed automatically instead of going by guess work and/or manually auditing the stacks.

(Imported from Jira ZEP-1061)

nashif commented 7 years ago

by Johan Hedberg:

There are some challenges with creating something like this: variable length arrays and recursive function calls. Any thoughts on how to deal with those?

nashif commented 7 years ago

by Andrew Boie:

This is quite obviously a topic of general interest in computer science so I'm going to survey existing work on this before making any specific proposals.

nashif commented 7 years ago

by Anas Nashif:

Interesting pointer:

https://mcuoneclipse.com/2015/08/21/gnu-static-stack-usage-analysis/

nashif commented 7 years ago

by Vinayak Kariappa Chettimada:

Internally in nordic we use python scripts to parse the map (lst) files (KEIL toolchain supports callgraph generation) and construct a custom call tree/graph in python, they are part of regression tests for SoftDevice build. The results are tuned with manual review and addition of exceptions to call paths that are not possible by design etc. These are then compared with runtime numbers from thousands of regression system tests on a daily/weekly basis.

nashif commented 7 years ago

by Andrew Boie:

Robert Beatty recommend we move this from 1.8 to 'Future'. Need to focus on MMU support for 1.8.

nashif commented 7 years ago

by Robert Beatty:

Andrew Boie , OK. Pushing to {{1.9}}

nashif commented 7 years ago

by Andrew Boie:

I think we already have something that does this -- see scripts/checkstack.pl. It doesn't seem to work correctly though, all I get for output is:

apboie@apboie-mobl1:/projects/zephyr/samples/hello_world master /projects/zephyr
$ objdump -d outdir/qemu_x86/zephyr.elf | /projects/zephyr/scripts/checkstack.pl 
0x0010003d __csSet [zephyr.elf]:            2048