Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 20:54

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 10:07 
Старожил

Зарегистрирован: 18 июл 2013, 04:45
Сообщения: 225
добрый день

AVR_Soft_Reset

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

спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 11:24 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 786
Откуда: GMT+6
Не тратит стек и время на вызов функции.
Для этих же целей используют inline функции, например так:
Код:
inline int max(int x, int y) __attribute__((always_inline));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 12:05 
Старожил

Зарегистрирован: 18 июл 2013, 04:45
Сообщения: 225
по поводу желания сократить стек и время - понятны, но, тем не менее, даже если использовать как "функцию" - все равно сброс неибежно произойдет... проверено на железе

в чем "необхоимость" именно такого решения?

спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 12:19 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
"Необходимости" нет. Как и во много другом. Но есть оптимальные решения, а есть нет. В данном случае оптимально сделать макрос, т.к. экономится флэш.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 13:05 
Старожил

Зарегистрирован: 18 июл 2013, 04:45
Сообщения: 225
> "Необходимости" нет
отчего-же? сами же говорите, очевидно что "необходимость в экономии флеша" :о)
спасибо

п.с. а почему не inline?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 14:21 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
А что - экономия флэша это всегда необходимость? Я не писал "необходимость в экономии флеша". Я написал, что это оптимально. Не растрачивается впустую место на на сохранение регистров. Хотя вам об это уже написали.
inline далеко не всегда встраивает функции. А __attribute__((always_inline)) - нестандартное расширение, для совместимости видимо так не делается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVR Soft Reset
СообщениеДобавлено: 26 дек 2019, 17:29 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Если софт-ресет нужен из нескольких разных мест программы, тогда ради этой самой вашей экономии флеша лучше в виде неинлайновой функции делать. Хотя там экономия то - ноль целых хрен десятых на таком маленьком кусочке...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB