Size: a a a

2020 December 10

VK

Valentin Kornienko in Deus Volt!
VadimAnimeEmbedder
По итогу разгребаю теперь этот код и где могу избавляюсь от потоков. Ибо 25 потоков в приложении - дофига.
стесняюсь спросить. А чем эти 25 потоков занимаются?
источник

V

VadimAnimeEmbedder in Deus Volt!
Valentin Kornienko
стесняюсь спросить. А чем эти 25 потоков занимаются?
1 принимает байты и прокручивает протокол, похожий на modbus на функциях системы в основном.
2 мигает светодиодом и показывает, что ОС жива
3 ждет данных от АЦП и потом пересчитывает
4 ждет данных от SPI проверяет целостность, отправляет в 5
5 ждет данных от 4 и пересчитывает данных из бинарного пакета в реальные паказания отправляет в 6
...
источник

V

VadimAnimeEmbedder in Deus Volt!
Каждая мелкая подзадача - свой поток.
источник

V

VadimAnimeEmbedder in Deus Volt!
Расчет на то, что МК будут всегда жирные.
источник

V

VadimAnimeEmbedder in Deus Volt!
И 120 кб на стеки - это фигня. А тут вот не срослось.
источник

V

VadimAnimeEmbedder in Deus Volt!
Так-то ничего плохого в таком подходе нет, когда много ресурсов. Поддерживать такое легче, чем ад на перрываниях криво написанный.
источник

K

Konstantin in Deus Volt!
VadimAnimeEmbedder
1 принимает байты и прокручивает протокол, похожий на modbus на функциях системы в основном.
2 мигает светодиодом и показывает, что ОС жива
3 ждет данных от АЦП и потом пересчитывает
4 ждет данных от SPI проверяет целостность, отправляет в 5
5 ждет данных от 4 и пересчитывает данных из бинарного пакета в реальные паказания отправляет в 6
...
Конечные автоматы  воткни туда
источник

V

VadimAnimeEmbedder in Deus Volt!
Для начала отвязать это надо от межпотокового взаимодействия. Понять как что связано. Иногда неявно. А потом да. Конечные автоматы.
источник

VK

Valentin Kornienko in Deus Volt!
VadimAnimeEmbedder
1 принимает байты и прокручивает протокол, похожий на modbus на функциях системы в основном.
2 мигает светодиодом и показывает, что ОС жива
3 ждет данных от АЦП и потом пересчитывает
4 ждет данных от SPI проверяет целостность, отправляет в 5
5 ждет данных от 4 и пересчитывает данных из бинарного пакета в реальные паказания отправляет в 6
...
не понял прикола делать всю эту логику на потоках отдельных. Но имхо, если потоки занимаются 90% времени ожиданием- значит самое время корутины тащить.
источник

VK

Valentin Kornienko in Deus Volt!
Чтобы что-то вроде по красоте:
co_await spiData
co_await processReceivedPacket
источник

VK

Valentin Kornienko in Deus Volt!
И все, и все хорошо
источник

VK

Valentin Kornienko in Deus Volt!
VadimAnimeEmbedder
Для начала отвязать это надо от межпотокового взаимодействия. Понять как что связано. Иногда неявно. А потом да. Конечные автоматы.
Кстать. Я не помню, показывал тебе или нет. Заметку по сопрограммам в С++20.
источник

V

VadimAnimeEmbedder in Deus Volt!
Valentin Kornienko
Чтобы что-то вроде по красоте:
co_await spiData
co_await processReceivedPacket
Я наоборот ухожу от всех фишек C++ включая полиморфизм. Все же эта тема в скором времени на сертификацию пойдет. И мне ассемблер смотреть этого дела  Меньше кода - меньше смотреть. Замах на европейскую военку.
источник

V

VadimAnimeEmbedder in Deus Volt!
Про HAL молчу)
источник

VK

Valentin Kornienko in Deus Volt!
VadimAnimeEmbedder
Я наоборот ухожу от всех фишек C++ включая полиморфизм. Все же эта тема в скором времени на сертификацию пойдет. И мне ассемблер смотреть этого дела  Меньше кода - меньше смотреть. Замах на европейскую военку.
А что с полиморфизмом то?
источник

V

VadimAnimeEmbedder in Deus Volt!
Valentin Kornienko
А что с полиморфизмом то?
Необходимость использования стандартных библиотек.
источник

VK

Valentin Kornienko in Deus Volt!
VadimAnimeEmbedder
Необходимость использования стандартных библиотек.
Каким образом?
источник

VK

Valentin Kornienko in Deus Volt!
динамический полиморфизм- vtable, статический фактически бесплатный.
источник

V

VadimAnimeEmbedder in Deus Volt!
Valentin Kornienko
Каким образом?
Для реализации полиморфизма. __dsb что-то там. Уже не помню.
источник

РМ

Роман Матвеев... in Deus Volt!
Что-то не пойму что от меня хочет STM32CubeIDE:
1) Что за полоска между строками 58 и 59?
2) Почему ей не нравится начало main-а? (ошибка в 67 строке)
источник