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

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

Сообщение ARV »

Z_h_e писал(а):К студии другой подключен чтоли?
студия может подхватывать для отладки готовый elf или hex
Demiurg писал(а):Вы не ассемблерщик
я им был, не обольщайтесь
Demiurg писал(а):Только не говорите мне, что я не умею готовить.
что можно говорить в этом случае? ;) если вы делитесь собственным впечатлением, то предваряйте свои высказывания "по моему личному опыту" или "мне кажется" или "я думаю", чтобы выши высказывания нельзя было принять за окончательную истину.

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

Добавлено after 4 minutes 35 seconds:
О панике :)
Demiurg писал(а):И в этом случае вы будете забивать всю таблицу прерываний, если потребуется, чтобы понять в чем дело.
я-то не буду.
во-первых, я знаю, как надо сразу делать правильно, и таблица векторов у меня будет на самом последнем месте поиска проблем.
во-вторых, про панику я говорил в контектсе поведения программы: когда что-то должно делаться, но при этом не делается, и в отладчике не видно явных странностей - это очень загадочно! и как раз такая загадочность возникает, если вместо остановки на "незапланированном" прерывании делается его незаметная обработка через reti - что вы предлагали. и это вполне может вызвать панику! очень много раз ко мне обращались за помощью "ничего не работает, но ошибок нет" именно по этой причине.
Demiurg писал(а):Может быть я написал банальщину.
сейчас - да. раньше было лучше :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Ладно поболтали, побежал я. Дела, заботы...
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

ГЫММ...
Как это (с точки зрения ассемблера) при корректно продуманной инициализации устройства да незадействованные в программе прерывания "сами - по себе" активируются???
:shock:
Никогда с таким "казусом" не встречался...
:dont_know:
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Выше я писал, как это может произойти. Сбой по питанию, импульсные помехи. Прыжок программы из за срыва стека на данные, которые могут оказаться командами управления регистрами ввода-вывода.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Я тоже выше писал, что от самопроизвольного изменения состояния регистров не поможет ничего. Есть не 100% шанс что спасет собака.

Добавлено after 1 minute 11 seconds:
Что за срыв стека может быть в рабочей программе?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

У AVR архитектура такая.
Давайте разберем случаи сбоя и переход программы. Пусть на вектор прерывания. Если неиспользуемый, reti и ничего не произошло. Либо с обработкой ошибки. Если используемый, то здесь можно применить флаг разрешения обработки прерывания.
В любое место программы. Тут сложнее. Ничто не спасает в таком случае. Если на пустое место, то будет перебор всех ячеек 0xFF, в конце мк сбросится на начало программы.
Так что, и ватчдог не особо спасает в случае сбоя.
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Я не видел людей утверждающих, что ватчдог это спасение (хотя наверное есть такие). Устройство должно полностью работать без него и в тех условиях, для которых он предназначен.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

[uquote="Z_h_e",url="/forum/viewtopic.php?p=3160332#p3160332"]Я не видел людей утверждающих, что ватчдог это спасение (хотя наверное есть такие). Устройство должно полностью работать без него и в тех условиях, для которых он предназначен.[/uquote]
А вот неиспользование сторожевого таймера - это выстрел себе в ногу.
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Что касается RETI как "спасения" от сбоя. Т.е. Вы допускаете, что каким-то случайным образом включится маска прерывания на который нет обработчика.

Давайте посчитаем эту вероятность. Не знаю насколько верным будем мой прикидочный расчет. Пускай у Вас область ОЗУ (в которой и РОН и РВВ и просто ОЗУ) 64 байт или 512 бит и 8 векторов с RETI. Приходит некая помеха, которая переводит эту память в некое неизвестное состояние. Существует некий шанс, что память собъется так, что все останется целое, но будут включены маски неиспользуемых прерываний.
Эта вероятность 2^(-512) /8 =9.3E-156. Если хотите, можете все 156 нулей написать :). Кроме того, существуют прерывания, в которых флаги событий аппаратно не сбрасываются. В нынешнее время, МК с 64 байтами это прошлый век. Да, и есть флаги событий которые аппаратно не сбрасываются. (два раза одно и тоже пишу, %) )
Добавлено after 1 minute 48 seconds:
Demiurg писал(а):А вот неиспользование сторожевого таймера - это выстрел себе в ногу.
Не соглашусь. Все зависит от задачи.

----
UPD: разделить конечно надо было 2^8, чуток поменьше нулей после зпт будет.
Последний раз редактировалось Z_h_e Пт авг 11, 2017 16:59:31, всего редактировалось 2 раза.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Z_h_e, расскажи какие флаги событий аппаратно не сбрасываются?
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Буфер приема по UART не пуст. У I2C вроде, тут соврать могу.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3160346#p3160346"]А вот неиспользование сторожевого таймера - это выстрел себе в ногу.[/uquote]
Вы сейчас на каком ресурсе? На любительском? Ну так и расскажите о правильном использовании ватчдога. Только боюсь что вы и сами не знаете или начнёте нервно задавать этот вопрос на другом ресурсе чтобы с пафосом ответить здесь. На чём вас уже подлавливали на изиэлектроникс.
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

scorpi_0n писал(а):Вы сейчас на каком ресурсе? На любительском? Ну так и расскажите о правильном использовании ватчдога. Только боюсь что вы и сами не знаете или начнёте нервно задавать этот вопрос на другом ресурсе чтобы с пафосом ответить здесь. На чём вас уже подлавливали на изиэлектроникс.
Хе. Вы хоть знаете все обстоятельства того случая? Пришел чувак, офисный работник. Не знаю кем он себя возомнил, докопался до меня. Задал он вопрос. Какие методы я применяю для проверки своих проектов. Да, я спросил на ирк канале. Потому что я не знал названия методик. И то, что мне ответили, именно эти методики я и применяю. И что ВЫ мне хотите сейчас сказать?
Применение ватчдога нужно в критических проектах. К примеру, если устройство стоит в пром оборудовании. Срабатывание ватчдога дает гарантию сброса МК и отключение исполнительных механизмов. Есть такое понятие, как время реакции системы. 16 мс - достаточное время для реакции на сбой.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3160379#p3160379"]Применение ватчдога нужно в критических проектах. К примеру, если устройство стоит в пром оборудовании. Срабатывание ватчдога дает гарантию сброса МК и отключение исполнительных механизмов. Есть такое понятие, как время реакции системы. 16 мс - достаточное время для реакции на сбой.[/uquote]
Если у вас ватчдог будет срабатывать постоянно, то никому такой девайс не нужен. Неправильный сброс ватчдога в ненужном месте принесёт ещё больше неприятностей. Вот я и спрашиваю, все говорят ватчдог, ватчдог... А вы знаете как им правильно пользоваться? Вы уверены что это панацея или просто как все?
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Сторожевой таймер - такой же инструмент, как и любой другой периферийный модуль МК. И не меня или кого-либо еще нужно спрашивать, панацея или нет. И нормальна ли ситуация, если девайс постоянно сбрасывается.
Вы сами ответили на свой вопрос.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Я сам себе вопрос не задавал, я задал его вам.
А вы знаете как им правильно пользоваться?
Вы можете озвучить критерии и правильность применения ватчдога или нет? Неужели это такой трудный для вас вопрос?
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Повторяю, задавая мне вопрос, вы сами же и ответили. Ватчдог такой же инструмент. Вы может взять микроскоп и забивать им гвозди. Можете ничего не делать с микроскопом. Это ваше право. То же касается и ватчдога. Критерии задает разработчик устройства. Исходя из его предназначения и условий применения.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Понятно! Ватчдогом вы пользуетесь (?), но смысла всего происходящего объяснить вы не можете. Спасибо!
Это не хвост, это антенна
Сообщения: 1495
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Я подталкиваю вас же к правильным ответам. У вас в руках сторожевой таймер. Вы крутите его и не можете понять, с чем его едят. Начинаем с первого же очевидного. Назначение. Сброс МК, если он зависнет. Таймер можно настроить на разные временные интервалы. Настроив таймер, учитывайте его настройки при применении зацикленных временных задержек в программе. Временные характеристики внешней периферии. Использование или неиспользование сторожевого таймера зависит от назначения и применения устройства. Если вы используете свое устройство в пром оборудовании, то вы обязаны предусмотреть аварийные ситуации. Сторожевой таймер - это один из инструментов для предотвращения этих ситуаций. Поэтому, повторяю, критерии задает разработчик, исходя из условий задачи.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

Сообщение scorpi_0n »

Я подталкиваю вас же к правильным ответам.
Только этого мне ещё и не хватало! Вам нечего мне сказать больше чем знаю я. Вы рассказывайте так, чтобы это всё другим понятно было, если уж начали про ватчдог.
Ответить

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