Вопросы по отладке

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ARV »

KRAM писал(а):И ведь ошибаются, что характерно...
наверное, не знают про отладчик...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

[uquote="ARV",url="/forum/viewtopic.php?p=4520275#p4520275"]наверное..[/uquote]
Наверное не знают про наверное.... :tea:
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Demiurg »

Я проверяю свои проекты в симуляторе AVR-Studio. Притом, только программную и логическую часть. Если требуется, делаю тестовые куски кода. Если в проекте дисплей, вывожу тестовую информацию на дисплей. Если дисплея нет и ног хватает, подключаю дисплей. Если малоногий МК, вывожу тестовую информацию на светодиод. Комбинация коротких и долгих вспышек. Единицы короткие. Десятки длинные. Либо. До 5 короткие, 5 более долгая вспышка, десятки долгие вспышки.
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ДядяВован »

И я аналогичным образом примерно делаю. Одного пина достаточно для отладки через COM-порт. Есть экран - задействуем экран. Когда понадобилась 3-х байтовая математика, отладил в симуляторе. Не вижу преимуществ реального кристалла супротив симулятора, например при отладке умножения/деления.
veso74
Поставщик валерьянки для Кота
Сообщения: 1906
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение veso74 »

Я также говорил себе, что хватит. Так было ... до начала занятий с STM32 :). Теперь ищу debug и в других МК. Где есть, где нет ...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Для отладки ассемблерного кода в рамках ядра вполне достаточно отладки, заложенной в авр студио.
Другое дело, когда помимо ядра в состав МК включаются дополнительные аппаратные модули (речь о "встроенных", а не о "внешних"!!).
Это уже не просто отладчик, а частично симулятор для тех аппаратных модулей добавляется.
В подобных случаях и аппаратный дебаггер не всегда справиться может - надо вспоминать те методы, что в "древние времена" при отладке конструкций с СБИС периферии применяли - когда порты ввода/вывода, таймеры , память и прочее "снаружи" от МК были.
АВРки в основном имеют стабильный минимальный набор хорошо отработанной периферии.
Отладка в рамках ядра вполне предсказуема. Возможно чего то нового со временем будет добавляться - но то уже не вопрос применения и отладки ассемблерного кода, а вопрос работы с расширенной аппаратной начинкой периферийных блоков (т.е. не данной темы).
8)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

[uquote="ДядяВован",url="/forum/viewtopic.php?p=4521080#p4521080"]например при отладке умножения/деления.[/uquote]
А чего там отлаживать? Ну первый раз отладили, а дальше что?
Отладка нужна не на арифметике, а на сложных алгоритмах, где нужно перехватывать ошибку возникающую при определенных условиях, иногда в критических участках кода. Понятно, что все можно сделать и ногодрыгом, но при наличии нормального аппаратного дебага снимается куча проблем и работа над проектом идет в разы быстрее.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Это вариант именно работы с аппаратными модулями "за пределами ядра".
Там от реакции / взаимодействия с аппаратной частью много зависимостей.
Но к самой системе команд и работе ядра подобная ситуация не относится - найдите хоть одно семейство МК, где система команд и базовое ядро имеют ошибки...
Или команды ассемблера могут как-то иначе, чем в документации описано, выполняться.
А вот относительно аппаратной периферии - раздолье по ерратам...
8)
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Demiurg »

Согласен. Были ситуации, когда аппаратный дебаггер не помешал бы. Но в очередной раз я когда я разбирался с ошибкой, убеждаюсь, что это моя вина. В программе. Упустил особенность внутренней периферии. Не почитал даташит на внешнюю периферию.
Нет острой надобности тратиться на дебаггер.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=4521160#p4521160"]Это вариант именно работы с аппаратными модулями "за пределами ядра".[/uquote]
Отладка ядра возникает при работе с данными, которые поступают снаружи. Проблема именно в этом.
Вы не можете симулировать эти данные. Они в общем виде случайны, а часто зависят от выходных состояний МК.
Поэтому нужна реальная работа.
Особенно в АСМе.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Как раз поток данных можно симулировать, а вот поведение аппаратной части периферии - нет.
(Или достаточно сложно - потребуется добавлять в IDE корректно спроектированный симулятор).
К примеру момент включения прерываний, переполнения счетчиков при разнохитрых комбинациях их аппаратных (программно независимых/программно недоступных) схем управления и прочего именно аппаратного состава встроенной периферии.
Посему и возникает потребность во всякодебаггерах.
Ежли бы там только программная начинка работала - то и возможное состояние было бы вполне предсказуемым.
8)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

Поток данных бывает разный.
Основная ошибка алгоритмов в ошибочном представлении обрабатываемых сущностей.
Возьмем поток данных из компаратора...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Вполне предсказуем по значению (относительно программного кода и данных), НО положение (момент возникновения) в случае работы с прерываниями может вызвать дополнительные вопросы, требующие анализа как на приоритет прерываний, так и на возможные критические "накладки" при их возникновении.
8)
Аватара пользователя
ДядяВован
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ДядяВован »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4521146#p4521146"][uquote="ДядяВован",url="/forum/viewtopic.php?p=4521080#p4521080"]например при отладке умножения/деления.[/uquote]
Ну первый раз отладили, а дальше что?[/uquote]
Дальше работает как надо и всё. Работа с периферией и внешними воздействиями отлажена другими методами. Контроллер прошит, работает.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

[uquote="ДядяВован",url="/forum/viewtopic.php?p=4521209#p4521209"]Дальше работает как надо и всё. Работа с периферией и внешними воздействиями отлажена другими методами. Контроллер прошит, работает.[/uquote]
Отладка элементарных вещей симулятором нужна лишь на самом начальном этапе изучения.
Поэтому говорить о ней как о серьезном инструменте неуместно. Есть симулятор - и хорошо. Пару раз за проект может потребуется. Да и то не всегда. Быстрее в железном дебаге посмотреть.
Какой смысл иметь несколько инструментов, когда все можно сделать одним?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Многие уже и не обращают внимания на "некоторые тонкости" архитектуры современных МП/МК...
А надо бы о том помнить (особо при отладке сложных ситуаций)...
К примеру вместо многофазной синхронизации процессов извлечения и исполнения команд (использовался в "МК на рассыпухе" и там где "много тактов на команду" - та же "классика" mcs51, I8080) применяется "статика" с одним тактом...
Добавим работу того же конвеера предвыборки команд (без коего со времен ПИКовых практически ни одно современное семейство не обходится)...
Вот и повод для интенсивного внедрения аппаратной отладки вида "дебаггер на кристалле".
8)
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Demiurg »

...
Сколько сейчас стоит нормальный дебаггер для AVR?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15553
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Аппаратная часть дебаггера интегрирована в состав каждого МК, в котором поддерживается внутрисхемная отладка.
Программная поддержка протокола обмена обязательна в IDE изготовителя или в виде отдельной софт-оболочки (за денюжку).
А вот "внешнее железко", подключаемое между МК и ПК это или самоделка или отдельный блочек обычно совмещенный с программатором.
Может в последних моделях от микрощипа это будет единый стандарт как у АВР, так и у ПИКов.
Пока что у АВРок два разных варианта - один для "староатмелеввских", второй для серий "посвежее".
8)
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25199
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение КРАМ »

[uquote="Demiurg",url="/forum/viewtopic.php?p=4521290#p4521290"]Сколько сейчас стоит нормальный дебаггер для AVR?[/uquote]
Как уже было выше сказано, дебаггер должен поддерживаться средой разработки.
Я работаю с ATmega165 в MPLABX и использую в качестве дебаггера PICkit4.
Поскольку дебаг в AVR происходит через JTAG, то полагаю, что есть варианты и для использования J-link.
J-link (не родной, естественно) стоит очень дешево.
AQ29
Нашел транзистор. Понюхал.
Сообщения: 198
Зарегистрирован: Сб июл 30, 2011 21:00:24

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение AQ29 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4520184#p4520184"]Если неясно, повторю еще раз. Смотреть в симуляторе почти нечего. Если только учиться азам, разглядывая как работают инструкции.
Весь смысл применения МК - его взаимодействие с внешней аппаратурой. То есть нужен не просто симулятор, а схемотехнический симулятор типа Протеуса. Но Протеус имеет ограниченное количество моделей МК, я уже не говорю об остальном. Порой симулировать радиотехническую часть схемы на три порядка сложнее, чем написать код. Ведь не всегда известны паразитные параметры реальной схемы...[/uquote]
Почему нечего смотреть в симуляторе?
МК не только взаимодействует с внешней аппаратурой, он ещё производит расчёты.
У симулятора своя ниша, в которой он успешно используется, например, расчёт какой-либо функции.
Надо проверить правильность расчёта и точность во всём диапазоне аргумента, это много точек, в симуляторе это сделать очень удобно.
Причём можно сделать без самого устройства, т.е. отлаживать на компьютере, на котором пишется программа, а это чистое просторное место.
А при реальной отладка на радиомонтажном столе работать с компьютером не очень удобно, поскольку стол занят приборами, паяльной станцией, инструментами и т.д.
Ошибку при записи во флеш в вашей задаче, скорее всего, можно было бы легко обнаружить в хорошем симуляторе.

[uquote="КРАМ",url="/forum/viewtopic.php?p=4520184#p4520184"]Это как раз про жаренную картошку.
Экономить на инструменте конечно можно, но вряд ли стоит это рекламировать. Если нет денег, то причем тут удобство? Отлаживать можно и без каких либо внешних инструментов. Тупо на светодиодах.[/uquote]
При чём тут экономия? Вы пока не показали, в чём преимущество вашего штатного аппаратного дебаггера по сравнению с моим. Вообще, как на нём проводится отладка в реальном времени?
Спрашивал у Just_Fluffy, у неё при отладке производится остановка МК, это сильно ограничивает применение.
Отладка с помощью подмигивающих светодиодов, подключаемых дисплеев, СОМ-порта и т.д. – это что-то школьно-любительское для начинающих.
Ответить

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