Обсуждаем контроллеры компании Atmel.
Ответить

AVR Soft Reset

Чт дек 26, 2019 08:05:48

добрый день

AVR_Soft_Reset

вопрос: почему функция реализована как define а не как "обычная функция"? в чем фикус?

спасибо

Re: AVR Soft Reset

Чт дек 26, 2019 10:38:13

Похоже речь идет о добавках в *.init файлах
(Для этих новых AVRs, функция должна быть добавлена к .init3 секции )
вызванных изменениями алгоритма работы аппаратной части WDT и связанных с ним
систем обслуживания сброса по сработке WDT...
Это бы спецам надо глянуть... Особо замечания по поводу самого WDT в части наовх модификаций МК...
:roll:
Собственно все в статье:
"...Вот некоторый код примера, который создает макро, которое может быть названо, чтобы выполнять мягкий сброс..."
:roll:

Re: AVR Soft Reset

Чт дек 26, 2019 11:09:04

статью я пробежал глазами :о)

не понятно почему именно макрос, не inline, да и вообще не обычная функция...
ради экономии памяти?

Re: AVR Soft Reset

Чт дек 26, 2019 13:01:39

Вычитывать относительно новых свойств собаки надо...
Скорее всего оттуда все "нюёнсы"...
:dont_know:

Re: AVR Soft Reset

Чт дек 26, 2019 13:35:34

На другом форуме уже ответил я и другие. Не жрать флэш и тратить время на сохранение регистров, переход к функции. inline не обязательно так работает, а __attribute__((always_inline)) - не стандарт. Поэтому вот макрос. Просто и стандартно. И не жрет ничего лишнее ради 1 записи в регистр и бесконечного цикла. Логично и оптимально.

Re: AVR Soft Reset

Чт дек 26, 2019 14:23:07

1 - #define это определение, макрос. Текстовая замена.
2 - программисты люди, могут ошибаться. Поэтому нужно всегда придирчиво относиться к чужому тексту.
3 - программисты люди, это может быть аутист, "психи" с вывернутыми наизнанку мозгами. Наркоманы наконец. Также программист который программирует МК AVR пришёл с другой сферы деятельности. И он не будет учитывать аппаратные особенности.

Для кого то мои слова могут показаться шокирующими, у меня не было цели кого то оскорбить. Просто нужно всегда учитывать, что программисты люди. И рамки предпосылки почему он сделал так или эдак могут быть очень широкими.

Re: AVR Soft Reset

Чт дек 26, 2019 15:43:25

Здесь прекрасно прослеживается логика. По ссылке видно, что такие функции на ~4 инструкции лучше реализовать макросом, меньше будет занимать при вызове в большинстве случаев.
Ответить