mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-10 17:41:54 +00:00
Get stack analyzer supported to read annotation file and do basic
annotation on the callgraph.
The basic annotation includes:
1. Add missing calls to the callgraph
2. Ignore functions on the callgraph
BUG=chromium:648840
BRANCH=none
TEST=extra/stack_analyzer/stack_analyzer_unittest.py
make BOARD=elm && extra/stack_analyzer/stack_analyzer.py \
--objdump=arm-none-eabi-objdump \
--addr2line=arm-none-eabi-addr2line \
--export_taskinfo=./build/elm/util/export_taskinfo.so \
--section=RW \
--annotation=./extra/stack_analyzer/example_annotation.yaml \
./build/elm/RW/ec.RW.elf
make BOARD=elm SECTION=RW \
ANNOTATION=./extra/stack_analyzer/example_annotation.yaml \
analyzestack
Change-Id: I4cc7c34f422655708a7312db3f6b4416e1af917f
Signed-off-by: Che-yu Wu <cheyuw@google.com>
Reviewed-on: https://chromium-review.googlesource.com/614825
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
19 lines
596 B
Markdown
19 lines
596 B
Markdown
Stack Size Analysis Tool for EC Firmware
|
|
========================================
|
|
|
|
This tool does static analysis on EC firmwares to get the maximum stack usage of
|
|
each function and task. The maximum stack usage of a function includes the stack
|
|
used by itself and the functions it calls.
|
|
|
|
Usage
|
|
-----
|
|
|
|
Make sure the firmware of your target board has been built.
|
|
|
|
In `src/platform/ec`, run
|
|
```
|
|
make BOARD=${BOARD} SECTION=${SECTION} ANNOTATION=${ANNOTATION} analyzestack
|
|
```
|
|
The `${SECTION}` can be `RO` or `RW`. The `${ANNOTATION}` is a optional
|
|
annotation file, see the example_annotation.yaml.
|