Тут було обговорено це питання: посилання
Витяги: Стаття Linux Journal, про яку йдеться, знаходиться тут: посилання
Я думаю, що порти 8052 і M68HC12 є особливо поганим вибором для характеристики NuttX, оскільки вони мають певні проблеми, і NuttX зараз у версії 5.16 з 63 випусками.
Я заповнив інтерв'ю на вкладці "Видавець" тут: посилання ; там також є огляд: посилання .
Докладна документація про NuttX доступна тут: посилання .
Проблеми з частинами hcs12 та 8051 такі:
8051 / 80c52: Ця архітектура справді ворожа RTOS. Він має крихітний апаратний стек (128 байт на 8051, 256 на 80c52) у виділеному місці пам'яті (адреса 0). Щоб переключити завдання, вам потрібно скопіювати весь стек завдання, який потрібно заблокувати, з його виділеної адреси в якесь місце збереження, а потім скопіювати весь стек завдання, який слід запустити, з його місця збереження на виділене місце стека. ТАК!
І з тих пір, стек такий маленький. Дуже, дуже легко перевернути стек - особливо під час перерви в роботі.
Порт NuttX 8051 є повноцінним та функціональним (принаймні останній раз, коли я ним користувався). Але для того, щоб зробити його корисним, вам, ймовірно, доведеться скопіювати весь стек на кожному перериванні, щоб уникнути його переповнення. В основному, я втратив інтерес до цього моменту, але якщо хтось справді був вмотивований до використання 8051, це вдається (якщо можливо, не радимо).
Що було гарним щодо порту 8051, це те, що це було чудовим вправою для отримання NuttX в дуже маленьке місце пам'яті. Порт 8051 працює з 32 Кб оперативної пам’яті, що включає в себе RTOS, libc, бібліотеки компіляторів, істотну програму тестування .data / .bss та and heap. І трохи запам'ятовуючи!
hcs12: Це проект, над яким я працюю у вільний час, коли більше нічого не роблю. Він просто не закінчений і ще не готовий до прайм-тайму.
Що стосується порівняння з іншими RTOS, я дійсно не маю жодних хороших, авторатативних відповідей, тому що я не використовую інші RTOS. Але ось моє наївне розуміння:
FreeRTOS має багато завантажень і дійсно крихітний слід близько 4 Кбіт. Це вибір RTOS для дійсно невеликих MCU. Порт FreeRTOS постачається кремнієвими постачальниками майже з кожного MCU. Тож це вибір за замовчуванням RTOS.
З FreeRTOS є десятки конкурентів. ChiBIOS приходить на розум негайно. Це все крихітні планувальники різного типу.
Для того, щоб зробити реальне порівняння, перше, що ми повинні зробити спочатку, це визначити, що ми розуміємо під RTOS: Це просто планувальник? Або це інтегрований набір стандартних функцій ОС - наприклад планувальник, файлова система, драйвери пристроїв, управління пам’яттю, мережа тощо. Більшість операційних систем, наприклад, Linux, - це повна середовище розробки, а не просто планувальники. NuttX - це повноцінна операційна система, це той же сенс, що і Linux. Ось пара інших:
RTEMS : Я працював з цим. Це було назавжди і повинно бути дуже стабільним. Це велике; думаю> 100кб. Я думаю, що він спрямований трохи вище ринку MCU.
uCOS : Ніколи не використовував його, але це RTOS під декількома популярними завантажувачами, чи не так? Моє враження, що це схоже на RTEMS, але я не знаю, про що я говорю.
Як би я порівняв NuttX з тими: ну, це набагато менше. Початковий слід становить близько 20 Кбіт. Повнофункціональна конфігурація - це приблизно на 10-20Kb. Ще одна відмінність від цих RTOS - це те, що NuttX орієнтований дуже на стандарти. Ви можете думати про NuttX як про крихітну роботу в Linux. Більшість кодів, що компілюється та працює в Linux, також буде працювати на NuttX (для деяких системних кодів, таких як мережевий код або демони, можливо, потрібне налаштування).
Я думаю, що RTEMS більше зосереджена на мікропроцесорах; NuttX більш орієнтований на мікроконтролери.