реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Выбор между FreeRTOS и scmRTOS, Помогите сравнить
Lelikk
сообщение Sep 13 2008, 11:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 15-12-07
Из: Москва
Пользователь №: 33 326



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

Задача не предъявляет особых требований к скорости обработки и задержкам, крутиться будет скорее всего неизменный кргу задач.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 13 2008, 11:24
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



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

Я пробовал только scmRTOS под MSP430 - вполне ничего. Тем более, что разработчики и идеологи рядом и оперативно отвечают на вопросы и проблемы. Для начала, по-моему, самое то.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2008, 12:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(MrYuran @ Sep 13 2008, 13:24) *
Для начала, по-моему, самое то.

Для начала на ARM лучше FreeRTOS - ресурсов кушает поболе, но для ARM это менее критично, зато за счет этого более бескомпромисна и похожа на "большие" системы. От нее уже потом, как от серединки, можно в вверх/вниз двигаться.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 13 2008, 13:48
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(zltigo @ Sep 13 2008, 16:59) *
FreeRTOS - ресурсов кушает поболе, но для ARM это менее критично

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

Ещё: счас посмотрел - FreeRTOS на чистом си написана, без плюсов. Для кого-то это может быть важно.
Жалко, что порт для 449 мсп-шки только, а у меня 149, надо будет искать 10 отличий...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2008, 14:05
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(MrYuran @ Sep 13 2008, 15:48) *
..может, и ресурсов меньше потребуется?

Памяти? Flash да, но и само ядро не минималистичное - нет ограничений на число задач и их приоритеты, таймерообразные вещи не в лоб сделаны, очереди и прочее суровее... Все это требует еще и времени.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2008, 17:55
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2008, 18:13
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ 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 - просьба высказываться по сути вопроса.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Lelikk
сообщение Sep 13 2008, 18:14
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 15-12-07
Из: Москва
Пользователь №: 33 326



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


Использовать я как раз скорее всего буду IAR, так что проблема портирования не стоит.
Вероятно попробую я все же FreeRTOS, так особых требований к быстродейтсвию нет (нет критичного ко времени объекта управления), а совсем минималистичного инструментария не люблю. smile.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 13 2008, 18:55
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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

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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 13 2008, 19:06
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Сергей Борщ @ Sep 13 2008, 20:55) *
Функции API - плюсовый компилятор гораздо строже к соответствию типов, так что насчет "опаснее" - спорно.

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

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Guest_Цыкетчик_*
сообщение Sep 24 2008, 08:30
Сообщение #11





Guests






07.gif

Сообщение отредактировал Цыкетчик - Sep 24 2008, 08:36
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 22:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016