Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор между FreeRTOS и scmRTOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > FreeRTOS
Lelikk
Выбираю Ось для небольшого устройства, типа пульта управления (можно обойтись вообще без нее, но все же хочется что-то).
Процессор LPC2119, полистал исходники обеих ОС - но с ходу трудно понять, у какой какие особенности.

Задача не предъявляет особых требований к скорости обработки и задержкам, крутиться будет скорее всего неизменный кргу задач.
MrYuran
Цитата(Lelikk @ Sep 13 2008, 15:11) *
Задача не предъявляет особых требований к скорости обработки и задержкам, крутиться будет скорее всего неизменный кргу задач.

Я пробовал только scmRTOS под MSP430 - вполне ничего. Тем более, что разработчики и идеологи рядом и оперативно отвечают на вопросы и проблемы. Для начала, по-моему, самое то.
zltigo
Цитата(MrYuran @ Sep 13 2008, 13:24) *
Для начала, по-моему, самое то.

Для начала на ARM лучше FreeRTOS - ресурсов кушает поболе, но для ARM это менее критично, зато за счет этого более бескомпромисна и похожа на "большие" системы. От нее уже потом, как от серединки, можно в вверх/вниз двигаться.
MrYuran
Цитата(zltigo @ Sep 13 2008, 16:59) *
FreeRTOS - ресурсов кушает поболе, но для ARM это менее критично

Кстати, о птичках: а если использовать минимум сервисов и примочек, может, и ресурсов меньше потребуется? Тогда действительно, FreeRTOS более перспективна, она хотя бы официально признана википедией smile.gif

Ещё: счас посмотрел - FreeRTOS на чистом си написана, без плюсов. Для кого-то это может быть важно.
Жалко, что порт для 449 мсп-шки только, а у меня 149, надо будет искать 10 отличий...
zltigo
Цитата(MrYuran @ Sep 13 2008, 15:48) *
..может, и ресурсов меньше потребуется?

Памяти? Flash да, но и само ядро не минималистичное - нет ограничений на число задач и их приоритеты, таймерообразные вещи не в лоб сделаны, очереди и прочее суровее... Все это требует еще и времени.
Сергей Борщ
Цитата(Lelikk @ Sep 13 2008, 14:11) *
Процессор LPC2119, полистал исходники обеих ОС - но с ходу трудно понять, у какой какие особенности.
Когда мне задают подобный вопрос, я отвечаю: основное отличие между этими ОС такое: Если вам не нужно в процессе работы программы создавать и удалять задачи, то вам подойдет scmRTOS и вы получите преимущества в скорости и количестве занимаемой памяти (как флеша, так и ОЗУ). Здесь на форуме была ветка, в которой я сравнивал эти ОС по памяти/скорости. Если вам надо динамически создавать/удалять задачи, то scmRTOS вам точно не подойдет, но вы можете посмотреть еще и на TNKernel, я ее не пробовал, но по отзывам она экономичнее FreeRTOS по памяти и пошустрее. Опять же, какой компилятор вы используете? scmRTOS на данный момент имеет "боевой" порт LPC только под IAR, в репозитории лежит рабочий, но довольно сырой порт под GCC дя AT91 и ADuC (пока нет возможности компилить ОС в thumb), портировать его на LPC дело буквально часа. Если вы используете Кейл, вам придется портировать ее самостоятельно.
zltigo
Цитата(Сергей Борщ @ Sep 13 2008, 19:55) *
Когда мне задают подобный вопрос, я отвечаю: основное отличие между этими ОС такое: Если вам не нужно в процессе работы программы создавать и удалять задачи, то вам подойдет scmRTOS...

Отнюдь, не только это. Просто на вскидку по функциональному минимуму:
1. Задачи с одинаковыми приоритетами (да, да, знаю, что в мануале scmRTOS пространно описана "ненужность", но лично мне нужно smile.gif )
2. Количество задач - не столь важно, но тем не менее.
3. При большом количестве задач более простая организация тех-же таймеров scmRTOS начинает больше тормозить.
4. Функции API более простые, узкоспециализированнее их больше и они опаснее в использовании.
5. Вытесняющая и кооперативная многозадачность в одном флаконе.
Наверноее что-то еще забыл sad.gif
Цитата(MacGregor @ Sep 13 2008, 20:08) *
И кстати, какое у Вас научное звание? Вы доктор наук? Профессор?

А Вы только труды профессоров читаете smile.gif? Совершенно зря sad.gif. И вообще никогда не высказываете СВОЕ мнение? Ну это Ваше право, только к чему совершенно непонятные упреки людям, которые выступают от своего имени?
Moderator:
То MacGregor - просьба высказываться по сути вопроса.
Lelikk
Цитата(Сергей Борщ @ Sep 13 2008, 21:55) *
Когда мне задают подобный вопрос, я отвечаю: основное отличие между этими ОС такое: Если вам не нужно в процессе работы программы создавать и удалять задачи, то вам подойдет scmRTOS и вы получите преимущества в скорости и количестве занимаемой памяти (как флеша, так и ОЗУ). Здесь на форуме была ветка, в которой я сравнивал эти ОС по памяти/скорости. Если вам надо динамически создавать/удалять задачи, то scmRTOS вам точно не подойдет, но вы можете посмотреть еще и на TNKernel, я ее не пробовал, но по отзывам она экономичнее FreeRTOS по памяти и пошустрее. Опять же, какой компилятор вы используете? scmRTOS на данный момент имеет "боевой" порт LPC только под IAR, в репозитории лежит рабочий, но довольно сырой порт под GCC дя AT91 и ADuC (пока нет возможности компилить ОС в thumb), портировать его на LPC дело буквально часа. Если вы используете Кейл, вам придется портировать ее самостоятельно.


Использовать я как раз скорее всего буду IAR, так что проблема портирования не стоит.
Вероятно попробую я все же FreeRTOS, так особых требований к быстродейтсвию нет (нет критичного ко времени объекта управления), а совсем минималистичного инструментария не люблю. smile.gif
Сергей Борщ
Цитата(MacGregor @ Sep 13 2008, 21:22) *
Просто хотел бы ознакомится с научными трудами Сергея Борща
А вы загляните в исходники порта scmRTOS для ARM...
И приведите свои аргументы "за" и "против" обоих ОС.

Цитата(zltigo @ Sep 13 2008, 21:13) *
Отнюдь, не только это.
Но это наиболее существенное (на мой взгляд) из отличий. Одинаковые приоритеты, да, согласен, плюс FreeROS. Количество задач - теоретически 64 для scmRTOS (практически сейчас 32). У меня пока больше 5 не было. Таймера - на большом количестве задач да, будет тормозить. На малом количестве - наоборот. Функции API - плюсовый компилятор гораздо строже к соответствию типов, так что насчет "опаснее" - спорно. Вытесняющая и кооперативная... А оно надо?
zltigo
Цитата(Сергей Борщ @ Sep 13 2008, 20:55) *
Функции API - плюсовый компилятор гораздо строже к соответствию типов, так что насчет "опаснее" - спорно.

Опаснее не в смысле неверного вызова, а в том смысле, что однотипные цели достигаются в разных условиях бОльшим количеством системных вызовов.
Цитата
Вытесняющая и кооперативная... А оно надо?

Кооперативную, естественно, можно и ручками в любой из задач организовать, а можно и готовым механизмом воспользоваться. Ну а вообще кооперативная нужна, напрмер, для обслуживание некого количества однотипных каналов.
Цыкетчик
07.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.