Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/114: Рейтинг темы: голосов - 114, средняя оценка - 4.88
KiysM13
1

AVR Studio 6 симуляция прерываний

18.07.2012, 12:20. Показов 21586. Ответов 22
Метки нет (Все метки)

Не могу в студии попасть на вектор прерываний и его обработку. Пробовал на нескольких примерах. В протеусе все работает. Копипастил даже пример из ликбеза по студии великого Di (пример с UART). Вроде проставил все регистры и флаги, но ничего не получается. Нет перехода на вектор прерывания.

В пошаговом режиме после команды sei не выставляется флаг разрешения I (ставлю его в ручную). Так и должно быть или это глюк какой-то??

Может кто нить скинет пошаговую версию с картинками (или видео), что и как надо сделать для того, что бы попасть на обработку прерываний?

P.S.:вызов подпрограмм и выход из них происходит нормально, счетчики команд и указатели стека все выполняется корректно.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2012, 12:20
Ответы с готовыми решениями:

Симуляция прерываний в AVR-AtmelSudio. почему не работает
Подскажите, как в Atmeltudio 7 (6;5;4 AVR Studio4-6) реализуется симуляция прерываний. У меня...

Симуляция в AVR Studio
Помогите, пожалуйста, разобраться. При тестировании кода в AVR Studyo 4.19 для ATMiko48 не могу...

Проблема с симуляцией прерываний в AVR Studio 4
Написал очень простой код, прерывание по совпадению канала А таймеров 0,1 и 2 для Atmega644....

AVR Studio, ATmega64a и непонятки с векторами прерываний
всем привет. что-то непонятное у меня происходит при симуляции в Авр Студии 4.19 мк Атмеги64а...

22
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
18.07.2012, 12:38 2
Такая проблема имеет место быть, я писал в поддержку Atmel, но ответа так и не получил.
0
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 111
21.07.2012, 23:21 3
Цитата Сообщение от KiysM13
В пошаговом режиме после команды sei не выставляется флаг разрешения I (ставлю его в ручную). Так и должно быть или это глюк какой-то??
Надо нажать Play (зелененькую стрелочку) через 1-2 секунды симуляций sei начнет работать. Еще раз проверьте свои маски прерываний, программу ведите в дизассемблере, т.к. GCC встраивает свои библиотеки и в операциях копирования стеков всегда блокируются прерывания CLI, если смотреть ассемблер.

Внизу ссылка на видео как обойти баг:
http://youtu.be/HmmYW2WK0p0

P.S.
Это не весь ассортимент багов. Мною был обнаружен незначительный баг, когда настраиваешь пины портов, то устанавливаются кроме нужных еще и другие пины. Но если программу вести в отладлике построчно, а не по брейк-поинтам, то данная проблема не возникает.
0
KiysM13
25.07.2012, 20:11 4
Да вот к сожалению я не владею написанием на Си. Пока подсел на ассемблер, как основу основ. Но ход мыслей из видео понятен. Спасибо.
Снёс 6-ю версию и поставил 5-ую. Там вроде бы пока проблем с установкой флагов нет.
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 111
25.07.2012, 21:05 5
Цитата Сообщение от KiysM13
Да вот к сожалению я не владею написанием на Си. Пока подсел на ассемблер, как основу основ.
Ээ... это плохая идея. Я сам с Ассемблера начинал, правда под PIC и пожалел. Серьезной программы на нем не напишешь. Экономить память контроллера на сегодняшний день неактульно. Так что вы зря теряете время, изучайте сразу нормальный инструмент. А ассемблер будет для вас так атрибутикой для отладки, достаточно прочесть основы его синтаксиса и работы, не вдаваясь в детали - короче базовые знания.
0
0 / 0 / 0
Регистрация: 31.12.2010
Сообщений: 326
25.07.2012, 22:30 6
Ну прочитаете вы и забудете сразу. Чтение без практики, уж извините, до попы! :)
0
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 72
31.07.2012, 16:03 7
Цитата Сообщение от Modist
Цитата Сообщение от KiysM13
Да вот к сожалению я не владею написанием на Си. Пока подсел на ассемблер, как основу основ.
Ээ... это плохая идея. Я сам с Ассемблера начинал, правда под PIC и пожалел. Серьезной программы на нем не напишешь. Экономить память контроллера на сегодняшний день неактульно. Так что вы зря теряете время, изучайте сразу нормальный инструмент. А ассемблер будет для вас так атрибутикой для отладки, достаточно прочесть основы его синтаксиса и работы, не вдаваясь в детали - короче базовые знания.
Начинать изучение контроллеров полезнее с ассемблера, лучше будет понимание работы устройства - организация памяти, всякие там команды на атомарном уровне и все такое. И после хорошего изучения ассемблера и написания пары проектов на нем отлаживать Сишный код в дизассемблере - одно удовольствие.

И по теме, если для кого еще актуально и не все перешли на AS5:
Цитата Сообщение от Dan
This is a bug in Atmel Studyo 6.0, where stepping over SEI overwrites the I flag (symulator omd real hw).
You can get rid of this bug by disabling the "Mask interrupts while stepping" option in "Tools | Options | Debugger ".

The reason is that Studyo disables interrupts prior to single stepping, omd restores the previous state of the interrupt enable bit afterwards.

Unfortunately, the restore logic foytid to account for instructions that change the bit directly (CLI, SEI, RETI). This affects both symulator omd real hw.

The workaround is thus to
1. Not step over CLI, RETI or SEI, or
2. Dysable the interrupt masking logic as dessribed above.
Взято отсюда: http://www.avrfrioks.net/index.php?name ... c&p=979945
0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
08.03.2013, 19:07 8
Подниму тему, поставил AVR Studyo 6.

При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.

Подскажите что делать ?
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
08.03.2013, 19:26 9
Цитата Сообщение от KiysM13
... Так и должно быть или это глюк какой-то??...
Цитата Сообщение от RiosomX
...Подскажите что делать ?
Поддержка ассемблера Atmel остановилась в версии студии 4.19. Все последующие версии привносили в поддержку ассемблера только глюки. Выводы делайте сами.
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
08.03.2013, 20:35 10
Цитата Сообщение от RiosomX
При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.
А должно было помочь? При входе на вектор прерывания, глобальные прерывания запрещаются, при выходе командой reti - восстанавливаются. Нету у avr нативного нестинга.
0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
08.03.2013, 21:12 11
Цитата Сообщение от Гарнист
Цитата Сообщение от RiosomX
При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.
А должно было помочь? При входе на вектор прерывания, глобальные прерывания запрещаются, при выходе командой reti - восстанавливаются. Нету у avr нативного нестинга.

А кто сказал что он входит на вектор ? После первого RCALL\RETI, прерывания не восстанавливаются и включатся отказываются.
0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
08.03.2013, 22:36 12
Вообщем такая проблема, во всех версиях старше 4.13 проект не работает.

На 4.13 работает отлично.

На 4.14 начинает дергаться стрелка, все мигать при дебаге, а 1ый и 2й бит MCUCR отказываются работать, выставляются но вместо срабатывания по нарастанию получаю просто Riserved и никакого прерывания не наступает.

И да, для советов типа работай на 4.13, оно виснит постоянно, и все равно некоторые фичи не работают. Например таймер на Attiny25 пашет только в AvrSim2 но зато там не пашет конфиг дебагера.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
09.03.2013, 01:45 13
Атас! Открою Вам страшную тайну - в любой студии есть HELP (только не говори не кому - пусть это останется тайной). В нем есть раздел - Симмулятор. А в том разделе можно найти инфу , что поддерживает и что не поддерживает симмулятор для данного дивайса.
Но это только между нами.
0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
09.03.2013, 07:56 14
Цитата Сообщение от YTYOUT
Атас! Открою Вам страшную тайну - в любой студии есть HELP (только не говори не кому - пусть это останется тайной). В нем есть раздел - Симмулятор. А в том разделе можно найти инфу , что поддерживает и что не поддерживает симмулятор для данного дивайса.
Но это только между нами.
Между нами, по секрету, вопрос про версии программы, а не симулятора, только тссс.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
09.03.2013, 12:34 15
А вот оно как и это не Вы писали, понял . Тсссс
Цитата Сообщение от RiosomX
При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.
Подскажите что делать ?
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
09.03.2013, 12:47 16
Ребята, хватит письками меряться давайте жить дружно! Если постите, то по делу.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
09.03.2013, 12:58 17
А я и не меряюсь , просто пытаюсь объяснить , что общего симмулятора в студии нет. И симмулируется каждое устройство отдельно и для каждой версии студиии их пишут программисты для каждого устройства свой. И вот как он накосячит так и будет работать симмулятор от версии к версии для его устройсва. Узнать это можно заглянув в хелр любой студии., а не создавать темы ни о чём.
0
0 / 0 / 0
Регистрация: 04.09.2012
Сообщений: 82
09.03.2013, 14:02 18
Цитата Сообщение от RiosomX
Подниму тему, поставил AVR Studyo 6.

При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.

Подскажите что делать ?
Уже писал по этому поводу, сделай так и будет тебе счастье.

0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
09.03.2013, 16:32 19
Цитата Сообщение от YTYOUT
А я и не меряюсь , просто пытаюсь объяснить , что общего симмулятора в студии нет. И симмулируется каждое устройство отдельно и для каждой версии студиии их пишут программисты для каждого устройства свой. И вот как он накосячит так и будет работать симмулятор от версии к версии для его устройсва. Узнать это можно заглянув в хелр любой студии., а не создавать темы ни о чём.
Извиняюсь, тсссссс.

В хелп не залезал, но гугл порыл основательно, ни разу не сталкивался с хелпом от которого есть толк.

ПС Если уж на то пошло, то ответы на 90% тем форума можно получить в тех документации. Просто зачастую легче спросить у знающих людей и не тратить драгоценное время на поиск того что уже нашли.
0
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 163
09.03.2013, 16:33 20
Цитата Сообщение от domis
Цитата Сообщение от RiosomX
Подниму тему, поставил AVR Studyo 6.

При симуляции автоматически сбрасывается флаг глобальных прерываний. Обновил до 6.1 не помогло.

Подскажите что делать ?
Уже писал по этому поводу, сделай так и будет тебе счастье.

Спасибо. Правда все равно решил остаться на 4.13
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2013, 16:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

CAVR против AVR Studio, что не так в программе под AVR Studio
Проблема такая, есть исходник, если его компилировать в CAVR заливаю в МК все работает, если этот...

AVR ATtiny13A Assembler нажатие кнопки без прерываний
Доброго времени суток. Изучаю программирование микроконтроллеров по книге Белова Л.В....

Симуляция в Atmel Studio 6
Здравствуйте. Не могу понять, в чем проблема. Запускаю в отладке программу для USORTa....

AVR Studio 6 и AVR Toolchain вопросы!
Всем доброго времени суток. Решил я написать софтинку в новой студии от Атмела AVR Studyo 6. Все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.