Я хочу измерить использование стека и кучи, пока на моем контроллере Renesas S3A7 на базе ARM M3 работает определенный математический алгоритм. Есть ли способ или процедура, как я могу измерить максимальный объем памяти, используемой при выполнении определенных функций?
Использование кучи и стека ARM Cortex M3, M5
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