Хтось оцінював NuttX RTOS?


15

Читаючи сьогодні Журнал користувача Linux, я наткнувся на трохи розмиття щодо NuttX RTOS. Я перевірив їхній веб-сайт і був досить вражений його набором функцій і його здатністю помістити його в 8052! Мені здається цікавим, що він підтримує POSIX, і це те, над чим я допоміг працювати для одного з моїх клієнтів RTOS. Ця здається трохи більшою, ніж функціональна RTOS.

Хтось ще чув про NuttX і спробував це? Якщо так, то як він порівнюється з іншими RTOS, такими як FreeRTOS ?


1
Я тільки починаю грати з RTOS, і коли я запитав тут, я отримав чудові поради, але у мене було відчуття, що більшість користувачів тут не знають, що таке RTOS. Я не маю на увазі це погано, я просто думаю, що може бути корисним запитання про це на інших форумах, щоб збільшити шанси на отримання хорошої відповіді.
Кортук

Я все одно повинен спробувати :-) Ніколи не знаєш, хто тут ховається :-)
Джей Аткінсон

Так, я і тут задав питання про ворсинку. Ніколи не шкодить сподіватися на укус.
Кортук

Початок щедрості! Мене цікавить порівняння RTOS.
tyblu

7
Чому для цього питання потрібно закрити голосування? RTOS використовуються в електроніці та робототехніці весь час.
Kellenjb

Відповіді:


17

Тут було обговорено це питання: посилання

Витяги: Стаття 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 більш орієнтований на мікроконтролери.


4

Ліцензування - це ще одна відмінність, яку слід пам’ятати при виборі RTOS із відкритим кодом. Особливо, якщо ви плануєте використовувати RTOS в комерційному проекті. Більшість RTOS з відкритим кодом мають модифіковану ліцензію GPL. Модифікація ліцензії, як правило, вказує, що вам не потрібно використовувати свій власний код, який посилається на GPL RTOS (але ви все одно повинні випустити файли RTOS з вашими модифікаціями).

NuttX (і, напевно, інші) мають не обмежувальну модифіковану ліцензію BSD. Маючи ліцензію BSD, ви можете по суті взяти код і використовувати його так, ніби він був власним, не маючи жодних зобов'язань, крім збереження інформації про ліцензії та авторські права у файлах.


Натт, ти хотів би, щоб я відредагував цю інформацію у вашій іншій відповіді, здається, вони йдуть разом.
Кортук

Впевнені, не соромтеся. Rant про 8051 і 80c52 і hc12 також здається поза контекстом.
patacongo

Я просто гарантував, що ти зрозумів, що ти можеш більше редагувати. Оскільки ти це знав і робив це навмисно, ми можемо просто залишити його тут. Зазвичай ви можете просто редагувати в іншому розділі та використовувати заголовки. Дайте мені знати, чи можу я допомогти, якщо ви передумаєте.
Кортук
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.