ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
426992 Топик полностью
Mahagam (24.07.2013 12:56, просмотров: 391) ответил SciFi на Давно холиваров не было. Как насчёт RTOS vs Main Loop? Поделитесь практическим опытом. Сам RTOS не применял, да и не очень хочется.
со своей колокольни: - RTOS отъедает память на стеки потоков. да. отъедает. и это ограничивает сферу применения в контроллерах с малой рамой. но всегда можно посмотреть сколько рамы жрётся и выделить минимум. хоть это и трудозатраты - RTOS позволяет писать код для длительных процессов линейно. Должно быть, это удобно. это офигенно удобно! новая отдельная подзадача? ну так запихиваем её в отдельный поток, оборачиваем в while (1) {...} и всё. оно исполняется. а внутри можно ставить тьму пауз и задержек! при этом другие потоки не паузируются и не задерживаются. - Main Loop тоже позволяет делать линейный код (protothreads), но это как бы костыль и не очень красиво. и тоже добавляет ограничений в код. - RTOS требует синхронизации между потоками: всякие там мутексы, семафоры, дедлоки и прочее. Геморрой. успокойтесь, синхронизации требуют только зависимые между собой процессы. в биглупе тоже самое ж, только без системных средств, там просто пишутся велосипеды. - Main Loop требует синхронизации только между обработчиками прерываний и главным потоком. Это проще. а между главным потоком и вызываемыми функциями? - Переносимость: Main Loop проще, поэтому и переносится легче. только писать под него сложнее.