Количественные различия между ядрами RTOS для небольших микроконтроллеров ARM

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

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

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

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


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

1 ответ

Некоторые функции, которые можно учитывать при выборе ОСРВ:

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

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

Другие вопросы по тегам