реклама на сайте
подробности

 
 
> AVRStudio, Окно Watch
Владимир_2010
сообщение Jan 4 2009, 10:52
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Вопрос новичка.
Написал программу в CodeVisionAVR, откомпилировал, начал эмуляцию и отладку в AVRStudio – никак не могу воспользоваться окном Watch – набросал переменные, а в поле Value надпись Not in scope. Я так понял Watch это для отображения нужных переменных. Как воспользоваться этой опцией?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
_Pasha
сообщение Jan 4 2009, 10:57
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Какой формат объектного файла?
Какие переменные набросали? - размещенные в регистрах отображаться не будут.
Go to the top of the page
 
+Quote Post
777777
сообщение Jan 4 2009, 12:56
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(_Pasha @ Jan 4 2009, 13:57) *
Какие переменные набросали? - размещенные в регистрах отображаться не будут.

Еще static переменные не отображаются кажется
Go to the top of the page
 
+Quote Post
Proton
сообщение Jan 4 2009, 13:32
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 3-08-05
Из: Новосибирск
Пользователь №: 7 334



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


--------------------
Всяк хорошая мысля к нам приходит опосля.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 4 2009, 13:54
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(777777 @ Jan 4 2009, 16:56) *
Еще static переменные не отображаются кажется

Не-не, со static и volatile как-раз все нормально. Сами посудите: оно ж занимает конкретное место по фиксированному адресу.
Go to the top of the page
 
+Quote Post
Владимир_2010
сообщение Jan 4 2009, 14:15
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Мне бы для начала биты (PORTD) с входов и выходов (PORTB) вывести. В принципе я их вижу в I/O View, но там все в куче, хотелось бы вывести только то что мне надо в одно место (Watch), в удобном для глаза порядке
Go to the top of the page
 
+Quote Post
ARV
сообщение Jan 4 2009, 15:47
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Регистры в Watch не отображаются. Not in scope означает, что при текущей оптимизации и в текущем месте кода переменная "не видна", т.е. не существует. Например, локальные переменные видны только внутри функций. А после оптимизатора число реальных переменных сводится к такому минимуму, что многие так же невозможно увидеть в окне Watch


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 4 2009, 16:20
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(ARV @ Jan 4 2009, 19:47) *
Регистры в Watch не отображаются.

Зато, если навести мышью на автоматичекую переменную, то она (мышь smile.gif ) покажет, что переменная размещена в таком-то регистре(ах).
Go to the top of the page
 
+Quote Post
Exstreem
сообщение Jun 16 2009, 06:23
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 5-02-09
Пользователь №: 44 428



Всем привет. Ребята, уже самому смешно, но такая проблема: в AVRStudio подключаю через include файл, который находиться не в папке проекта (например, .include "C:\avr.asm"), и при компиляции выдает ошибку - не находит файл. В настройках ассемблера есть добавление папки или файла с ключем -I, -i соответсвенно, но и это не помогает.
Go to the top of the page
 
+Quote Post
VBA
сообщение Jun 17 2009, 13:12
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 1-12-07
Пользователь №: 32 869



Добрый день. Хотел создавать точно такую-же тему, а уже есть.
Спрошу здесь, хотя вопрос немного в другом.

В 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
Go to the top of the page
 
+Quote Post
VBA
сообщение Jun 18 2009, 07:43
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 1-12-07
Пользователь №: 32 869



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

Скорее всего, я что-то не так делаю. Хотя даже мысли не было, что могут вылезти такие грабли unsure.gif
Вот говорят здесь, что Studio не поможет отладить периферию. Согласен.
Но чтобы переменные корректно не показывать... Как-то странно. Наверно я в чем-то ошибаюсь. cranky.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 18 2009, 17:10
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Плохому танцору... smile.gif

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

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

А теперь практически.
В AVR студии вы можете увидеть всю EEPROM в отдельном окне. Там смотреть переменную и там её править.
Go to the top of the page
 
+Quote Post
VBA
сообщение Jun 19 2009, 09:13
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 1-12-07
Пользователь №: 32 869



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

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

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

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

p.s. Кстате, значения констант во flash, тоже не отображаются. unsure.gif

Сообщение отредактировал VBA - Jun 19 2009, 09:27
Go to the top of the page
 
+Quote Post
Legotron
сообщение Jun 19 2009, 14:07
Сообщение #14


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



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

bb-offtopic.gif Часто встречаю подобные высказывания на форуме, а у меня обратная картина.
Иногда нужно использовать ассемблер.. Ну никак не могу с ним научиться дружить sad.gif
Особенно инлайн-ассемблер в GCC (это вообще еще та китайская грамота) biggrin.gif
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 22 2009, 11:15
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(VBA @ Jun 19 2009, 12:13) *
...
p.s. Кстате, значения констант во flash, тоже не отображаются. unsure.gif


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

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

К, сожалению, здесь много не очень лесных слов было уже сказано по поводу CV. Я им не пользовался поэтому подтвердить/опровергнуть немогу. С другой стороны есть люди которым я доверяю (например Сергей Борщ) хорошие профессионалы и знатоки стандарта, которые считают данный компилятор некорректным (мягко говоря).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016