Кто-нибудь оценивал RTOS NuttX?

15

Читая сегодня Linux User's Journal, я наткнулся на небольшую рекламу о RTOS NuttX . Я проверил их веб-сайт и был довольно впечатлен его набором функций и возможностью установить его в 8052! Мне кажется интересным, что он поддерживает POSIX, над чем я работал в одном из моих собственных клиентов RTOS. Этот кажется немного более функциональным, чем внутренняя ОСРВ.

Кто-нибудь еще слышал о NuttX и попробовал? Если да, то как он сравнивается с другими ОСРВ, такими как FreeRTOS ?

Джей Аткинсон
источник
1
Я только начинаю играть с RTOS, и когда я спросил здесь, я получил отличный совет, но у меня было ощущение, что большинство пользователей здесь не знают, что такое RTOS. Я не имею в виду это плохим способом, я просто думаю, что было бы полезно спросить об этом на других форумах, чтобы увеличить ваш шанс получить хороший ответ.
Кортук
В любом случае я должен попробовать :-) Вы никогда не знаете, кто здесь прячется :-)
Джей Аткинсон
Да, я тоже здесь задавал вопрос о пуху. Никогда не больно надеяться на укус.
Кортук
Начиная щедрость! Интересует сравнение между ОСРВ.
tyblu
7
Почему есть голосование по этому вопросу? ОСРВ используются в электронике и робототехнике постоянно.
Kellenjb

Ответы:

17

Там было обсуждение, связанное с этим вопросом здесь: ссылка

Выдержки: ссылка на статью в Linux Journal находится здесь: ссылка

Я думаю, что порты 8052 и M68HC12 являются особенно плохим выбором для характеристики NuttX, потому что у них обоих есть некоторые проблемы, и NuttX сейчас находится в версии 5.16 с 63 выпусками.

Я заполнил интервью на вкладке «Издатель» здесь: ссылка ; там тоже есть обзор: ссылка .

Обширная документация по NuttX доступна здесь: ссылка .

Проблемы с частями hcs12 и 8051 заключаются в следующем:

8051 / 80c52: Эта архитектура действительно враждебна для ОСРВ. Он имеет крошечный аппаратный стек (128 байтов на 8051, 256 на 80c52) в выделенном месте памяти (адрес 0). Чтобы переключить задачи, необходимо скопировать весь стек задачи, которая должна быть заблокирована, с ее выделенного адреса в какое-либо место сохранения, а затем скопировать весь стек задачи, которая должна быть запущена, из места сохранения в выделенное место стека. YECH!

И с тех пор, стек такой маленький. Очень, очень легко переполнить стек, особенно во время обработки прерываний.

Порт NuttX 8051 является полным и функциональным (по крайней мере, в последний раз, когда я его использовал). Но чтобы сделать его полезным, вам, вероятно, придется копировать весь стек на каждом прерывании, чтобы предотвратить его переполнение. По сути, я потерял интерес к этому моменту, но если кто-то действительно заинтересован в использовании 8051, это выполнимо (если, возможно, не рекомендуется).

Что было хорошо в порте 8051, так это то, что это было отличным упражнением для переноса NuttX в очень маленькую область памяти. Порт 8051 работает в 32 КБ ОЗУ, включая RTOS, libc, библиотеки компилятора, существенную тестовую программу, .data / .bss и heap. И немного памяти, чтобы сэкономить!

hcs12: это проект, над которым я работаю в свободное время, когда больше ничего не делаю. Он просто еще не закончен и еще не готов к прайм-тайм.


Что касается сравнения с другими ОСРВ, у меня действительно нет хороших, авторских ответов, потому что я не использую другие ОСРВ. Но вот мое наивное понимание:

FreeRTOS имеет множество загрузок и очень маленький размер около 4Kb. Это ОСРВ для действительно небольших микроконтроллеров. Порт FreeRTOS поставляется поставщиком кремния практически со всеми MCU. Так что это выбор RTOS по умолчанию.

Есть десятки конкурентов с FreeRTOS. ChiBIOS приходит на ум сразу. Это все крошечные планировщики разных типов.

Чтобы провести реальное сравнение, сначала нам нужно определить, что мы подразумеваем под ОСРВ: это просто планировщик? Или это интегрированный набор стандартных функций ОС - таких как планировщик, файловая система, драйверы устройств, управление памятью, работа в сети и т. Д. Большинство операционных систем, например, Linux, являются полноценными средами разработки, а не просто планировщиками. NuttX является полноценной операционной системой в том же смысле, что и Linux. Вот несколько других:

RTEMS : я работал с этим. Это было вокруг навсегда и должно быть очень стабильным. Оно большое; думаю> 100кб. Я думаю, что он нацелен чуть выше рынка MCU.

УКО : Никогда не использовал его, но это ОСРВ под несколькими популярными загрузчиками, не так ли? У меня сложилось впечатление, что это похоже на RTEMS, но я не знаю, о чем говорю.

Как бы я сравнил NuttX с такими: ну, это намного меньше. Начальная площадь составляет около 20 КБ. Полнофункциональная конфигурация на 10-20 КБ больше. Еще одно отличие от этих ОСРВ заключается в том, что NuttX очень ориентирован на стандарты. Вы можете думать о NuttX как о крошечном, похожем на Linux. Большая часть кода, который компилируется и выполняется в Linux, также будет работать в NuttX (некоторые системные коды, такие как сетевой код или демоны, могут нуждаться в некоторой настройке).

Я думаю, что RTEMS больше ориентирован на микропроцессоры; NuttX больше ориентирован на микроконтроллеры.

patacongo
источник
4

Лицензирование - это еще одно отличие, о котором следует помнить при выборе ОСРВ с открытым исходным кодом. Особенно, если вы планируете использовать ОСРВ в коммерческом проекте. Большинство RTOS с открытым исходным кодом имеют измененную лицензию GPL. Изменение лицензии обычно указывает на то, что у вас нет своего проприетарного кода, который связан с RTOS GPL (но вам все равно придется выпускать файлы RTOS с вашими модификациями).

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

patacongo
источник
Натт, ты бы хотел, чтобы я отредактировал эту информацию в своем другом ответе, похоже, они идут вместе.
Кортук
Конечно, не стесняйтесь. Rant около 8051 и 80c52 и hc12 также кажется здесь вне контекста.
Патаконго
Я просто гарантировал, что вы поняли, что можете редактировать больше. Так как вы знали это и сделали это намеренно, мы можем просто оставить это здесь. Обычно вы можете просто редактировать в другом разделе и использовать заголовки. Дай мне знать, смогу ли я помочь, если ты передумаешь.
Кортук