Какую ОСРВ использовать с микроконтроллером LPC1788?
Я пытаюсь найти бесплатную / дешевую ОСРВ, которая, по мнению других, хорошо работает с микроконтроллером NXP LPC1788. Первоначально я планировал использовать FreeRTOS, но, похоже, он не поддерживает этот конкретный процессор; самое близкое поддерживаемое ядро - LPC1768. ThreadX работает с LPC1788, но лицензия на него будет стоить несколько тысяч фунтов. Предложения?
РЕДАКТИРОВАТЬ 1: я забыл упомянуть, я работаю с IAR Embedded Workbench.
РЕДАКТИРОВАТЬ 2: Я думаю, я должен также указать, что я довольно плохо знаком со встроенным программированием, не говоря уже о RTOS. FreeRTOS и ThreadX кажутся довольно похожими, и оба имеют довольно интуитивно понятный API. Чем больше API другого RTOS соответствует этим видам API, тем лучше, я полагаю.
РЕДАКТИРОВАТЬ 3: Я искал одну ОСРВ под названием EmbOS. Выглядит профессионально, API выглядит неплохо, они поддерживают приличное количество комбинаций процессор /IDE (включая мою), и у меня уже есть примерный проект, работающий нормально. Это не бесплатно, и лицензия на нее будет стоить около 2500 евро, но это все равно примерно в 3 раза дешевле, чем лицензия ThreadX. Спасибо за предложения, мне плохо, что я не могу выбрать приемлемый ответ.
7 ответов
Первоначально я планировал использовать FreeRTOS, но, похоже, он не поддерживает этот конкретный процессор
На самом деле FreeRTOS поддерживает все процессоры Cortex-M3 и Cortex-M4 с GCC, IAR и Keil. То, что для него не существует предварительно настроенного демонстрационного проекта, еще не означает, что он не поддерживается.
FreeRTOS не полагается ни на что, кроме ядра Cortex-M, потому что генерация таймера и контроллер прерываний являются частью самого ядра.
Вы можете взять существующий официальный демонстрационный проект IAR LPCxx из дистрибутива FreeRTOS и просто перенастроить его, настроив правильный компоновочный скрипт для чипа. Любые демонстрационные задачи, использующие IO, которые могут отличаться на вашем конкретном оборудовании (порты, используемые для светодиодных выходов и т. Д.), Могут быть изменены, чтобы соответствовать назначению вашего порта IO, или просто удалены.
Например, Atollic
есть 55 FreeRTOS
проекты, работающие на 55 различных аппаратных платформах, все, которые на самом деле используют одни и те же исходные файлы на языке Си - отличаются только стартовые файлы и сценарии компоновщика.
Я специально оценил FreeRTOS, embOS и Keil RTX на Cortex-M3. Из трех FreeRTOS, безусловно, было самое медленное время переключения контекста, в то время как RTX был самым быстрым, но диапазон был от 5 с до 15 с, поэтому, вероятно, не критично для всех, кроме самых жестких приложений реального времени (однако в моем случае это имело значение).
RTX, конечно, специфичен для Keil, и вы используете IAR, его API менее сложен, чем embOS, и в то время он имел несколько ошибок в CM3 и не полностью поддерживал схему приоритетов прерываний NVIC. Я считаю, что эти проблемы решены. FreeRTOS, пожалуй, самый нетрадиционный из трех с точки зрения API и архитектуры, широко применяя embOS и VxWorks и аналогичные "традиционные" системы RTOS, мне это не совсем понравилось.
embOS хорошо работает с IAR и его отладчиком, с уровнем отладки на уровне RTOS, который полезен. Лицензирование распространяется на разработчика / на процессор / на инструментальную цепочку, но в остальном не требует авторских отчислений и может использоваться во многих проектах, использующих одну и ту же архитектуру и набор инструментов. Поддержка от Segger превосходна, как и документация, и я бы предположил, что для коммерческого продукта с достаточными объемами и маржинальностью это того стоит.
Вы также можете рассмотреть eCos - это более комплексное решение, предлагающее поддержку USB, сетевых подключений, файловых систем и многого другого, а также планирование и IPC. Существует порт для LPC1766, который может быть относительно легко перенесен. Однако, скорее всего, вам придется использовать инструментальную цепочку GNU для разработки, которая может иметь отношение к использованию вами существующих инструментов, таких как отладчики JTAG.
Я знаю, что у Keil mVision IDE есть ОСРВ для чипов NXP, он работает на 24хх 100%. Но эта ОСРВ не является открытым исходным кодом, и использовать ее могут только владельцы IDE.
ОСРВ Unison предлагает те же вызовы POSIX, что и Linux, включая полный набор вызовов ввода / вывода, которые вы найдете отсутствующими в таких вещах, как freertos. Бизнес-модель является бесплатной для DIY и роялти на основе коммерческих продуктов. Это, как правило, небольшая часть цен конкурентов в $999, начиная с последовательного ввода-вывода и файловой системы. www.rowebots.com для деталей.
Вы можете попробовать получить RTAI, скомпилированный с любым ядром Linux. Может потребоваться некоторая работа, но должна быть выполнимой (и бесплатной)
Я работаю в ОСРВ, если вы хотите, вы можете найти на GitHub
http://www.github.com/geppo12/YasminOS
(путь чувствителен к регистру)
Это простой планировщик, я собираюсь ввести приоритет задачи как можно скорее. Я создаю YasminOS, потому что другие ОС слишком сложны или слишком дороги. На самом деле я разрабатываю YasminOS только с одним видением: простота
Есть много приложений, которые не требуют чрезвычайно мощной ОС, но так же просто планировщика. На самом деле он тестируется на архитектуре Spansion FM3 или NXP lpc800 (да, работает и на Cortex M0), в ближайшее время я протестирую его на NXP 4088....
Linux в форме uClinux прекрасно работает на LPC1788. Посмотрите на это видео, например:
http://www.youtube.com/watch?v=VTemb8P1doI
Как упоминалось в комментариях выше, внутренней SRAM LPC1788 недостаточно для запуска Linux, однако LPC1788 предоставляет интерфейс SDRAM, позволяющий добавить внешнюю RAM.