zeconir

Proteus чудит с отладкой кода WinAVR

5 сообщений в этой теме

Добрый день (вечер)! Уже практически целый день голову ломаю, что же это может быть... Итак, в чем проблема. Имеется некий проект на ATmega8, компилятор - WinAVR, среда - встроенный в протеус редактор кода. Все бы хорошо, но вот незадача, при компилировании и запуске в отладчике отображается черт знает что. Пример:

fignya.JPG.e8fba7b755b45d46d83e25f08af30e0e.JPG

Строки 147, 153 и т.д. не должны иметь адресов, но они есть. А вот строки 143, 150 и т.д. наоборот. И это при выключенной оптимизации...

 

Никто не сталкивался с таким? Весь проект очень не хочется заново делать, но чувствую по-другому этот странный баг не одолеть. Так как остальные проекты открываются и редактируются нормально. Пробовал и менять версии протеуса, машины, оптимизацию. Результат 0.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

153 строка скорее всего if из строки выше. 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я к этому тоже пришел, но вот только очень не удобно искать соответствия.

Плюс, как оказывается, не работает пошаговая отладка.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это вы еще не пробовали в протеусе работать с AVR-GCC версии хотя бы 5.2... вот где ужас нерожденного © !

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все так печально?

** Proteus у меня последний, 8.6...

Ну вот, сейчас создал новый проект, только кинул контроллер и вставил код из старого. Вуаля, все работает как и должно. Правда вот надолго ли...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: MasterElectric
      Продаю свои запасы разных МК список будет (позже). Есть STM8, STM32(F1,F2, F3, F4, F7), ADUC, ADUCM, SiLabs (EFM8, EFM32, 8051F), LPC, AVR. Цены будут ниже чем в магазинах. Если что в ЛС пишите посмотрю. Только Украина.
    • Автор: pakanpak
      Добрый день, уважаемые форумчане!
      Столкнулся с тривиальной проблемой, которую не могу решить. Достав из закромов USBASP, решил поставить дрова на комп и протестировать его на своей Atmega16 - зашить простую мигалку. То есть на нулевой пин порта "А" повесил светодиод и заставил в цикле подавать 1 - задержка  - 0. Проще программы не бывает наверное. Код ниже (ассемблер):
      .include "m16def.inc" .def temp = r16 .org 0 rjmp reset Reset: // порт на вывод ldi temp,255 out ddra,temp out porta,temp start: //цикл мигалки clr temp out porta,temp rcall del ser temp out porta,temp rcall del rjmp start del: //стандартная задержка ldi r17,255 ldi r18,255 ldi r19,10 del2: dec r17 brne del2 dec r18 brne del2 dec r19 brne del2 ret Очевидно, что в коде ошибки нет. Протестировано в протеусе)
      Но после прошивки МК, на нужной ноге не происходит смена состояний. То есть светодиод загорается и не мигает - просто горит. Поменял порты - тоже самое. С фьюзами вроде тоже все нормально - скрины прилагаю. Шил и хазамой, и дудкой. Использовал USBASP. Сигнатура читается , фьюзы меняются - все хорошо. Менял чип на аналогичный - все тоже самое. Схема соединения - думаю не стоит выкладывать)) Короче, я в тупике. Настолько дурацкая проблема, что я даже не знаю что думать. Может проблема в том, что в я не отсоединяю МК от USBASP ( MOSI, MISO, SCK, RESET) ? 
       


    • Автор: Avatoro
      Всем привет. В общем есть простая мигалка по переполнению нулевого таймера. ATmega328. В АВР студии все прекрасно работает, в протеусе-0 реакции. Либо протеус тупит, либо я не настроил в нем что-то, так как собрал в железе и прошил - все работает замечательно. Файлы исходника, прошивки и протеуса прилагаю.
      P_5.asm
      P_5.hex
      Timer.pdsprj
    • Автор: LegionKC
      Всем Привет.
      Прошу не кидаться тапками за название темы, понимаю, что уже много опубликовано материалов по этому вопросу, однако все кроется в нюансах.
      Итак, к проблеме.
      Выполняю курсовую работу. Опыта в программировании минимум.
      Имеется схема с МК ATmega8 и дисплеем LM044 на контроллере HD44780. При попытке вывести инфу на дисплей столкнулся с этими двумя рядами прямоугольников (к слову, дисплей 20х4).
       
      Поначалу думал, что оторвались провода, которые соединяют дисплей с МК. Нет, все прозваниваются. Кстати, схема вся была спаяна преподавателем и раньше дисплей уже выводил инфу, но когда начал я ее прошил своей прогой, появилось, то что на фотке. 
      Потом пошли мысли, что неправильно настроил выводы в CodeVision AVR, в котором работаю.
      Исходя из даташита МК и того, куда припаяны провода в схеме, настроил порты таким образом:
      Думал, что теперь будет все норм, прошил снова - ничего. Начал уже бесится, изучил десятки страниц (уже не первый день работаю над схемой, думал все-таки смогу сделать сам, ан нет)
      Решил начать с простого. Нашел в инете самый простой код по выводу инфы
      Сделал стандартный проект в CodeVision AVR, вставил туда этот код, настроил настроил выводы на свои. 
      Прошил в Протеусе МК и вуаля - в Протеусе инфа выводится!
      На радостях решил, что теперь-то все получится - опять нет!
      Прошивал МК через AVRDUDE PROG 3.0 через USBasp
      Ребят, у меня к вам такие вопросы:
      1. Что может быть не так с дисплеем?
      2. Нужно ли как-то настраивать порты МК? Потому что я нигде не видел, чтобы хоть где-то пытались настроить порты МК при выводе инфы на экран. Даже в том коде, что я выложил. 
      Прошу вас, высказывайте любые идеи и мысли, ибо я реально хочу понять программирование и выяснить в чем же проблема.
      Спасибо!