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

Обсуждаем контроллеры компании Atmel.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

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

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

Сообщение 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 раза.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
trofim2
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

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

Сообщение trofim2 »

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

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

Сообщение Z_h_e »

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

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

Сообщение scorpi_0n »

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

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

Сообщение Demiurg »

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

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

Сообщение scorpi_0n »

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

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

Сообщение Demiurg »

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

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

Сообщение scorpi_0n »

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

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

Сообщение Demiurg »

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

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

Сообщение scorpi_0n »

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

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

Сообщение Demiurg »

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

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

Сообщение scorpi_0n »

Я подталкиваю вас же к правильным ответам.
Только этого мне ещё и не хватало! Вам нечего мне сказать больше чем знаю я. Вы рассказывайте так, чтобы это всё другим понятно было, если уж начали про ватчдог.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

[uquote="scorpi_0n"]Вам нечего мне сказать больше чем знаю я.[/quote]
Ух ты, а стоять в вашем присутствии можно?
Вы работали в команде разработчиков Atmel?
Аватара пользователя
afz
Опытный кот
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

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

Сообщение afz »

Z_h_e писал(а):Что касается RETI как "спасения" от сбоя. Т.е. Вы допускаете, что каким-то случайным образом включится маска прерывания на который нет обработчика.
Ставить что-то на неиспользуемые прерывания - это защита не от сбоя, а, скорее, от своих собственных ошибок. И ставить туда надо не RETI, а зацикленный на себя RJMP, чтобы потом глянуть в отладчике, где оно застряло. Ну, или какую-нибудь аварийную выдачу - типа зажечь красный светодиод...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
sibiryak69
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вс июн 19, 2016 06:31:18

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

Сообщение sibiryak69 »

Всем доброго времени суток. Подскажите пожалуйста. в книге Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR (2008) при описании последовательного интерфейса USI на стр 493 приведен пример программы на ассемблере
ldi r16, (1<<USIWMO)|(1<<USICS1)|(1<<USICLK)|(1<<USITC)
понятно, что это команда записи константы в регистр r16, а что из из себя в этом выражении представляет константа непонятно
Если кто знает дайте пояснение пожалуйста
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Байт с установленными битами USIWMO, USICS1 и т.д.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

Это логические операции, аналогичные Си-шным.
(x<<y) - сдвиг числа х на у бит влево. Полностью аналогичен x = x*2^y. В частности, (1<<y) сдвигает 1 на y битов влево, что дает число, в котором все биты сброшены в ноль, а бит номер y - в 1. Например, (1<<3) => 0b00001000
x | y - побитовое ИЛИ. Если хотя бы у одного из аргументов в соответствующем бите 1, то и в бите результата будет 1. Например, 0b01111000 | 0b00011110 => 0b01111110
В данном случае эти логические операции проводятся препроцессором, то есть перед компиляцией, и контроллер использует просчитанную заранее константу, так что накладных расходов не возникает. Зато такой код гораздо легче читать человеку, чем двоичную, а тем более десятичную запись.
Рекомендую потренироваться и перевести пару таких конструкций в двоичное представление.
(спасибо WiseLord, поправил)
Последний раз редактировалось COKPOWEHEU Пн авг 28, 2017 16:48:23, всего редактировалось 1 раз.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

COKPOWEHEU писал(а):Например, 0b01111000 | 0b00011111 => 0b01111000
Не самый удачный и неправильный пример. Подозреваю, копипаст не сработал.
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

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

Сообщение COKPOWEHEU »

Верно, спасибо. Это был пример на побитовое И. Исправил на ИЛИ.
Ответить

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