Использование кучи и стека ARM Cortex M3, M5

Я хочу измерить использование стека и кучи, пока на моем контроллере Renesas S3A7 на базе ARM M3 работает определенный математический алгоритм. Есть ли способ или процедура, как я могу измерить максимальный объем памяти, используемой при выполнении определенных функций?


person Justin J    schedule 21.08.2017    source источник
comment
зачем вам куча на микроконтроллере? похоже на сломанный дизайн. Для использования стека вы можете использовать подход, подобный valgrind.   -  person old_timer    schedule 21.08.2017
comment
ваш компилятор может предоставить параметр для проверки или регистрации самого глубокого стека. если вы используете кучу, вы можете зайти в свой код malloc/sbrk и добавить что-то, чтобы отслеживать самую дальнюю часть памяти, которую вы выделили.   -  person old_timer    schedule 21.08.2017
comment
что такое кортекс-м5?   -  person old_timer    schedule 21.08.2017
comment
Спасибо old_timer за ответ. Я использую ARM Cortex M3.   -  person Justin J    schedule 22.08.2017
comment
Я имею в виду М7. Опечатка в слове М3.   -  person Justin J    schedule 22.08.2017


Ответы (1)


Чтобы измерить использование стека или кучи, вы должны инициализировать эту область значением заполнения перед использованием, вы можете выбрать одно из перечисленных ниже.

https://en.wikipedia.org/wiki/Hexspeak

Например: 0xBAADF00D или 0xDEADBEEF.

Идея состоит в том, чтобы подсчитать количество оставшихся значений заполнения, чтобы оценить максимальное использование.

person leaumonte    schedule 08.10.2017