Режим отладки в Atmel Studio
- Сообщения: 4
- Зарегистрирован: Чт янв 05, 2017 16:55:14
Здравствуйте. Решил заняться, да всё никак настроить не могу. Написал простую программу ( ), но в режиме отладки, переходя к функции delay программа выходит то ли в библиотеку, то ли ещё куда, сам ещё не понял ( ). На этом режим отладки заканчивается. Оптимизацию кода отключил, не помогло. За помощь буду очень благодарен.
- Реклама
что значит "режим отладки закончился"? по-моему, он весьма успешно продолжался
вы попали в "библиотечную" функцию - код ее вам отладчик показал, и потом, с каждым нажатием "шага" вы выполняете эту самую функцию... а она делает задержку аж в 1 секунду - это, кстати, 8000000 тактов (читай шагов ассемблерного кода). так что если терпения хватит - прошагаете ее всю.
а если терпения не хватает - ставьте точки ОСТАНОВА (Breakpoints) на важных строках основного кода (у вас это работа с портом) и делайте не пошаговое выполнение, а "запуск на исполнение" - прога сама станет в нужном месте, только терпения наберитесь.
вы попали в "библиотечную" функцию - код ее вам отладчик показал, и потом, с каждым нажатием "шага" вы выполняете эту самую функцию... а она делает задержку аж в 1 секунду - это, кстати, 8000000 тактов (читай шагов ассемблерного кода). так что если терпения хватит - прошагаете ее всю.
а если терпения не хватает - ставьте точки ОСТАНОВА (Breakpoints) на важных строках основного кода (у вас это работа с портом) и делайте не пошаговое выполнение, а "запуск на исполнение" - прога сама станет в нужном месте, только терпения наберитесь.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
В AS симуляция команд выполняется значительно медленнее чем это делал бы реальный МК. Запустите симуляцию, подождите например 60 реальных секунд и нажмите паузу. В окне состояния процессора можно поглядеть сколько он выполнил тактов за это время и сколько прошло у него времени согласно тактовой частоте. Будет очень большая разница. Проограмма на ассемблере симулируется несколько раз быстрее.
- Сообщения: 4
- Зарегистрирован: Чт янв 05, 2017 16:55:14
- Реклама
Выключите оптимизацию, точка наверняка заработает.
нет, оптимизация не касается volatile-переменных, а все порты и регистры периферии в avr-gcc определены именно как volatile-переменные. по скриншоту не понятно, что именно и где не работает. возможно, просто отключена генерация отладочной информации...Z_h_e писал(а):Выключите оптимизацию, точка наверняка заработает.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Попробовал в студии 6 с оптимизацией и без.
Без оптимизации операция DDRD|= компиллится в нечто длинное, но точка тормозится. С оптимизацией код именно такой, какой должен быть, но точка останова проигнорирована. 
Спойлер

- Вложения
-
- оптимизейшн AS6.png
- (41.39 КБ) 655 скачиваний
И с включеной и с выключеной одинаковоZ_h_e писал(а):Выключите оптимизацию, точка наверняка заработает.
Добавлено after 1 minute 10 seconds:
Где можно посмотреть включена ли генерация?ARV писал(а):нет, оптимизация не касается volatile-переменных, а все порты и регистры периферии в avr-gcc определены именно как volatile-переменные. по скриншоту не понятно, что именно и где не работает. возможно, просто отключена генерация отладочной информации...Z_h_e писал(а):Выключите оптимизацию, точка наверняка заработает.
Почему то создаю проект новый, по таким же характеристикам, модульный и точки работают, а открываю старый проект и не работает... ничего не пойму...




