Я пытаюсь проанализировать использование стека моей встроенной программы с помощью инструментальной привязки arm-gcc. Программа однопоточная, поэтому я обычно могу анализировать стек, используя параметр -fstack-usage
gcc.Файлы использования стека ARM-gcc пустые
Обычно эта опция генерирует файлы .su
вместе с единицами компиляции. Они описывают использование стека для каждой функции. Однако в моем случае эти файлы пустые.
Вот пример содержимого файла .su (от https://mcuoneclipse.com/2015/08/21/gnu-static-stack-usage-analysis/):
main.c:36:6:bar 48 static
main.c:41:5:foo 88 static
main.c:47:5:main 8 static
Я использую gcc-arm-none-eabi-5_4-2016q3
, но проблема также присутствует на gcc-arm-none-eabi-5_3-2016q1
.
У вас есть идея? Или другое решение для управления использованием стека?
Вы указали опцию '-fstack-usage' с вашей командной строкой компиляции (не связывая линию)? Я пробовал это с gcc-arm-none-eabi-4_9-2015q2, и он отлично работает. –
Я даю параметр как gcc (для компиляции), так и g ++ (для привязки). Я попытаюсь переключиться на ld в качестве компоновщика. – Gp2mv3
Используйте gcc для связи вместо ld, это рекомендуется. –