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

 
 
> Atmel Studio код неожиданно возвращается на main
Мария Е
сообщение Aug 22 2014, 08:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 18-11-07
Из: Москва
Пользователь №: 32 424



Всем привет!
Пишу в Atmel Studio (6.2.1153) проект для samd20. Вообще это мой первый опыт работы с 32 разрядными Мк, до этого были только 8-разрядные и не в atmel studio.
Использую ASF (3.19) код писался постепенно (точнее переписывался с кода для xmega под iar). На последнем этапе на определенной строчке при отладке перескакивает на начало main. По непонятным причинам. Если строку закоментировать, перескакивает на предыдущей. Если запускать без отладки, то просто код перестает выполнятся после определенного момента.
Ума не приложу, как с этим разбираться? Это глюк студии или моего кода? Как понять? Пробовала увеличивать размер стека, размер rstack - все равно вылетает. Игралась со степенью оптимизации - тоже не помогает.
Куда копать, подскажите. help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Aug 22 2014, 09:06
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Проблемы со стеком, невыровненным доступом и т.п. приводили бы к попаданию в обработчик исключения HardFault. У вас же, полагаю, происходит переход на ResetHandler. Наиболее вероятной причиной мне кажется срабатывание собаки (Watchdog). Почитайте ее описание для вашего процессора - возможно она включена по умолчанию и ее надо принудительно выключить или перенастроить на нужное вашей программе время.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Мария Е
сообщение Aug 22 2014, 10:26
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 18-11-07
Из: Москва
Пользователь №: 32 424



Цитата(Сергей Борщ @ Aug 22 2014, 13:06) *
Проблемы со стеком, невыровненным доступом и т.п. приводили бы к попаданию в обработчик исключения HardFault. У вас же, полагаю, происходит переход на ResetHandler. Наиболее вероятной причиной мне кажется срабатывание собаки (Watchdog). Почитайте ее описание для вашего процессора - возможно она включена по умолчанию и ее надо принудительно выключить или перенастроить на нужное вашей программе время.


Да, спасибо за совет. Сама думала проверить эту гипотезу, но забыла. Судя по описанию, фьюзам и значениям регистров в debug режиме watchdog выключен.

Еще дополнение. Оказывается, курсор прыгает на начало main в отладке, а следующим шагом на строку, следующую за той, после которой перепрыгнул на начало main. И вот в этой второй строке он вообще уходит непонятно куда. Просто дебаггер висит и все. Если нажать break в этот момент, все равно весит. Поставила точку останова в reset_handler, код там останавливается только в самом начале.

Сообщение отредактировал Мария Е - Aug 22 2014, 10:35
Go to the top of the page
 
+Quote Post



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

 


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


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