В небольшом проекте встроенной системы у нас есть некоторый код, который мы хотели бы запустить в потоке, поэтому мы решили встроить его поверх встроенной ОСРВ (eCos).
Раньше мы использовали циклический исполнительный механизм в main (), который запускал задачи, каждая из которых реализована как конечный автомат. Для некоторых задач мы столкнулись с проблемами, когда задача должна была быть разбита на множество мелкозернистых состояний, что усложняло код.
При переключении на RTOS мы обнаружили, что использование памяти для каждого стека потока быстро увеличивается, если мы даем каждой отдельной задаче отдельный поток. (у нас всего 64 КБ, и нам нужна память для наших буферов связи)
Мы рассматриваем возможность использования протектора для нашей коммуникационной задачи и другого потока для циклического руководителя. Циклический исполнитель будет решать другие логические задачи.
Есть ли смысл так смешивать RTOS и циклический исполнительный механизм?