Перейти к содержанию
    

ОСРВ, какую выбрать?

Здравствуйте!

 

В настоящее время существует довольно много ОСРВ, как коммерческих, так и открытых.

Поделитесь, пожалуйста, опытом вашего использования ОСРВ и критериями выбора?

 

Заранее спасибо за ответы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Главный критерий выбора для новичка имхо доступные информационные ресурсы. По нему у меня победили кейловская RTX и FreeRTOS.

Недавно натолкнулся на книгу создателя μC/OS - вроде неплохо всё описано, поставил в очередь для прочтения.

 

PS: Стоит выделить еще ScmRTOS - полезна, если хотите писать программы на С++. Её авторы обитают на этом форуме.

 

PPS: Про ОСРВ я слышал довольно давно, читал статьи, но реально осознал полезность, когда появились в разработке большие проекты - с несколькими интерфейсами, графическим дисплеем и т.д.. И обратно к конечным автоматам в суперлупе и самодельной синхронизации между ними не тянет. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из ртос пробовал ucOS и FreeRTOS. Разницы в использовании практически никакой. ucOS позиционирует себя как серьёзную промышленную ось, но на деле всё кроме ядра (планировщик, семафоры) не особо практично и заменяется сторонними библиотеками. У FreeRTOS больше сообщество, сама ось бесплатная и достаточно активно развивается.

В целом ртосы не так, чтобы сильно нужны были. Код с ними становится несколько чище, но появляются дополнительные проблемы с синхронизацией и вместо отслеживания одного стека приходится отслеживать десяток.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использовал scmRTOS, FREERTOS, keil RTX, немного TN_Kernel. Для scmRTOS доки на русском, все хорошо разжевано, минус для начинающего - С++ для встроенных приложений имеет свои особенности.но все равно рекомендую - исходники можно посмотреть, да и нравится она мне - правильная ось ИМХО. Много литературы по uCos читал-там тоже хорошо все документировано.

P.S. -в итоге пришел к тому что средства синхронизации для маленьких проектов использую свои, основанные на шаблонах проектирования queue, event channel, observer/publisher.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из FreeRTOS выковыриваете переключатель задач и живете спокойно.

Все остальные прибамбасы заменяются одной атомарной операцией чтения\установки флага (две ассемблерных команды).

 

Наличие всяких лишних причиндал - результат работы ЧСВ авторов. Подражание тем ОС, где выполняются независимые программы разных программистов. В вашем случае - вы все пишите сами. А всякие сторонние библиотеки, якобы написанные под данную ОС - враки. В реальности вам все равно разбираться в исходном коде и затачивать для себя... (использовать что-то в темную - это для смелых).

 

В темную можно работать с линуксом. (Или виндами). Все остальное - токо проверять лично.

Это было сугубое имхо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это было сугубое имхо.

Если мне не изменяет память, то несколько лет назад Вы не знали Си и сидели на асме, утверждая, что так проще. Кто знает, может еще через несколько лет будут пересмотрены взгляды и на ртосы? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Память вам изменяет. Последний и первый АСМ, который я знал - для 8051. У всех остальных - даже не начинал интересоваться.

Кроме АРМ. Но ровно в той мере, которая нужна, чотбы правильно вытащить переключатель задач. Т.е. знаю даже не ассемблер, а просто систему команд. Процентов на 5%.

 

А раз человек именно в этом разделе интересуется, то грузить его семафорами, мьютексами, стеками и прочим - только убить у него интерес.

Тем более, что в реальной жизни все это не нужно. (Вернее, вы можете это применять, но также легко можете без этого обойтись).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Память вам изменяет. Последний и первый АСМ, который я знал - для 8051. У всех остальных - даже не начинал интересоваться.

Кроме АРМ. Но ровно в той мере, которая нужна, чотбы правильно вытащить переключатель задач. Т.е. знаю даже не ассемблер, а просто систему команд. Процентов на 5%.

Значит я не правильно понял Ваши посты в прошлых темах, которые просматривал, где Вы говорите, что не знаете языка Си - например. И почему-то запало, что был пост и про ассемблер. %)

 

А по теме - можно использовать и свое. Но как бы не вышел Therac-25. Весьма наглядный пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я и сейчас говорю, что я не знаю Си. Я на нем программирую. Да. Но сказать, что знаю - не могу. Вот Паскаль - я знаю. А вот Си - нет.

Вот Шумахер может сказать, что он умеет водить машину. А я по сравнению с этим эталоном - не могу. Хотя и управляю ей, и передвигаюсь из точки А в точку Б. И даже имею права.

 

Т.е для меня очень большой труд - разобраться в чужих программах. Т.е часто непонятны конструкции. Я же пользуюсь только простыми. Однозначными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е для меня очень большой труд - разобраться в чужих программах. Т.е часто непонятны конструкции. Я же пользуюсь только простыми. Однозначными.

Поддержка чужого кода довольно частое явление. И не считаете ли Вы, что если проект написан другим человеком на "публичной" ртос, то это облегчит задачу в разы? Ведь те простые и однозначные конструкции для Вас могут не оказаться таковыми для стороннего программиста, волею судьбы поддерживающий проект созданный Вами ранее. Другой вопрос есть ли в этом заинтересованность. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все остальные прибамбасы заменяются одной атомарной операцией чтения\установки флага (две ассемблерных команды).

Уже второй раз в Ваших постах встречаю подобное высказывание )))

Наличие всяких лишних причиндал - результат работы ЧСВ авторов.

Очереди сообщений, флаги, memory pool - все это, по-вашему, лишние причиндалы? И как Вы это смогли бы сделать без использования критических секций, а только лишь "одной атомарной операцией чтения\установки флага"???

Подражание тем ОС, где выполняются независимые программы разных программистов.

Сейчас пишу под uCOS-II. В проекте, "где выполняются независимые программы разных программистов"...

 

Топикстартеру - считаю, что uCOS предпочтительнее для начинающего, книга по ней очень хорошая. Помогает быстро понять основы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, это лишние причиндалы. Сущность у них одна.

Просто заметьте, если процедура выделения памяти НИКОГДА не отказывает в этом программисту (в летящей ракете таких случаев не бывает) - то эта система никому не нужна.

Очереди и семафоры - просто умное название совершенно стандартных процедур. И простых как 3 рубля. И посему делать их универсальными - нет смысла.

 

Критические секции обслуживаются либо банальным запретом прерываний, либо теми же атомарными операциями. Что предпочтительно. Я вообще никогда прерывания не запрещаю. Кроме случаев, когда это требуется для настройки собственно прерываний.

 

И вообще. ВЫ МОЖЕТЕ ИХ ИСПОЛЬЗОВАТЬ. НО ЛЕГКО ОБОЙДЕТЕСЬ И БЕЗ НИХ. Эта фраза тоже появляется в моих постах во второй раз.

 

И опять таки. Есть читатели мануалов по использованию чужих программ. А есть писатели этих самых программ. Вот я не люблю читать. Просто пишу быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть читатели мануалов по использованию чужих программ. А есть писатели этих самых программ. Вот я не люблю читать. Просто пишу быстрее.

Книгу по uCOS едва ли можно назвать мануалом. Вы ведь уже открывали ее, не так ли? А читалем становиться рано или поздно всякий (лучше рано, чем поздно).

Не могли бы Вы высказаться по данной теме чуть подробнее. Конретно - высказаться по поводу флагов и очереди сообщений. Высказаться по поводу пула памяти. Поскольку ума не приложу, как это Вы можете обходиться без критических секций и только командами SWP/SWPB (я о ARM-инструкциях). Просто хочу убедиться, что, например, говоря о флагах, мы с Вами говорим об одном и том же...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для меня было бы критичным наличие инструкции к портированию ОСРВ на определённую платформу. По FreeRTOS нашёл статьи в КиТ, но что - то про портирование там не нашёл, а другая документация платная.

C++ в определённой мере даже плюс, так как привычнее.

А µC/OS дорого стоит? И в чем отличие II от III?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для меня было бы критичным наличие инструкции к портированию ОСРВ на определённую платформу. По FreeRTOS нашёл статьи в КиТ, но что - то про портирование там не нашёл, а другая документация платная.

C++ в определённой мере даже плюс, так как привычнее.

А µC/OS дорого стоит? И в чем отличие II от III?

Если требуется лицензионная чистота - uCOS отпадает. В чем отличия 2-ой и 3-ей версий - без понятия.

Доки по FreeRTOS - freertos_docs.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...