Easyelectronics.ru

Электроника для всех
Текущее время: 23 янв 2018, 05:21

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 23 сен 2017, 23:16 
Старожил

Зарегистрирован: 17 сен 2013, 13:53
Сообщения: 2819
Ну главный клоун, бусьмен илитный, остался, без циркача не останемся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 23 сен 2017, 23:31 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 2354
Откуда: Тольятти
Как я понял, это средство сделать систему максимально уязвимой. Статические куски кода выполняются даже при некотором повреждении программы. Можно исхитриться написать код так, чтобы он выполнялся даже при обширных повреждениях. Или даже самовосстанавливался в некоторой степени.

А коллбэк - это значит "если в каптерке никого нет, то работаем как обычно. А если там сидит усатый господин, то делать всё, что он скажет". И он таки скажет - "бросай работу, ломай станки".

Предательские "пустышки" для чужеродной ДНК вставлены и только ждут своего часа, чтобы у нас на лбу вырос .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 24 сен 2017, 01:22 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
Сдуру можно и ... сломать.
"ДНК" (код) не чужеродная, а вами же написанная.

Но да, callback - дополнительное усложнение, и использовать его надо, когда он решает какие-то задачи (обычно этот момент довольно очевиден: код без callback становится омерзительным).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 24 сен 2017, 13:26 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1030
Откуда: Германия
Цитата:
Но да, callback - дополнительное усложнение, и использовать его надо, когда он решает какие-то задачи (обычно этот момент довольно очевиден: код без callback становится омерзительным).

Хех.
Вообще, как по мне - приложение должно быть разделено на "слои" типа такого:
Изображение
И те самые колобяки - это есть средство общения между этими слоями.
Если не делать такие слои, то... те, кто будут принимать вашу работу (ну вы же все же стараетесь продать свой труд), будут вас долго материть, и скорее всего откажутся от работы с вами.
Почему? Ну... просто потому, что если сделать прикладу без вот этого разделения, то будет очень сложно перенести готовое приложение, скажем, на новый процессор, или же будет невозможным использовать готовые наработки в новых проектах, потому как все будет жестко завязано на конкретное железо.
И Коллбяки тут - как НЕ усложнение, а как облегчение.
Просто надо смотреть малость с другого ракурса.
Используя коллбяки и такое вот разделение архитектуры приложения, можно один и тот же код гонять на разных платформах без каких либо изменений, например, сначала протестировав на компе, а потом перенеся на процессор.
И да - соверменные процы сейчас позволяют особо не оглядываться на полученный объем кода, ускоряя, тем самым, время разработки. А это второй параметр, по которому вас будут либо выгонять либо продлевать время сотрудничества с вами.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 24 сен 2017, 13:54 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
Ну да, я на первой странице говорил: коллбэки нужны позарез начиная с некоторого уровня сложности.
Если человеку надо просто помигать светодиодом, а его заставляют разделить архитектуру приложения на уровни и связать их коллбэками - естественно, у него возникнут вопросы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 26 сен 2017, 16:41 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 685
Только не стоит забывать, что обработчики прерываний - это самые натуральные коллбэки... А так все ок...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 26 сен 2017, 21:20 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
Mirmik писал(а):
Только не стоит забывать, что обработчики прерываний - это самые натуральные коллбэки... А так все ок...

Ща набежит "илита" и начнет рассказывать, что это типичные быдлокодерские писюковые штучки и обработчики прерываний чем-то ниэпически отличаются от колбеков. Правда, чем именно они отличаются, "илита" внятно объяснить не может, а то, что она несет по этому поводу, ближе к незамутненной проблесками сознания зимней пурге :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 26 сен 2017, 21:52 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 977
Иди учись фшколу, писюк! :)))
Для всех нормальных пацанов разница между коллбэком и прерыванием настолько очевидна, что объяснять это каким-то неучам писюковым - банально взападло :))

Для тупых подсказка - у прерывания другой механизьмъ и в прерывание невозможно передать параметры, иначе как через внестековые переменные. Стек прерывания содержит, помимо всего прочего, сохранение РОН, а ядро работает в другом режиме доступа. После выхода из обработчика РОН (частично) основного потока восстанавливается. Так же сохраняются и восстанавливаются регистры FPU. Инструкции для перехода на прерывание не существует, но контроллер прерывания выполняет пару десятков операций самостоятельно. Переход на обработчик прерывания может быть отменен, если не выполнены некоторые условия. Вызов обработчика как обычной функции по ее адресу возможен, но это чревато аппаратными проблемами, потому что режим доступа не соответствует текущему режиму.

Да, для непосвященных такие материи невидимы и неизведаны. Покажите любому писюку ассемблерную запись - и он обсерется со страху :))) А если ему рассказать механизьмь перехода на прерывание и возврата, да еще в контексте режимов доступа и таймингов операций, в отличие от обычных функций - у него порвется шаблон мозга :))

И не стоит забывать, что мнение некомпетентных в эмбедде писюков никого тут (и особенно меня) не интересует. :))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 26 сен 2017, 23:01 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4521
Mirmik писал(а):
Только не стоит забывать, что обработчики прерываний - это самые натуральные коллбэки... А так все ок...

Ога, это теперь будет как тест-"скажи как ты осознаешь прерывание и я скажу кто ты".

Вам действительно нечего ловить в эмбедде.

evsy, ты сам можешь ответить на свой глупейший вопрос. Достаточно всего лишь узнать что инициирует прерывание.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 00:41 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1030
Откуда: Германия
BusMaster писал(а):
Для тупых подсказка - у прерывания другой механизьмъ и в прерывание невозможно передать параметры, иначе как через внестековые переменные. Стек прерывания содержит, помимо всего прочего, сохранение РОН, а ядро работает в другом режиме доступа. После выхода из обработчика РОН (частично) основного потока восстанавливается. Так же сохраняются и восстанавливаются регистры FPU. Инструкции для перехода на прерывание не существует, но контроллер прерывания выполняет пару десятков операций самостоятельно. Переход на обработчик прерывания может быть отменен, если не выполнены некоторые условия. Вызов обработчика как обычной функции по ее адресу возможен, но это чревато аппаратными проблемами, потому что режим доступа не соответствует текущему режиму.

Ааа. Так вы вон про что...
Ну понятно.
Но!
Параметры - да. Но если обработчик прерывания не требует параметров - это та же функция.
Prolog Epilog - это как вы компилятору скажете - так он и будет, либо сохранять контекст, либо не сохранять. В GCC это __attribute__((naked));
С таким атрибутом ничего кроме смены SP регистра на стек прерываний и переключения режима доступа не происходит. Я этот атрибут использую для своих прерываний, так как GCC по умолчанию в Prolog Epilog коде не все регистры сохраняет а только r0-r4 ну и sp да lr. А этого мало, так как все же если обработчик сделать чуток по сложнее, чем просто сброс флажков, то тот же GCC использует и другие регистры, которые он в стеке предварительно не сохранил. Потому в своих обработчиках у меня свои Prolog и Epilog, которые сохраняют все регистры и восстанавливают их и выходят из прерывания по pop pc; команде, которая из стека выбирает старое значение LR регситра, что я в Prologe туда занес.
Так что, как скажете компилятору, так и будет. Сам проц делает, на самом деле, мало.
И это в ARM процах. В AVR там, например, нет разных режимов доступа для программы и для прерываний, и стек один для всех. Там просто тупо изменяется PC регистр на старт обработчика прерывания, насколько я помню, и адрес возврата в lr регистр заносит.
А вот в ARM 7 От Атмел, например - там 5 разных стеков, и два вида прерываний: FIQ - быстрые, IRQ - обычные. Причем обработчики прерываний должны быть откомпилированны в код ARM, а основноая прога в код THUMB2, иначе все вылетает в аборт хэндлер. Hо так же - проц сам делает мало телодвижений - программеру надо самому заботиться об сохранении контекста в своей ФУНКЦИИ обработчике прерываний.

Инструкция для перехода в прерывание СУЩЕСТВУЕТ. Не для всех, конечно, но для софтверного - SWI называется. Потом можно обхитриться, и сделать прерывание по внешнему событию на ноге, и дергать эту ногу самому из программы - вот вам и "инструкция" перехода в прерывание. ;-) Не надо так категорично.

Ну и потом, хоть обработчики прерывания и с атрибутом nacked и не имеют параметров - для кода на С - это все еще те же функции (ладно, не буду их называть колбяками :) ), только выход из которых обычно не по ret; а по pop pc; команде.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 01:09 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
Напомню, что суть колбэка - не то, как он вызывается, а то, что он отдаётся из нашего кода куда-то (в библиотечную функцию, например), чтобы его потом вызвали. Т.е. мы позвали библиотечную функцию, передали ей callback, она его позвала (или положила куда-то, и он вызвался по событию) - позвав назад нас. Слово "back" как бы намекает.
Так что прерывание - вовсе не обязательно callback, хотя и может им быть (но imho лучше всё же сделать прерывание вшитым насмерть кодом, а callback дёргать уже из него при наступлении какого-то события - ну там, накопился заданный объём данных в буфере, собрался пакет или ещё что). Чтобы прерывания были привязаны к железу, а callbacks - к модели данных.
Или даже не из прерывания, а из основного цикла - по взведённому флагу или выставленному состоянию state machine.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 01:12 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1030
Откуда: Германия
aamonster писал(а):
из основного цикла - по взведённому флагу или выставленному состоянию state machine.

Не эффективно с точки зрения производительности - в то время как будет происходить polling этого флага, можно что то другое поделать, более полезное, чем простой опрос флага - поэтому коллбяки из прерываний эффективнее.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 01:17 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
P.S. А ещё меня забавляет идея, что callbacks - синтаксический сахар. При том, что по факту наоборот: они "потребитель" синтаксического сахара. Чтобы ими было удобно пользоваться - реализуют C++ делегаты (по сути пара объект+метод), используют замыкания (резко упрощает написание коллбэков "на лету", но даёт довольно забавные возможности выстрелить себе в ногу), делают всякие обвязки типа std::function и возможность их создавать из функции, метода объекта, юзать bind... Но это всё в основном на крестиках, на голом си такого нет. В общем, сахар на них сверху ложками сыплют.


Последний раз редактировалось aamonster 27 сен 2017, 01:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 01:21 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
MasterAlexei писал(а):
aamonster писал(а):
из основного цикла - по взведённому флагу или выставленному состоянию state machine.

Не эффективно с точки зрения производительности - в то время как будет происходить polling этого флага, можно что то другое поделать, более полезное, чем простой опрос флага - поэтому коллбяки из прерываний эффективнее.

Если мы в главном цикле в основном спим - то пофиг. Прерывание выставит флаг, или переключит состояние state-машины, или добавит задачу в очередь и разбудит главный цикл.
Сколько-то просядем по производительности, зато не будем долго висеть в прерывании, не будет слишком глубокого стека и не будет вызова одной задачи из середины другой - что упростит нам отладку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 09:10 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
dosikus_2 писал(а):
Вам действительно нечего ловить в эмбедде.

А вам нечего ловить в программировании. И что с того?
dosikus_2 писал(а):
evsy, ты сам можешь ответить на свой глупейший вопрос.

dosykus_2, никакого вопроса не было. Что, впрочем, не помешало вам озвучить глупейший ответ.
dosikus_2 писал(а):
Достаточно всего лишь узнать что инициирует прерывание.

Задам и вам тот же вопрос, на котором обосрался басмастер: и что от этого меняется?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 09:24 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
BusMaster писал(а):
Иди учись фшколу, писюк! :)))

Это вы так замаскиовано пытаетесь попросить меня сходить к вам в школу, потому что родителей к директору вызвали?
BusMaster писал(а):
Для всех нормальных пацанов разница между коллбэком и прерыванием настолько очевидна, что объяснять это каким-то неучам писюковым - банально взападло :))

Видимо поэтому "нормальные поцоны" (ака "илита") никак не могут даже между себя разобраться в чем же разница.
BusMaster писал(а):
Для тупых подсказка

Как-то ваши подсказки вам не помогают, даже когда вы их специально для себя формулируете. Как бы вы не тужились, ничего умнее мелких деталей вы так и не смогли из себя выдавить. Впрочем, не видеть леса за деревьями - довольно типично для "илиты".
BusMaster писал(а):
И не стоит забывать, что мнение некомпетентных в эмбедде писюков никого тут (и особенно меня) не интересует. :))

Да, ваше мнение никого не интересует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 09:26 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
MasterAlexei писал(а):
Не эффективно с точки зрения производительности - в то время как будет происходить polling этого флага, можно что то другое поделать, более полезное, чем простой опрос флага - поэтому коллбяки из прерываний эффективнее.

В RTOS, как правило есть семафоры и/или очереди, которые позволяют не тратить время на опрос и при этом не утяжелять обработку прерываний.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 09:34 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 977
:))) Уже даже все остальные поняли, что прерывание порядком отличается от коллбэка, хоть внешне в сишной записи и выглядит ВРОДЕ БЫ как обычная ф-ция, но без параметров и возвратов. Даже хотябы только это - уже отличие, и существенное притом!
И только один evsi продолжает упорствовать, как капризный ребенок :))) Так, чисто из-за каприза "не хочу кашу, дайте конфет!!" :)) Впрочем, ему этого не понять, он же не эмбеддер, и тут на форуме он залётный со стороны вообще.

Бля, заебал evsi со своей хуетой уже. Куды ты лезеть со своими сраными рассуждениями? Какие, кхуям, тебе РТОС еще? Ты семафоры путаешь с очередями? Ёптвоюналево а. Тебе до таких материй, как до луны. Сделай доброе дело - не мешайся под ногами уже, а... И без тебя тут разберутся. Гуляй, мальчик.
Всё ясно, у evsi типичное поведение бестолкового неуча. Теперь будет ссать и срать до усеру. Епт, откуда он только вывалился в столь прекрасный форум? Щас разгребай эти кучи дерьма не по делу от него... слухай, иди уже на радиоскотов уже, а...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 09:51 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1541
Откуда: Киев
А чем хуки от коллбэков отличаются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 10:02 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
BusMaster писал(а):
Теперь будет ссать и срать до усеру.

Да, это довольно точное описание того, чем вы тут занимаетесь.

P.S. вы довольно забавный экземпляр, давно такие не попадались.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 10:11 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 496
Откуда: Германия
aamonster писал(а):
Напомню, что суть колбэка - не то, как он вызывается, а то, что он отдаётся из нашего кода куда-то (в библиотечную функцию, например), чтобы его потом вызвали. Т.е. мы позвали библиотечную функцию, передали ей callback, она его позвала (или положила куда-то, и он вызвался по событию) - позвав назад нас. Слово "back" как бы намекает.
Так что прерывание - вовсе не обязательно callback


Не принципиально - сказали ли мы библиотеке "вызови вот эту функцию когда произойдет событие" или тоже самое - компилятору.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 12:37 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
dev писал(а):
Не принципиально - сказали ли мы библиотеке "вызови вот эту функцию когда произойдет событие" или тоже самое - компилятору.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 12:37 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1307
Steel.ne писал(а):
А чем хуки от коллбэков отличаются?

Полагаю, это просто другое название для колбеков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 15:02 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2326
Откуда: Санкт-Петербург
Steel.ne писал(а):
А чем хуки от коллбэков отличаются?

По привычной мне (с конца 90-х - начала 00-х) терминологии - в основном более "хакерским" характером. Ну типа хук вешается на какую-то системную функцию (возможно даже - не предусмотренный системой), и позволяет изменить её поведение.

Но, повторюсь, это привычное значение со старых времён, в последнее время с термином "хук" доводится сталкиваться редко, и смысл мог измениться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужны ли коллбэки или это синтаксический сахарок сомнительно
СообщениеДобавлено: 27 сен 2017, 15:13 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4521
Хук- крюк, крючок.
И причем здесь отладочные методы, с подменной вызова системных функций своими, и обычный кодинг ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 140 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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


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

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


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

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

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