вообщем если побольше поиграться с потоками, то окажется, что много какие задачи удобно ими решаются. и приложение писать быстрее с потоками и вытесняющей многозадачностью, чем выдумывать эффективную стейт-машину, мучаться с интерраптами, вываливать кишки каждой задачи в main loop и т.д. и т.п. у каждого разработчика свое мнение на этот счет

Комментарии: 15

  1. Andor

    Виртуальную машину ещё можно сделать

    • Hizhnyak

      Нл ведь я могу передавать данные от adc к шине через dma, не загружая мк, делать несколько задач одновременно используя таймер?

      • Max

        а в это время вася, ковыряясь в носу, заведет пару потоков и уйдет гулять с девушкой. лично мое мнение таково - если задача эффективно (как по затратам человекочасов, так и по соотвествию текущим и будущим критериям) решается через однопоточное приложение - значит делаю однопоточное. если задача решается эффективнее с использованием многозадачной OS/RTOS - значит использую OS/RTOS

        • Hizhnyak

          То есть, иногда, реализация на многопоточной ос легче?)

          • Max

            "легче" понятие растяжимое. уточните. легче по памяти? ...если задача решается с использованием arduino/esp за 2 дня и мне заплатят за нее как за месячную разработку - то буду педалить на arduino/esp :D

            • Hizhnyak

              Имелось ввиду эфективное в плане затрат нервов и времени Ну... тут все, мб такие

              • Max

                да. но опять же, it depends. например, если в МК мало памяти, куча уже готового кода без ОС - нахрена туда пихать freertos?

                • Hizhnyak

                  Но, я так понимаю, что на выполнения отдельных задач, тоже необходим свой стек и обьем памяти?

                  • Max

                    ага

                    • Hizhnyak

                      + память затрачиваемая на саму ос

                      • Max

                        ага

                        • Hizhnyak

                          => уже не так апетитно использовать, когда имеешь, допустим 128 кб флеша

                          • Max

                            ага опять таки - какая OS? какой там конфиг? это как спрашивать "блондинку или брюнетку?"

                            • Hizhnyak

                              А в плане командной разработке? Тогда ведь можно поручить ращработку задач группе людей а потом вставить все решения в исполниюения в течении одного системного тика?

                              • Max

                                в плане командной разработки - уже давно есть git. и ежедневные 5-минутки, планирование и куча методик, от ватерфолла до скрама, которые решают проблемы коллаборации вообще рекомендую выбирать тот или иной инструмент (в контексте нашего разговора - ОС или без ОС) исходя из бюджета и времени. вне денег и времени любой инструмент теряет смысл, потому что можно делать что хочешь, хоть грабли на интерраптах, хоть комбайн на freertos, и все равно не будет никакой оценки результата. одно субъективное мнение.

Не нашли ответ?

Вам также может быть интересно