Перейти к содержанию
    

Make(WinAvr)+Proteus

Для отладки программы на С в Proteus используется файл с расширением .elf.

Примеры которые поставляются вместе с proteus, после запуска в WinAvr make симулируются нормально.

А если создать с помощью утилиты MFile, входящей в состав пакета WinAvr, и запустить make со своим исходником на С, то в итоге создается .elf, который в Proteus работать оказывается.

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

в Proteus на С.

Заранее спасибо!

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


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

Сравните makefile, в части "DEBUG = dwarf-2"...

да, выбран

DEBUG = dwarf-2

 

 

На рисунке код на С в WinAvr и загруженый файл, после make .elf в Proteus

почему не видно переменной tmp, что сделано не так в makefile

post-18558-1226567134_thumb.jpg

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


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

да, выбран

DEBUG = dwarf-2

На рисунке код на С в WinAvr и загруженый файл, после make .elf в Proteus

почему не видно переменной tmp, что сделано не так в makefile

При чем тут makefile? tmp не видно потому, что ее выбросил оптимизатор. Это локальная переменная, ее значение нигде не используется, вот оптимизатор и решил что она не нужна. Вынесите ее из тела main, она и появится.

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


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

При чем тут makefile? tmp не видно потому, что ее выбросил оптимизатор. Это локальная переменная, ее значение нигде не используется, вот оптимизатор и решил что она не нужна. Вынесите ее из тела main, она и появится.

Да при том, что если выставить OPT = 0 (без оптимизации) то все нормально определяется, а

OPT=1,2,3,s не работает

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


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

Да при том, что если выставить OPT = 0 (без оптимизации) то все нормально определяется, а

OPT=1,2,3,s не работает

Прочитайте мое предыдущее сообщение о том куда делась переменная tmp.

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


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

Проблема с переменными. Когда загружаю протеусом *.elf файл и запускаю watch он говотит что-то типа "variable not in memory block", при этом watch в avr studio работает вполне корректно. В чем может быть причина?

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


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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...