How to determine maximum stack usage in embedded system with gcc?

后端 未结 5 2114
谎友^
谎友^ 2020-11-28 03:58

I\'m writing the startup code for an embedded system -- the code that loads the initial stack pointer before jumping to the main() function -- and I need to tell it how many

5条回答
  •  無奈伤痛
    2020-11-28 04:38

    Just in case no one comes up with a better answer, I'll post what I had in the comment to your other question, even though I have no experience using these options and tools:

    GCC 4.6 adds the -fstack-usage option which gives the stack usage statistics on a function-by-function basis.

    If you combine this information with a call graph produced by cflow or a similar tool you can get the kind of stack depth analysis you're looking for (a script could probably be written pretty easily to do this). Have the script read the stack-usage info and load up a map of function names with the stack used by the function. Then have the script walk the cflow graph (which can be an easy-to-parse text tree), adding up the stack usage associated with each line for each branch in the call graph.

    So, it looks like this can be done with GCC, but you might have to cobble together the right set of tools.

提交回复
热议问题