Ошибка отладки в Atmel Studio 6

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

Здравствуйте.
Atmel Studio (6.2 vers 1502 sp1).
Столкнулся с крайне неприятной проблемой при работе с ATtiny2313, симулятор не видит порты при чтении. А именно: при отладке выставляем мышкой нужные разряды на ПИНах порта, а по команде IN они не читаются.
При замене девайса на ATtiny13 все ОК. Команду IN видим естественно в дизасемблере.
Кто-нибудь сталкивался с такой проблемой? Есть ли пути решения?
Для удобства прикладываю крохотный тестовый проект по этому вопросу.
Вложения
termo_test.zip
(13.89 КБ) 161 скачивание
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

Странно... Неужели никто не работал с ATtiny2313?
Уточняю (см. снимок) в этом месте: 00000023 IN R24,0x16
ATtiny2313 не читает ПИНы порта, а ATtiny13 читает на ура.
Может я что-то делаю не так, тогда пожалуйста подскажите.
Вложения
Снимок.PNG
(8.84 КБ) 389 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Ошибка отладки в Atmel Studio 6

Сообщение codenamehawk »

У вас включена оптимизация, компилятор выкинул присваивание, так как переменная prov более не используется.
Если переменная будет использоваться в прерывании используйте volatile

Код: Выделить всё

volatile uint8_t prov;


Измените программу, для отладки :

Код: Выделить всё

   while(1)
    {
        //TODO:: Please write your application code
      PORTB = prov;
    }
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

codenamehawk писал(а):У вас включена оптимизация, компилятор выкинул присваивание, так как переменная prov более не используется.
Если переменная будет использоваться в прерывании используйте volatile
Спасибо.
А Вы проверяли свой совет?
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

Для codenamehawk:
понял не проверяли, а я же давал снимок ассемблера, повторю фрагмент

Код: Выделить всё

00000023  IN R24,0x16           In from I/O location 
00000024  STS 0x0060,R24        Store direct to data space

Компилятор не только не "выкинул присваивание", а честно прочитал ПИН В и сохранил в ОЗУ (что в общем-то и есть присваивание как таковое).

Для специалистов: ПОДСКАЖИТЕ ХОТЬ ЧТО-НИБУДЬ!

Вдогонку: на AVR Studio 4.18 build 684 все ОК.
codenamehawk
Вымогатель припоя
Сообщения: 527
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: Ошибка отладки в Atmel Studio 6

Сообщение codenamehawk »

IM1 писал(а):Столкнулся с крайне неприятной проблемой при работе с ATtiny2313, симулятор не видит порты при чтении. А именно: при отладке выставляем мышкой нужные разряды на ПИНах порта, а по команде IN они не читаются.


Это верно, только отчасти.
Добавив чтение порта в основной цикл,

Код: Выделить всё

int main(void)
{
   DDRB = 0;
   prov  = PINB;
   cli ();
   
   while(1)
    {
        //TODO:: Please write your application code
      prov  = PINB;
    }
}

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

Уже такой код отлаживается нормально.

Код: Выделить всё

        DDRB = 0;
   asm("nop");
   prov  = PINB;
   cli ();


В протеусе ваша программа работает нормально, так что скорее всего проблема в 6 студии.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

отладка начинает работать, но удалось заметить задержку между установкой PINB и считыванием этого значения из порта
- пишу на ассемблере и у меня постоянно эта задержка при отладке. Уже привык и внимания этому не придаю.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

codenamehawk писал(а):В протеусе ваша программа работает нормально, так что скорее всего проблема в 6 студии.
Ну Вы прям "Капитан Очевидность". Суть вопроса в этом и была, причем ни на миг не сомневаюсь, что в протеусе все будет ОК. Очень хотелось, чтобы кто-то попробовал у себя, вдруг чего-то я недопонимаю. Дело то минутное, и программу приложил. А в ответ - голая теория.
dr.doc писал(а):пишу на ассемблере и у меня постоянно эта задержка при отладке. Уже привык и внимания этому не придаю.
Опять же вопрос у меня был про студио 6.2 и именно о симуляции на С.
Как ассемблерист ассемблеристу скажу, что если у Вас в программе написана вот такая фигня:

Код: Выделить всё

IN R24,0x16
и Вы стоите на брейкпойнте именно на этой команде, затем мышкой устанавливаете на PINB допустим 0х1а, затем (сделав достаточную паузу :) ) делаете 1 шаг в симуляторе, то в регистре R24 у Вас по любому должно появиться 0х1а, а не 0х00 как у меня. Уфф, уже писал, что дефект проявляется только на ATtiny2313 и все нормально на ATtiny13, на других девайсах не проверял. В студии 4 тоже все нормально, но я уже привык к замечательному редактору из 6-й, переходить обратно в 4-ю моветон.
Такая вот беда, достались несколько 2313 в подарок... очень жаль. В английском не настолько силен, чтобы писать производителю программы.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

Поставьте для отладки nop перед данной командой.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

dr.doc писал(а):Поставьте для отладки nop перед данной командой.
СПАСИБО!
Попробовал - оно, только 2 nop-а требуются, но это уже детали.
А то я вчера затосковал, когда увидел, что на ATmega8 тоже самое. Теперь буду обходить этот затык, а потом нопы выбрасывать, немного не элегантно, но терпимо.
П.С.
А на ТИНИ 13 работает и в студии 4 тоже и без нопов.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

Хорошо что помогло. Есть вещи, в которые даже при отладке nop не вопрешь - все развалится...
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Ошибка отладки в Atmel Studio 6

Сообщение zero648 »

У меня была подобная ситуация, но с точностью до "наоборот", т.е. в симуляторе работает, а в железе нет. Без "нопов" в железе кнопки не опрашивались, при частоте 4МГц контроллер не видел нажатия кнопок, если читать их сразу после переключения пинов на вход, пришлось добавить пару "нопов" для выдержки.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

А антидребезг?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Ошибка отладки в Atmel Studio 6

Сообщение zero648 »

Не понял, а при чем тут антидребезг? Говорю же, при переключении на вход уровень сигнала на пине устанавливается не мгновенно, в зависимости от частоты.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

Так это нормально. Там же цепочка триггеров, они и вносят задержку.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

dr.doc писал(а):Так это нормально. Там же цепочка триггеров, они и вносят задержку.
Позвольте напомнить уважаемым котам, что речь идет всего лишь о СИМУЛЯЦИИ, а не о реальном устройстве. Уровни на портах ставятся МЫШКОЙ на экране симулятора и до команды ШАГ с точки зрения микроконтроллера проходит вечность, и всякие триггеры-миггеры здесь не причем.
Налицо ошибка симулятора СТУДИИ 6, разработчики решили (почему-то), что на брейкпойнте тактовый генератор микроконтроллера выключен. Опять же писал, что такого ляпа нет в СТУДИИ 4 и на некоторых девайсах в СТУДИИ 6, например на ТИНИ 13.
С уважением.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Ошибка отладки в Atmel Studio 6

Сообщение dr.doc »

разработчики решили (почему-то), что на брейкпойнте тактовый генератор микроконтроллера выключен
- А как, по Вашему, происходит отладка дебаггером? На мой взгляд она пропускает тактовые импульсы генератора лишь в разрешенные моменты, что эквивалентно остановке генератора.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: Ошибка отладки в Atmel Studio 6

Сообщение IM1 »

IM1 писал(а):Опять же писал, что такого ляпа нет в СТУДИИ 4 и на некоторых девайсах в СТУДИИ 6, например на ТИНИ 13.
:(
Ответить

Вернуться в «AVR»