реклама на сайте
подробности

 
 
> IAR 6.50 ARM, Как диагностировать переполнение стека?
TolikG
сообщение Jan 30 2014, 06:26
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 19-03-10
Пользователь №: 56 071



В FreeRtos есть средства, хтя я ими не пользуюсь - как правило переполнение сразу приводит к частичному или полному краху - увеличиваю стек задачи и продолжаю тестировать. Сейчас отлаживаю прогу без RTOS - заметил что некоторые строчки кода не меняют локальные переменные. Посмотрел в окошке Locals поля Location - оказалось что переменные находятся в адресном пространстве флеш-памяти.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Jan 30 2014, 08:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А как насчет сгенерить карту памяти, и поглядеть глазьями не вылезло ли что за пределы? Или там много рекуррентных вызовов?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 30 2014, 09:00
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Хм... Это что-ж за вызовы такие?? wacko.gif

Цитата(scifi @ Jan 30 2014, 13:19) *
Ещё можно попробовать поставить Data Watchpoint на край стека. Но далеко не любая работа со стеком может быть отловлена таким способом.

Если задача без ОС и нужно контролировать только один стек, то можно стек расположить в самых младших доступных адресах ОЗУ и
обработчик Bus Faults настропалить на точную или неточную ошибку доступа к памяти.
А если в вашем ARM-е имеется MPU, то очевидно можно и его для этого задействовать.
Непонятно только какой именно ARM имеется в виду....
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016