Size: a a a

2020 September 24

VK

Valentin Kornienko in Embedded Group
источник

VK

Valentin Kornienko in Embedded Group
#coroutines
MUST READ:
подробное пояснение, что есть корутины и как это работает
https://lewissbaker.github.io/2017/09/25/coroutine-theory

https://lewissbaker.github.io/2017/11/17/understanding-operator-co-await

https://lewissbaker.github.io/2018/09/05/understanding-the-promise-type

примеры работы boost::asio с корутинами
https://habr.com/ru/post/348602/

подробное пояснение работы с корутинами + модель акторов
https://habr.com/ru/post/493808/

подробное разъяснение с картинками, как работают корутины + объяснение реализации для MSVC
https://luncliff.github.io/posts/Exploring-MSVC-Coroutine.html
источник

VK

Valentin Kornienko in Embedded Group
#coroutines

https://mariusbancila.ro/blog/2020/06/22/a-cpp20-coroutine-example/
корутины, что есть Awaitable-объект(содержит ссылки на статьи из поста ниже на блог  Lewis Baker )
https://devblogs.microsoft.com/oldnewthing/20191209-00/?p=103195

Определение оператора co_await для пользовательского типа
https://devblogs.microsoft.com/oldnewthing/20191218-00/?p=103221


Пояснение co_await+ winrt
https://devblogs.microsoft.com/oldnewthing/20191219-00/?p=103230

Занимательный блог по winRT+ работа с ассинхронщиой
https://kennykerr.ca/2018/03/09/cppwinrt-producing-async-objects/
https://kennykerr.ca/2018/03/13/cppwinrt-coroutines-thread-pool/
источник

VK

Valentin Kornienko in Embedded Group
И просто прекрасный цикл статей с реализацией самописных корутин.
https://habr.com/en/post/201826/
источник

SK

Stas Koynov in Embedded Group
ну это для биг систем как я понял, я думал есть что для STM32 для ембедед-гцц
источник

SK

Stas Koynov in Embedded Group
ладно спасибо почитаю, но пока ИМХО у меня они не вызвали восторга. при этом медленнее чем просто автомат :(
источник

AK

Anton Kirilenko in Embedded Group
чем отличаются корутины от обычных подпрограмм/процедур?
источник

VK

Valentin Kornienko in Embedded Group
Stas Koynov
ну это для биг систем как я понял, я думал есть что для STM32 для ембедед-гцц
А какая разница, для чего они?
источник

VK

Valentin Kornienko in Embedded Group
Их поддержка в арм-гцц уже есть
источник

VK

Valentin Kornienko in Embedded Group
Anton Kirilenko
чем отличаются корутины от обычных подпрограмм/процедур?
Возможностью приостановить выполнение функции
источник

SK

Stas Koynov in Embedded Group
Anton Kirilenko
чем отличаются корутины от обычных подпрограмм/процедур?
разные стеки. есть переключение контекста
источник

AK

Anton Kirilenko in Embedded Group
типа там мультитаск? ставишь этой задаче низший приоритет и она не работает.
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Valentin Kornienko
Их поддержка в арм-гцц уже есть
и можно всё пилить в линейном стиле как с RTOS, но без RTOS?
источник

AK

Anton Kirilenko in Embedded Group
как раз где-то на хабре писали, что "корутины" - это новое словцо для старых понятий
источник

SK

Stas Koynov in Embedded Group
Anton Kirilenko
типа там мультитаск? ставишь этой задаче низший приоритет и она не работает.
нет, считай просто кооперативный планировщик. ты сам вытесняешь задачу! и сам же ее запускаешь когда надо. Она просто за тебя делает сохранение\восстановление контекста
источник

SK

Stas Koynov in Embedded Group
вот как раз и получается, что легче ИМХО написать свой автомат, который просто делает то се, потихоньку, мол пока нет флага из прерывания выходим. есть обрабатываем, возможно по кусочкам, обработали говорим, что можно работать дальше и т.п
источник

AK

Anton Kirilenko in Embedded Group
Stas Koynov
нет, считай просто кооперативный планировщик. ты сам вытесняешь задачу! и сам же ее запускаешь когда надо. Она просто за тебя делает сохранение\восстановление контекста
Вот я и пытаюсь понять, в чём особенность. Я немного успел попрограммировать под AmigaOS с её мультитаском.
источник

SK

Stas Koynov in Embedded Group
Anton Kirilenko
Вот я и пытаюсь понять, в чём особенность. Я немного успел попрограммировать под AmigaOS с её мультитаском.
ну тут как бы коорутины, на основе самого Языка. мол не нужна ОСь как таковая и тебя освободили от асма мол все само сохраниться\востановиться. ты лишь память дай для стеков и контекста. Вопрос Нужно ли? вот для себя я этот вопрос еще не решил, пока кажеться что лучше бы Эндианс добавили в язык, а то при переносе вечный поиск где и как называется файлег endian.h чтобы узнать что за система и т.п
источник

AK

Anton Kirilenko in Embedded Group
а... на уровне языка
источник

DP

Dmitry Ponyatov in Embedded Group
где на али купить самые дешевые кнопки для кастомной клавы? дешевле 2000 р за комплект можно улезть?
источник