наверное, не знают про отладчик...KRAM писал(а):И ведь ошибаются, что характерно...
Вопросы по отладке
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25198
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="ARV",url="/forum/viewtopic.php?p=4520275#p4520275"]наверное..[/uquote]
Наверное не знают про наверное....
Наверное не знают про наверное....
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Я проверяю свои проекты в симуляторе AVR-Studio. Притом, только программную и логическую часть. Если требуется, делаю тестовые куски кода. Если в проекте дисплей, вывожу тестовую информацию на дисплей. Если дисплея нет и ног хватает, подключаю дисплей. Если малоногий МК, вывожу тестовую информацию на светодиод. Комбинация коротких и долгих вспышек. Единицы короткие. Десятки длинные. Либо. До 5 короткие, 5 более долгая вспышка, десятки долгие вспышки.
- ДядяВован
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс окт 25, 2020 22:13:25
- Откуда: Смоленск
Re: Ассемблер (ASM) для AVR в вопросах и ответах
И я аналогичным образом примерно делаю. Одного пина достаточно для отладки через COM-порт. Есть экран - задействуем экран. Когда понадобилась 3-х байтовая математика, отладил в симуляторе. Не вижу преимуществ реального кристалла супротив симулятора, например при отладке умножения/деления.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1906
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Я также говорил себе, что хватит. Так было ... до начала занятий с STM32
. Теперь ищу debug и в других МК. Где есть, где нет ...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Для отладки ассемблерного кода в рамках ядра вполне достаточно отладки, заложенной в авр студио.
Другое дело, когда помимо ядра в состав МК включаются дополнительные аппаратные модули (речь о "встроенных", а не о "внешних"!!).
Это уже не просто отладчик, а частично симулятор для тех аппаратных модулей добавляется.
В подобных случаях и аппаратный дебаггер не всегда справиться может - надо вспоминать те методы, что в "древние времена" при отладке конструкций с СБИС периферии применяли - когда порты ввода/вывода, таймеры , память и прочее "снаружи" от МК были.
АВРки в основном имеют стабильный минимальный набор хорошо отработанной периферии.
Отладка в рамках ядра вполне предсказуема. Возможно чего то нового со временем будет добавляться - но то уже не вопрос применения и отладки ассемблерного кода, а вопрос работы с расширенной аппаратной начинкой периферийных блоков (т.е. не данной темы).

Другое дело, когда помимо ядра в состав МК включаются дополнительные аппаратные модули (речь о "встроенных", а не о "внешних"!!).
Это уже не просто отладчик, а частично симулятор для тех аппаратных модулей добавляется.
В подобных случаях и аппаратный дебаггер не всегда справиться может - надо вспоминать те методы, что в "древние времена" при отладке конструкций с СБИС периферии применяли - когда порты ввода/вывода, таймеры , память и прочее "снаружи" от МК были.
АВРки в основном имеют стабильный минимальный набор хорошо отработанной периферии.
Отладка в рамках ядра вполне предсказуема. Возможно чего то нового со временем будет добавляться - но то уже не вопрос применения и отладки ассемблерного кода, а вопрос работы с расширенной аппаратной начинкой периферийных блоков (т.е. не данной темы).
- КРАМ
- Друг Кота
- Сообщения: 25198
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="ДядяВован",url="/forum/viewtopic.php?p=4521080#p4521080"]например при отладке умножения/деления.[/uquote]
А чего там отлаживать? Ну первый раз отладили, а дальше что?
Отладка нужна не на арифметике, а на сложных алгоритмах, где нужно перехватывать ошибку возникающую при определенных условиях, иногда в критических участках кода. Понятно, что все можно сделать и ногодрыгом, но при наличии нормального аппаратного дебага снимается куча проблем и работа над проектом идет в разы быстрее.
А чего там отлаживать? Ну первый раз отладили, а дальше что?
Отладка нужна не на арифметике, а на сложных алгоритмах, где нужно перехватывать ошибку возникающую при определенных условиях, иногда в критических участках кода. Понятно, что все можно сделать и ногодрыгом, но при наличии нормального аппаратного дебага снимается куча проблем и работа над проектом идет в разы быстрее.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это вариант именно работы с аппаратными модулями "за пределами ядра".
Там от реакции / взаимодействия с аппаратной частью много зависимостей.
Но к самой системе команд и работе ядра подобная ситуация не относится - найдите хоть одно семейство МК, где система команд и базовое ядро имеют ошибки...
Или команды ассемблера могут как-то иначе, чем в документации описано, выполняться.
А вот относительно аппаратной периферии - раздолье по ерратам...

Там от реакции / взаимодействия с аппаратной частью много зависимостей.
Но к самой системе команд и работе ядра подобная ситуация не относится - найдите хоть одно семейство МК, где система команд и базовое ядро имеют ошибки...
Или команды ассемблера могут как-то иначе, чем в документации описано, выполняться.
А вот относительно аппаратной периферии - раздолье по ерратам...
-
Demiurg
- Это не хвост, это антенна
- Сообщения: 1480
- Зарегистрирован: Ср июн 25, 2008 15:19:44
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Согласен. Были ситуации, когда аппаратный дебаггер не помешал бы. Но в очередной раз я когда я разбирался с ошибкой, убеждаюсь, что это моя вина. В программе. Упустил особенность внутренней периферии. Не почитал даташит на внешнюю периферию.
Нет острой надобности тратиться на дебаггер.
Нет острой надобности тратиться на дебаггер.
- КРАМ
- Друг Кота
- Сообщения: 25198
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4521160#p4521160"]Это вариант именно работы с аппаратными модулями "за пределами ядра".[/uquote]
Отладка ядра возникает при работе с данными, которые поступают снаружи. Проблема именно в этом.
Вы не можете симулировать эти данные. Они в общем виде случайны, а часто зависят от выходных состояний МК.
Поэтому нужна реальная работа.
Особенно в АСМе.
Отладка ядра возникает при работе с данными, которые поступают снаружи. Проблема именно в этом.
Вы не можете симулировать эти данные. Они в общем виде случайны, а часто зависят от выходных состояний МК.
Поэтому нужна реальная работа.
Особенно в АСМе.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Как раз поток данных можно симулировать, а вот поведение аппаратной части периферии - нет.
(Или достаточно сложно - потребуется добавлять в IDE корректно спроектированный симулятор).
К примеру момент включения прерываний, переполнения счетчиков при разнохитрых комбинациях их аппаратных (программно независимых/программно недоступных) схем управления и прочего именно аппаратного состава встроенной периферии.
Посему и возникает потребность во всякодебаггерах.
Ежли бы там только программная начинка работала - то и возможное состояние было бы вполне предсказуемым.

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

- ДядяВован
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс окт 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]
Дальше работает как надо и всё. Работа с периферией и внешними воздействиями отлажена другими методами. Контроллер прошит, работает.
Ну первый раз отладили, а дальше что?[/uquote]
Дальше работает как надо и всё. Работа с периферией и внешними воздействиями отлажена другими методами. Контроллер прошит, работает.
- КРАМ
- Друг Кота
- Сообщения: 25198
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="ДядяВован",url="/forum/viewtopic.php?p=4521209#p4521209"]Дальше работает как надо и всё. Работа с периферией и внешними воздействиями отлажена другими методами. Контроллер прошит, работает.[/uquote]
Отладка элементарных вещей симулятором нужна лишь на самом начальном этапе изучения.
Поэтому говорить о ней как о серьезном инструменте неуместно. Есть симулятор - и хорошо. Пару раз за проект может потребуется. Да и то не всегда. Быстрее в железном дебаге посмотреть.
Какой смысл иметь несколько инструментов, когда все можно сделать одним?
Отладка элементарных вещей симулятором нужна лишь на самом начальном этапе изучения.
Поэтому говорить о ней как о серьезном инструменте неуместно. Есть симулятор - и хорошо. Пару раз за проект может потребуется. Да и то не всегда. Быстрее в железном дебаге посмотреть.
Какой смысл иметь несколько инструментов, когда все можно сделать одним?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Многие уже и не обращают внимания на "некоторые тонкости" архитектуры современных МП/МК...
А надо бы о том помнить (особо при отладке сложных ситуаций)...
К примеру вместо многофазной синхронизации процессов извлечения и исполнения команд (использовался в "МК на рассыпухе" и там где "много тактов на команду" - та же "классика" mcs51, I8080) применяется "статика" с одним тактом...
Добавим работу того же конвеера предвыборки команд (без коего со времен ПИКовых практически ни одно современное семейство не обходится)...
Вот и повод для интенсивного внедрения аппаратной отладки вида "дебаггер на кристалле".

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

Программная поддержка протокола обмена обязательна в IDE изготовителя или в виде отдельной софт-оболочки (за денюжку).
А вот "внешнее железко", подключаемое между МК и ПК это или самоделка или отдельный блочек обычно совмещенный с программатором.
Может в последних моделях от микрощипа это будет единый стандарт как у АВР, так и у ПИКов.
Пока что у АВРок два разных варианта - один для "староатмелеввских", второй для серий "посвежее".
- КРАМ
- Друг Кота
- Сообщения: 25198
- Зарегистрирован: Чт янв 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 (не родной, естественно) стоит очень дешево.
Как уже было выше сказано, дебаггер должен поддерживаться средой разработки.
Я работаю с ATmega165 в MPLABX и использую в качестве дебаггера PICkit4.
Поскольку дебаг в AVR происходит через JTAG, то полагаю, что есть варианты и для использования J-link.
J-link (не родной, естественно) стоит очень дешево.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="КРАМ",url="/forum/viewtopic.php?p=4520184#p4520184"]Если неясно, повторю еще раз. Смотреть в симуляторе почти нечего. Если только учиться азам, разглядывая как работают инструкции.
Весь смысл применения МК - его взаимодействие с внешней аппаратурой. То есть нужен не просто симулятор, а схемотехнический симулятор типа Протеуса. Но Протеус имеет ограниченное количество моделей МК, я уже не говорю об остальном. Порой симулировать радиотехническую часть схемы на три порядка сложнее, чем написать код. Ведь не всегда известны паразитные параметры реальной схемы...[/uquote]
Почему нечего смотреть в симуляторе?
МК не только взаимодействует с внешней аппаратурой, он ещё производит расчёты.
У симулятора своя ниша, в которой он успешно используется, например, расчёт какой-либо функции.
Надо проверить правильность расчёта и точность во всём диапазоне аргумента, это много точек, в симуляторе это сделать очень удобно.
Причём можно сделать без самого устройства, т.е. отлаживать на компьютере, на котором пишется программа, а это чистое просторное место.
А при реальной отладка на радиомонтажном столе работать с компьютером не очень удобно, поскольку стол занят приборами, паяльной станцией, инструментами и т.д.
Ошибку при записи во флеш в вашей задаче, скорее всего, можно было бы легко обнаружить в хорошем симуляторе.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4520184#p4520184"]Это как раз про жаренную картошку.
Экономить на инструменте конечно можно, но вряд ли стоит это рекламировать. Если нет денег, то причем тут удобство? Отлаживать можно и без каких либо внешних инструментов. Тупо на светодиодах.[/uquote]
При чём тут экономия? Вы пока не показали, в чём преимущество вашего штатного аппаратного дебаггера по сравнению с моим. Вообще, как на нём проводится отладка в реальном времени?
Спрашивал у Just_Fluffy, у неё при отладке производится остановка МК, это сильно ограничивает применение.
Отладка с помощью подмигивающих светодиодов, подключаемых дисплеев, СОМ-порта и т.д. – это что-то школьно-любительское для начинающих.
Весь смысл применения МК - его взаимодействие с внешней аппаратурой. То есть нужен не просто симулятор, а схемотехнический симулятор типа Протеуса. Но Протеус имеет ограниченное количество моделей МК, я уже не говорю об остальном. Порой симулировать радиотехническую часть схемы на три порядка сложнее, чем написать код. Ведь не всегда известны паразитные параметры реальной схемы...[/uquote]
Почему нечего смотреть в симуляторе?
МК не только взаимодействует с внешней аппаратурой, он ещё производит расчёты.
У симулятора своя ниша, в которой он успешно используется, например, расчёт какой-либо функции.
Надо проверить правильность расчёта и точность во всём диапазоне аргумента, это много точек, в симуляторе это сделать очень удобно.
Причём можно сделать без самого устройства, т.е. отлаживать на компьютере, на котором пишется программа, а это чистое просторное место.
А при реальной отладка на радиомонтажном столе работать с компьютером не очень удобно, поскольку стол занят приборами, паяльной станцией, инструментами и т.д.
Ошибку при записи во флеш в вашей задаче, скорее всего, можно было бы легко обнаружить в хорошем симуляторе.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4520184#p4520184"]Это как раз про жаренную картошку.
Экономить на инструменте конечно можно, но вряд ли стоит это рекламировать. Если нет денег, то причем тут удобство? Отлаживать можно и без каких либо внешних инструментов. Тупо на светодиодах.[/uquote]
При чём тут экономия? Вы пока не показали, в чём преимущество вашего штатного аппаратного дебаггера по сравнению с моим. Вообще, как на нём проводится отладка в реальном времени?
Спрашивал у Just_Fluffy, у неё при отладке производится остановка МК, это сильно ограничивает применение.
Отладка с помощью подмигивающих светодиодов, подключаемых дисплеев, СОМ-порта и т.д. – это что-то школьно-любительское для начинающих.