Существуют ли какие-либо библиотеки интерпретируемых языков FreeRTOS? - PullRequest
10 голосов
/ 06 апреля 2010

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

Я искал какой-то интерпретируемый языковой проект для FreeRTOS, который позволил бы нам реализовать новые функции на более высоком уровне. В идеале мне бы хотелось, чтобы в конечном итоге все получилось, чтобы устройства стали ближе к обычным компьютерам, когда мы пишем драйверы, а не нам приходится самим реализовывать каждую функцию.

Существуют ли проекты FreeRTOS, которые интерпретируют Java, Python или аналогичный байт-код?

Я смотрел в Google, но так как сам не являюсь инженером по прошивке, я не уверен, что ищу правильные ключевые слова.

Спасибо всем

Ответы [ 4 ]

6 голосов
/ 07 апреля 2010

Я не думаю, что ОСРВ или даже ОС здесь имеют большое значение, если код переносимый. В зависимости от вашей схемы ввода и вывода, вам, вероятно, потребуется немного портировать.

Что касается встраиваемых языков сценариев, с которыми я знаком 2: LUA и PAWN .

Я думаю, что есть версии Python и других подобных языков, портированных на встроенные системы, но они, как правило, являются разновидностью встроенного Linux. В зависимости от вашей платформы (не знаю, если это маленький MCU с 8K ROM или встроенным ПК), это может быть вариант.

2 голосов
/ 21 июня 2010

Не существует интерпретируемых языков, которые «созданы» для использования FreeRTOS или любой другой библиотеки потоков микроконтроллеров (в сообществе e2e она называется «RTOS»).

Тем не менее, языки, которые я из первых рук использую во встроенных системах, которые (а) написаны на C и (b) достаточно малы для встраивания в микроконтроллер, включают:

  • LUA (подходит практически для всего, даже для некоторых фото)
  • Python (в любом случае, подходит для большинства архитектур ARM с объемом памяти более 1 МБ)

У меня нет опыта из первых рук, но Ruby может быть так же легко внедрен, как Python.

1 голос
/ 03 апреля 2012

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

Кажется, кто-то пытается выбрать Lua на FreeRTOS (pic32).

0 голосов
/ 09 апреля 2010

Я полагаю, что ваш вопрос в конечном итоге сводится к поиску путей повышения уровня абстракции над механизмами RTOS низкого уровня. Хотя, возможно, верно, что интерпретируемые языки работают на несколько более высоком уровне абстракции, чем C, вы можете добиться гораздо большего, чем при применении методов, основанных на управляемых событиями инфраструктурах и конечных автоматах. Такие управляемые событиями структуры существовали в течение десятилетий и были доказаны в бесчисленных встроенных системах во всех видах областей. Сегодня практически каждый инструмент моделирования для встроенных систем, способных генерировать код (например, Rational-Rose RT, Rhapsody и т. Д.) Содержит вариант такой структуры конечного автомата.

Но управляемые событиями структуры конечных автоматов можно использовать и без больших инструментов. Например, платформы конечного автомата QP (state-machine.com) делают все, что может сделать обычная ОСРВ, только более эффективно, а также многое из того, что ОСРВ не может.

Когда вы начнете использовать современную парадигму программирования на основе событий с конечными автоматами, ваши проблемы изменятся. Вам больше не придется бороться с 15 уровнями запутанных операторов if-else, и вы перестанете беспокоиться о семафорах или других подобных низкоуровневых механизмах RTOS. Вместо этого вы начнете думать на более высоком уровне абстракции о конечных автоматах и ​​событиях, которыми они обмениваются. После того, как вы испытаете этот квантовый скачок, вы никогда не захотите возвращаться к сырой RTOS и коду спагетти.

Миро Самек, state-machine.com

...