Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор RTOS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Pasha_a13
Добрый день, уважаемые специалисты!

Возникла задача выбора операционной системы для разработки устройства на базе PIC32.
Устройство представляет собой своего рода преобразователь интерфейсов RS+SPI в Ethernet, плюс web-интерфейс для конфигурации устройства.
Наличие RTOS является обязательным требованием.
Соответственно возник вопрос какую ж выбрать ОС и какой TCP/IP стек к ней, чтобы это все нормально работало между собой и портировалось на PIC32.
Смотрел в сторону FreeRTOS-OpenRTOS, с ними нужно использовать, как я понял, стек lwIP либо покупной от FreeRTOS(однако я не смог найти отзывов по нему, насколько он полноценный и нормально работает). Насколько это удачное решение?
Операционная система желательно чтобы была не дорогая, не могу себе позволить дорогую.

Посоветуйте пожалуйста в какую сторону мне двигаться!

Спасибо!
Volldemar
Псмотрите в сторону:
NuttX_MicroChip PIC32
Очень не дорого.
Сетевая подсистема
Поддерживаемая периферия
Pasha_a13
Цитата(Volldemar @ Dec 26 2013, 12:47) *

Спасибо за совет!
Обязательно посмотрю!
Ruslan1
FreeRTOS хороший выбор.
Я на PIC32 его использую, очень хорошо работает. Но вот lwIP я не использую в PIC, просто пока что не нужно было.
Связку FreeRTOS + lwIP я использую на Кортексах, тоже впечатления только положительные.
kolobok0
Цитата(Ruslan1 @ Dec 28 2013, 03:22) *
FreeRTOS ...lwIP...впечатления только положительные.


и то и то только содержит мелкие баги. для хэйлохты мир пойдёт на ура... для чего то серьёзного - надо допиливать напильником...
Pasha_a13
Цитата(kolobok0 @ Dec 28 2013, 09:08) *
и то и то только содержит мелкие баги. для хэйлохты мир пойдёт на ура... для чего то серьёзного - надо допиливать напильником...

Ну я так понимаю если брать OpenRTOS, то это ж платный продукт и теоретически багов должно быть меньше чем во FreeRTOS?
Какую ОС Вы можете посоветовать с меньшим количеством багов под PIC32?
kolobok0
Цитата(Pasha_a13 @ Dec 28 2013, 18:36) *
...теоретически багов должно быть меньше чем во FreeRTOS?Какую ОС Вы
можете посоветовать...


теоретически да... к сожалению пока имею скромный опыт в разрезе ртос осей. с чем столкнулся - про то обычно немного и умею sm.gif

то, что встречал по фриртосу - не реализован шутдаун, если запустить службу таймеров(одна из последних версий вроде как) и при передачи
штатной нитки кванта времени - обратно уже не переключается. это то что на вскидку вспомнилось.

по lwip стэку - ошибка при обслуживании фрагментированных на IP уровне пакетов (реассэмблирование), есть логические ляпы (ну или скажем
более обтекаемо - не очевидные, лично для меня, телодвижения.), упор обработчика сделан на полинг а не на прерывания, DMA используется
слабоватенько.

в принципе ничего критичного. работать будет, и ось и стэк. но я бы рекомендовал-бы причесать всё ручками, в случае юзанья.
AlexandrY
Цитата(Pasha_a13 @ Dec 23 2013, 21:20) *
Операционная система желательно чтобы была не дорогая, не могу себе позволить дорогую.


Если так ограничены в ресурсах, то надо было искать производителя сразу снабжающего свои микроконтроллеры бесплатной RTOS.
Это TI, Freescale, Renesas и др. Но никак не Microchip.

Начать надо с вопроса можете ли вы сменить микроконтроллер. Вот тогда появляется простор для выбора.
Pasha_a13
kolobok0, спасибо большое за столь подробные уточнения!
Буду пробовать запускать.


Цитата(AlexandrY @ Dec 29 2013, 01:15) *
Если так ограничены в ресурсах, то надо было искать производителя сразу снабжающего свои микроконтроллеры бесплатной RTOS.
Это TI, Freescale, Renesas и др. Но никак не Microchip.

Начать надо с вопроса можете ли вы сменить микроконтроллер. Вот тогда появляется простор для выбора.

Менять контроллер к сожалению не в моих возможностях, не всегда исполнитель выбирает железо с которым ему работать.
По поводу microchip - я смотрю они просто пошли немного по другому пути, не разрабатывают свою ОС а пытаються свои библиотеки соединить с уже имеющимися FreeRTOS-OpenRTOS (имею ввиду microchip harmony).
К сожалению я так понимаю harmony еще очень "сырая" для ее реального использования.
AlexandrY
Цитата(Pasha_a13 @ Dec 28 2013, 23:51) *
По поводу microchip - я смотрю они просто пошли немного по другому пути, не разрабатывают свою ОС а пытаються свои библиотеки соединить с уже имеющимися FreeRTOS-OpenRTOS (имею ввиду microchip harmony).
К сожалению я так понимаю harmony еще очень "сырая" для ее реального использования.


Microchip Harmony это копирование идеи CMSIS ARM. Здесь ничего нового.
Это такой способ привлечь разработчиков RTOS на свою платформу.
Разработчикам приложений эта дополнительная прослойка создает только необходимость в дополнительном коде и лишние формальности.
Как например придерживаться структуры драйверов и следить за прочими структурами в дополнение к и так нелегкими структурами штатного middleware RTOS.
Лучше брать ИМХО чистую RTOS. Я бы советовал uCOS-III без всякой мишуры вроде Harmony.
Цель Harmony не облегчить жизнь разработчикам, а протолкнуть чипы на рынок использую бренды известных RTOS.
Pasha_a13
Цитата(AlexandrY @ Dec 29 2013, 02:26) *
Лучше брать ИМХО чистую RTOS. Я бы советовал uCOS-III без всякой мишуры вроде Harmony.

Смотрели в сторону uCOS, однако по требованиям использованная в устройствах ОС должна быть либо бесплатная либо официально купленная, а uCOS в этом отношении неподъемная по цене к сожалению.


Плюс еще ихний стек TCP/IP тоже ж нужно покупать, а он по цене еще дороже чем сама ОС.

Цитата(AlexandrY @ Dec 29 2013, 02:26) *
Microchip Harmony это копирование идеи CMSIS ARM. Здесь ничего нового.
Это такой способ привлечь разработчиков RTOS на свою платформу.
Разработчикам приложений эта дополнительная прослойка создает только необходимость в дополнительном коде и лишние формальности.
Как например придерживаться структуры драйверов и следить за прочими структурами в дополнение к и так нелегкими структурами штатного middleware RTOS.

Я честно говоря сильно глубоко пока не вникал в harmony, но я так понял (возможно я неправильно понял) что он берет на себя нюансы связанные с тем чтобы тот же майкрочиповский TCP/IP стек работал с той же FreeRTOS, т.к. он же изначально не заточен под ОС. Собственно это меня и привлекло в harmony.
Ruslan1
Я, честно говоря, сильно разницы не заметил, пробовал несколько систем и на разных камнях и разных IDE. Все нужно было немного подпиливать. Но от IDE ничего кроме поддержки компилятора + отладчика никогда и не требовал.

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

Сейчас выбирал, исходя из критериев:
1. Поддержка нужных мне камней и тех которые могут заинтересовать в ближайшее время
2. Уже есть поддержка сложных/времязатратных для самостоятельной реализации вещей (TCP/IP, USB, FAT)
3. Система развивается/не заброшена: есть какие-то обновления в течении последнего полугодия
4. В интернете доступна документация
5. В интернете доступно сообщество пользователей этой системы и это не замерзшее год назад общение.
6. Доступен готовый "хелловорд" пример, который можно быстро применить и использовать как заготовку для моего проекта.
7. доступны исходники, которые и подключаются к проекту (а не предскомпилированная неведомо из чего либа)
8. Наверняка что-то еще забыл и не одно (например, легальность использования)

Если всем пунктам удовлетворяет- то годна к рассмотрению, если нет- то во вторую очередь.

Пока что выбрал и пользую FreeRTOS.
Но, подчеркну, это все- мое личное мнение.
kolobok0
Цитата(Ruslan1 @ Dec 29 2013, 13:56) *
...6. Доступен готовый "хелловорд" пример, который можно быстро применить и использовать как заготовку для моего проекта....


вот тут кстати надо сказать, что многие примеры по жизни идут с FreeRTOS.
Для сокращения въезжания в тему - через готовые примеры по тому железу, что интересует, сделал следующее:
на ебеи прикупил демоплатку(Open407V-D) с переферией. продавец даёт рабочие готовые примеры ко всей переферии на данной платке.

понравилось следующее
взял, компильнул, залил - показывает, работает, передаёт, принимает... (далее тупо копирнул схему, переписал под свои
замороты = рабочая в первом приближении версия). Правда нужно оговорится, что встречаются ляпы в самих примерах sm.gif Так например
в исходниках Ethernet есть сигнал прерывание от физики(в частности заюзано втыкание-вытыкание кабелюки), а сам пин висит в воздухе sm.gif
в следующей итерации железа - подправлю sm.gif
примеры идут как правило без осевые (с юзаньем CMSIS) и фриртосные(FreeRTOS).
Lagman
Цитата(AlexandrY @ Dec 29 2013, 01:15) *
Если так ограничены в ресурсах, то надо было искать производителя сразу снабжающего свои микроконтроллеры бесплатной RTOS.
Это TI, Freescale, Renesas и др. Но никак не Microchip.

А кукую ОС бесплатно дает Renesas и для каких процессоров?
AlexandrY
Цитата(Ruslan1 @ Dec 29 2013, 11:56) *
Везде одно и то же: нигде нет ни чудесного самопишущегося кода, ни суперправильноработающих без напильника сорцов.

Сейчас выбирал, исходя из критериев:
1. Поддержка нужных мне камней и тех которые могут заинтересовать в ближайшее время
2. Уже есть поддержка сложных/времязатратных для самостоятельной реализации вещей (TCP/IP, USB, FAT)
3. Система развивается/не заброшена: есть какие-то обновления в течении последнего полугодия
4. В интернете доступна документация
5. В интернете доступно сообщество пользователей этой системы и это не замерзшее год назад общение.
6. Доступен готовый "хелловорд" пример, который можно быстро применить и использовать как заготовку для моего проекта.
7. доступны исходники, которые и подключаются к проекту (а не предскомпилированная неведомо из чего либа)
8. Наверняка что-то еще забыл и не одно (например, легальность использования)

Если всем пунктам удовлетворяет- то годна к рассмотрению, если нет- то во вторую очередь.

Пока что выбрал и пользую FreeRTOS.


Хм...
Я выбираю совершенно иначе.

1-е и самое главное - наличие прикладного софта. Стек TCP конечно. Но не любой. Одного этого названия недостаточно. На современном этапе нужен стек с мультихостингом, роутингом и как минимум SSL. Другое только потеря времени. Файловая система , GUI - обязательны, но опять смотреть реализацию. Лучше когда файловая система предлагает абстракцию от устройств как и GUI.

2. Обязательные исходники всего.

3. Средства отладки интегрированные с саму RTOS и в IDE. Это ведение логов, просмотр состояний всех объектов синхронизации, отладочный вывод, желательно через JTAG, итерактивная консоль желательно через любой интрфейс (UART, Ethernet, USB...)

4. В свете современных трендов нужна поддержка мультипроцессорности.

5. Если есть только хеловорд то такую систему в топку. Должны быть тесты всех сервисов в исходниках.

6. Если есть пункты 2 и 5, то нет необходимости в сообществе пользователей и какой-то особой документации. Исходники - документация в последней инстанции.

7. Подпиливать всегда нужно. Но тогда становиться очень быстро не по пути с развитием системы. Отсюда вывод - развитие системы и апгрейды тоже не важны.

8. Ну и наконец заточенность системы под разные камни - минус. Это просто ведет к гигантскому разрастанию исходников, путанице и невозможности поменять инструменты разработки. Много ли вы камней поменяли за прошедшие пять лет? ARM-ов достаточно для любых приложений.

Поэтому FreeRTOS - последнее на что стоит обращать внимание.

Ruslan1
AlexandrY, а на что смотреть, если не ФриРТОС?

Зависит от. Я за последние примерно 6 лет использовал Блекфин533, ПИК(разный, но только PIC32 c RTOS), АРМ9(Атмел), ARM Кортекс M4(STM32). Ну и МикроЛинукс, Юкос2, ФриРТОС, ТНКернел(этот чуть-чуть, только светодиодами моргал).

и даже не знаю, какое из сочетаний является абстрактно лучшим, все от задачи и ситуации зависит.
haker_fox
Мне в последнее время всё больше такой концепт рисуется: берём все по отдельности, но наиболее подходящее под нашу задачу. Отдельно берём наилучшую ОС. Для меня это или TNKernel или FreeRTOS. Графическая подсистема - здесь у меня нет ответа, возможно нужно самому писать, либо по мотивам (я графикой не занимаюсь, на работе уже всё самописное готовое). Сетевой, USB стеки - есть готовые (на сайте tnkernel.com хороший стек по мотивам BSD-систем) . Самому писать можно, только если есть опыт, а иначе основная цель сместиться на эти работы. Файловая - FatFS. Я её на работе обернул в классы Си++, очень удобно получилось. Ну как-то так...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.