Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVRStudio
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Владимир_2010
Вопрос новичка.
Написал программу в CodeVisionAVR, откомпилировал, начал эмуляцию и отладку в AVRStudio – никак не могу воспользоваться окном Watch – набросал переменные, а в поле Value надпись Not in scope. Я так понял Watch это для отображения нужных переменных. Как воспользоваться этой опцией?
Спасибо.
_Pasha
Какой формат объектного файла?
Какие переменные набросали? - размещенные в регистрах отображаться не будут.
777777
Цитата(_Pasha @ Jan 4 2009, 13:57) *
Какие переменные набросали? - размещенные в регистрах отображаться не будут.

Еще static переменные не отображаются кажется
Proton
Цитата
Как воспользоваться этой опцией?
Попробуйте отключить оптимизацию или присвоить нужным переменным аттрибут volatile.
Цитата(777777 @ Jan 4 2009, 18:56) *
Еще static переменные не отображаются кажется
Даже если они храняться в ОЗУ?
_Pasha
Цитата(777777 @ Jan 4 2009, 16:56) *
Еще static переменные не отображаются кажется

Не-не, со static и volatile как-раз все нормально. Сами посудите: оно ж занимает конкретное место по фиксированному адресу.
Владимир_2010
Мне бы для начала биты (PORTD) с входов и выходов (PORTB) вывести. В принципе я их вижу в I/O View, но там все в куче, хотелось бы вывести только то что мне надо в одно место (Watch), в удобном для глаза порядке
ARV
Регистры в Watch не отображаются. Not in scope означает, что при текущей оптимизации и в текущем месте кода переменная "не видна", т.е. не существует. Например, локальные переменные видны только внутри функций. А после оптимизатора число реальных переменных сводится к такому минимуму, что многие так же невозможно увидеть в окне Watch
_Pasha
Цитата(ARV @ Jan 4 2009, 19:47) *
Регистры в Watch не отображаются.

Зато, если навести мышью на автоматичекую переменную, то она (мышь smile.gif ) покажет, что переменная размещена в таком-то регистре(ах).
Exstreem
Всем привет. Ребята, уже самому смешно, но такая проблема: в AVRStudio подключаю через include файл, который находиться не в папке проекта (например, .include "C:\avr.asm"), и при компиляции выдает ошибку - не находит файл. В настройках ассемблера есть добавление папки или файла с ключем -I, -i соответсвенно, но и это не помогает.
VBA
Добрый день. Хотел создавать точно такую-же тему, а уже есть.
Спрошу здесь, хотя вопрос немного в другом.

В CV AVR 2.03.04 пишем простейший код:

Код
#include <mega16.h>

eeprom int a=10;

void main(void)
{

a=12;


while (1)
      {

      };
}


Открываем .cof файл в AVR STUDIO 4.13 SP1 Build 557

и в окне WATCH видим

Нажмите для просмотра прикрепленного файла

Ну почему переменная a имеет Location 0x0000 [SRAM] ?

Хотя при симуляции значение а=12 правильно ложится в eeprom:

Нажмите для просмотра прикрепленного файла

А так как 0х0000 в SRAM соответствует R0, то при его ручном изменении в окне Register,
благополучно меняется и значение в поле окна WATCH!

Ну почему WATCH не туда смотрит? smile3046.gif
VBA
Повысил версию AVR Studio до 4.16 (правда без сервиспака).
Ничего не изменилось. Все равно SRAM!

Скорее всего, я что-то не так делаю. Хотя даже мысли не было, что могут вылезти такие грабли unsure.gif
Вот говорят здесь, что Studio не поможет отладить периферию. Согласен.
Но чтобы переменные корректно не показывать... Как-то странно. Наверно я в чем-то ошибаюсь. cranky.gif
SasaVitebsk
Плохому танцору... smile.gif

На самом деле всё можно отладить везде. В том числе и в симуляторе AVR Studio многое. С другой стороны что вы хотите там увидеть? Может сначала головой подумать? А если вы во внешней EEPROM переменную разместите? Тут, к примеру люди так правили компилятор, что переменную или массив можно было во внешнем EEPROM разместить.

Надо понимать, что есть фишка компилятора, которая позволяет разместить и работать с EEPROM, а есть функция дебагера. Так как нет прямого доступа к этой переменной, а надо выполнить п/п, то отображение данной переменной проблематично. CVAVR должен был какую-то спец инфу указать AVRStudio, чтобы всё корректно работало. А CV облажался. Просто передаёт что это переменная и её адрес, но не указывает что это EEPROM.

А теперь практически.
В AVR студии вы можете увидеть всю EEPROM в отдельном окне. Там смотреть переменную и там её править.
VBA
Спасибо большое за ответ!
Действительно, ведь переменные eeprom не обычные переменные. Выполнение п/п приводит к тому,
что значение фактически меняется. А что CV лажает - грустно.
Да бог с ней, с eeprom, имея под рукой .map файл, можно смотреть ее и в окне memory.

Просто цель моего вопроса была выяснить, лажаю я, или лажает CV. Странно, что второе.

А насчет танцора - что то я не ожидал, что переход с ассемблера на C будет таким, как бы так
сказать, не легким. Есть же еще масса вопросов. Так что танцор таки плохой... Но будем разбираться, надо же как-то развиваться.
Без ЯВУ сейчас никуда! (только не надо религиозных войн!).

Спасибо большое еще раз.

p.s. Кстате, значения констант во flash, тоже не отображаются. unsure.gif
Legotron
Цитата(VBA @ Jun 19 2009, 13:13) *
А насчет танцора - что то я не ожидал, что переход с ассемблера на C будет таким, как бы так
сказать, не легким.

bb-offtopic.gif Часто встречаю подобные высказывания на форуме, а у меня обратная картина.
Иногда нужно использовать ассемблер.. Ну никак не могу с ним научиться дружить sad.gif
Особенно инлайн-ассемблер в GCC (это вообще еще та китайская грамота) biggrin.gif
SasaVitebsk
Цитата(VBA @ Jun 19 2009, 12:13) *
...
p.s. Кстате, значения констант во flash, тоже не отображаются. unsure.gif


Ещё раз... smile.gif

У меня IAR. Отлаживаю для AVR в студии. Всё корректно отображается, включая структуры и указатели на структуры с разнми полями. Могу приложить экранчик, но надеюсь вы мне поверите на слово.
smile.gif

К, сожалению, здесь много не очень лесных слов было уже сказано по поводу CV. Я им не пользовался поэтому подтвердить/опровергнуть немогу. С другой стороны есть люди которым я доверяю (например Сергей Борщ) хорошие профессионалы и знатоки стандарта, которые считают данный компилятор некорректным (мягко говоря).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.