Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR 6.50 ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
TolikG
В FreeRtos есть средства, хтя я ими не пользуюсь - как правило переполнение сразу приводит к частичному или полному краху - увеличиваю стек задачи и продолжаю тестировать. Сейчас отлаживаю прогу без RTOS - заметил что некоторые строчки кода не меняют локальные переменные. Посмотрел в окошке Locals поля Location - оказалось что переменные находятся в адресном пространстве флеш-памяти.
scifi
Один из очевидных способов - в стартапе заполнить пространство стека чем-нибудь узнаваемым (0xDEADBEAF или чем-то таким). Погонять программу, а потом через отладчик посмотреть, насколько оно затёрлось.
Ещё можно попробовать поставить Data Watchpoint на край стека. Но далеко не любая работа со стеком может быть отловлена таким способом.
Golikov A.
А как насчет сгенерить карту памяти, и поглядеть глазьями не вылезло ли что за пределы? Или там много рекуррентных вызовов?
jcxz
Хм... Это что-ж за вызовы такие?? wacko.gif

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

Если задача без ОС и нужно контролировать только один стек, то можно стек расположить в самых младших доступных адресах ОЗУ и
обработчик Bus Faults настропалить на точную или неточную ошибку доступа к памяти.
А если в вашем ARM-е имеется MPU, то очевидно можно и его для этого задействовать.
Непонятно только какой именно ARM имеется в виду....
scifi
Цитата(jcxz @ Jan 30 2014, 13:00) *
Если задача без ОС и нужно контролировать только один стек, то можно стек расположить в самых младших доступных адресах ОЗУ и обработчик Bus Faults настропалить на точную или неточную ошибку доступа к памяти.

Ловко!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.