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