Skip to content
Snippets Groups Projects
Commit c3567d80 authored by Tom Rini's avatar Tom Rini Committed by Wolfgang Denk
Browse files

README.SPL: Move the 'Estimating stack usage' from omap3 to here


The instructions are generic, so move to the generic doc.

Signed-off-by: default avatarTom Rini <trini@ti.com>
parent f8e754d5
No related branches found
No related tags found
No related merge requests found
...@@ -85,3 +85,26 @@ Debugging ...@@ -85,3 +85,26 @@ Debugging
When building SPL with DEBUG set you may also need to set CONFIG_PANIC_HANG When building SPL with DEBUG set you may also need to set CONFIG_PANIC_HANG
as in most cases do_reset is not defined within SPL. as in most cases do_reset is not defined within SPL.
Estimating stack usage
----------------------
With gcc 4.6 (and later) and the use of GNU cflow it is possible to estimate
stack usage at various points in run sequence of SPL. The -fstack-usage option
to gcc will produce '.su' files (such as arch/arm/cpu/armv7/syslib.su) that
will give stack usage information and cflow can construct program flow.
Must have gcc 4.6 or later, which supports -fstack-usage
1) Build normally
2) Perform the following shell command to generate a list of C files used in
SPL:
$ find spl -name '*.su' | sed -e 's:^spl/::' -e 's:[.]su$:.c:' > used-spl.list
3) Execute cflow:
$ cflow --main=board_init_r `cat used-spl.list` 2>&1 | $PAGER
cflow will spit out a number of warnings as it does not parse
the config files and picks functions based on #ifdef. Parsing the '.i'
files instead introduces another set of headaches. These warnings are
not usually important to understanding the flow, however.
...@@ -50,25 +50,3 @@ For the areas that reside within DDR1 they must not be used prior to s_init() ...@@ -50,25 +50,3 @@ For the areas that reside within DDR1 they must not be used prior to s_init()
completing. Note that CONFIG_SYS_TEXT_BASE must be clear of the areas that SPL completing. Note that CONFIG_SYS_TEXT_BASE must be clear of the areas that SPL
uses while running. This is why we have two versions of the memory map that uses while running. This is why we have two versions of the memory map that
only vary in where the BSS and malloc pool reside. only vary in where the BSS and malloc pool reside.
Estimating stack usage
----------------------
With gcc 4.6 (and later) and the use of GNU cflow it is possible to estimate
stack usage at various points in run sequence of SPL. The -fstack-usage option
to gcc will produce '.su' files (such as arch/arm/cpu/armv7/syslib.su) that
will give stack usage information and cflow can construct program flow.
Must have gcc 4.6 or later, which supports -fstack-usage
1) Build normally
2) Perform the following shell command to generate a list of C files used in
SPL:
$ find spl -name '*.su' | sed -e 's:^spl/::' -e 's:[.]su$:.c:' > used-spl.list
3) Execute cflow:
$ cflow --main=board_init_r `cat used-spl.list` 2>&1 | $PAGER
cflow will spit out a number of warnings as it does not parse
the config files and picks functions based on #ifdef. Parsing the '.i'
files instead introduces another set of headaches. These warnings are
not usually important to understanding the flow, however.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment