Jump to content

    
Sign in to follow this  
Slavik_tz

Make(WinAvr)+Proteus

Recommended Posts

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

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

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

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

в Proteus на С.

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

Share this post


Link to post
Share on other sites
Сравните makefile, в части "DEBUG = dwarf-2"...

да, выбран

DEBUG = dwarf-2

 

 

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

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

post-18558-1226567134_thumb.jpg

Share this post


Link to post
Share on other sites
да, выбран

DEBUG = dwarf-2

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

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

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

Share this post


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

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

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

Share this post


Link to post
Share on other sites
Да при том, что если выставить OPT = 0 (без оптимизации) то все нормально определяется, а

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this