2014-02-11 2 views
2

Для микроконтроллеров доступно множество различных RTOS. Я специально ищу RTOS, которые поддерживают процессоры ARM Cortex M. Кроме того, меня не интересуют решения с закрытыми исходными кодами.Количественные различия между ядрами RTOS для небольших микроконтроллеров ARM

Попытка сравнить относительные достоинства каждой RTOS с веб-сайтами и списками рассылки кажется довольно сложной, поскольку в основном они имеют эквивалентные функции и делают то же самое. Реальные различия становятся очевидными только после попытки использовать каждую RTOS для некоторых задач.

Я знаю, что это несколько субъективный вопрос и, вероятно, трудно ответить - но должно быть много людей, которые действительно пробовали несколько разных RTOS и сформировали мнение об относительных достоинствах каждого из них.

Меня особенно интересуют FreeRTOS, ChibiOS и Coocox CoOS, но другие варианты также очень приветствуются.


Например: казалось бы, что в ChibiOS, ЗРМС может вызывать любые функции системы, но эти вызовы должны быть обернуты в chSysLockFromIsr()/chSysUnlockFromIsr() и код не вытесняемый во время этих разделов. В CoOS единственными функциями, вызываемыми, являются только те, которые начинаются с isr_, таких как isr_PostSem(), isr_PostMail(), isr_PostQueueMail() и isr_SetFlag(), но эти функции внутренне используют очередь запросов на обслуживание, что означает, что большая часть запроса является вытесняемой.

+0

Согласно * Adi *, вам необходимо количественно оценить достоинства. * * Open Source * также означает бесплатную лицензию? Вам нужна файловая система, стек TCP/IP, важный размер кода, латентность прерывания, необходимая поддержка и т. Д. Также, как ваш список из трех, eCos, vxWorks, RTEMS, Integrity, Nucleus, OS-9, MQX , QNX, embOS, ThreadX, TRON, MicroC/OS-II и т. Д. Многие из них поставляются с источником по умолчанию или через запрос. Варианты BSD и Linux также могут работать. Поддержка платформы для Cortex-M обычно представляет собой очень ограниченный код (200-500 ассемблерных линий). То есть, легко переносить любую ОС ARM в Cortex-M с источником. –

ответ

2

Некоторые из функций, которые можно было бы принять во внимание при выборе RTOS:

  • контекста реле времени
  • прерывания задержки
  • механизмы синхронизации (флаги, семафоры, мьютексы, почтовые ящики, очереди, ...)
  • инверсии приоритетов обработки
  • поддержки управления памятью (то есть пулов памяти)
  • s cheduling политика поддержки
  • MMU поддержка
  • поддержка процесс
  • память след
  • эффективности самого
  • POSIX против не-POSIX API в
  • программного обеспечения эко-системы доступны ядер (ака промежуточного слой)
  • ...

Какой пункт (ы) добавить больше фокуса, в зависимости от того, которое вы собираетесь запустить. Но, как правило, это то, что я помню, в котором различаются разные ОСРВ.

Смежные вопросы