Я оцениваю операционные системы для использования в проекте Internet of Things и не знаю, как лучше поступить.
Я использую микроконтроллер TM4C123GH6PM с 32 Кб оперативной памяти и приемопередатчиком CC2520 802.15.4, было бы замечательно, если бы система уже предоставила драйверы для них.
Система запустит одну (интерактивную) задачу, которая отображает экран точечной матрицы и реагирует на ввод пользователя. Он будет хранить конфигурацию и данные приложения на spi flash. Будет сеть из нескольких модулей (на основе стандарта 802.15.4) для синхронизации данных между модулями, извлечения данных датчиков из модулей и передачи их на шлюз (вспоминается rpl), а также для распространения обновлений прошивки OtA в виде сплетен. нравится мода. Все это при запуске довольно жадного до памяти приложения.
До сих пор я изучал эти системы:
Бунт :
профи
- хорошая аппаратная абстракция
- маленький след
- очень активное и полезное сообщество
- полный стек 802.15.4 / 6LoWPAN
минусы
- нестабильный, все еще претерпевает фундаментальные изменения
- все еще содержит условия гонки / сбои
- нет поддержки файловой системы
- несколько сетевых протоколов
Контики :
профи
- зрелая система, используемая в коммерческих продуктах
- полный стек 802.15.4 / 6LoWPAN со многими полезными протоколами
- поддержка файловой системы
- поддержка cc2520
минусы
- развитие стало устаревшим
- «взрослая» кодовая база, много гнилой
- плохое качество tiva c port
- небольшая поддержка современных платформ
- Непрерывное планирование может вызвать проблемы с приложением
FreeRTOS :
профи
- немного дополнительной сложности
- простой в использовании, надежный планировщик
- зрелый проект, используемый во многих продуктах
- много портов
минусы
- нет файловой системы
- без аппаратной абстракции для драйверов / без аппаратных драйверов
- нет сетевого стека
- несколько высокое использование динамической памяти
NuttX :
профи
- очень многофункциональный, почти как Linux, но все еще маленький
- поддержка файловой системы
- хорошая аппаратная абстракция
- Порт Tiva C, много других портов
минусы
- несколько сложный
- нет поддержки 802.15.4 / 6LoWPAN, просто «классическая» сетка
Мой вывод заключается в том, чтобы взять хорошие части Contiki (netstack, файловая система) и перенести их на FreeRTOS. Но мне не совсем удобно с такой вилкой. Я, вероятно, добавляю ошибки и не смог бы создавать резервные копии вышестоящих исправлений, также я все еще должен изобрести собственную аппаратную абстракцию, чтобы иметь возможность переключать MCU в будущем. Таким образом, я бы выбрал свою собственную ОС для чего-то, что кажется проблемой, которая должна была бы возникнуть и для многих других людей - разве кто-то не делал этого раньше? (Я имею в виду, что я что-то нашел, но идея запустить весь contiki-os как задачу FreeRTOS делает меня неудобным)
Я что-то упускаю? Может быть, боль стоила того, и я должен попытаться привести Contiki в рабочее состояние на моем оборудовании? Или есть другая система, которую я пропустил, чтобы решить мои проблемы?
Также я не уверен, нужен ли мне вообще 6lowPan, но когда это означает возможность использовать существующие протоколы / быть совместимым с другими системами (например, Linux), я был бы готов взять на себя дополнительные издержки.
источник
running the entire contiki-os as a FreeRTOS task makes me uncomfortable
Это просто .. вау! Я бы никогда не подумал об этом ..Ответы:
Если вы не состоите в браке с этим конкретным процессором (или достаточно опытны, чтобы скопировать / вставить код в любом случае), я часто использую микроконтроллеры Freescale с CodeWarrior и Processor Expert. PEX включает в себя ряд компонентов, включая FreeRTOS, MQX, FAT и т. Д. Можно загрузить дополнительные компоненты, и, в конце концов, это всего лишь генератор кода на основе графического интерфейса пользователя, поэтому, как было предложено, вы можете скопировать / вставить полученный код C в ваш проект.
Редактировать:
-MQX включает в себя стек IP
-FNET
Большой предварительно скомпилированный пакет многих полезных компонентов: http://sourceforge.net/projects/mcuoneclipse/files/PEx%20Components/
источник
Вы пропустили mbed OS :
профи
минусы
источник
Если это для коммерческого использования, я настоятельно рекомендую вам взглянуть на несвободные опции, поддержка - это все, если это личный проект, то я могу понять.
Да, это связано с затратами, но с некоторыми разработчиками ОСРВ, они не так уж и велики, они действительно зарабатывают деньги на индивидуальной разработке, и лицензии могут быть бесплатными, пока вы не совершите продажу. Ниже приведена ссылка на статью, в которой сравниваются некоторые платные конкуренты:
Сравнение микроконтроллерных операционных систем реального времени
Я менеджер проекта, и мы перешли от использования драйверов, предлагаемых ST, к Unison. IIRC, лицензирование было на удивление небольшим, и мы получили «полную пробную версию», пока не убедились в этом, но постоянная прямая поддержка - это то, что подтолкнуло нас на грань, и то, что действительно помогает ускорить наше развитие. Я думаю, что у них уже есть поддержка различных беспроводных чипов TI, не уверен насчет CC2520.
Парень, который делает большую часть продаж, по-настоящему персональный и не перечисляет цены по двум причинам, мне сказали 1) потому что они хотят услышать то, что вам нужно, они действительно хотят постоянных клиентов, и устные ссылки, и 2) соревнование.
К вашему сведению, сайт Unison действительно плохой.
источник