Подтвердить что ты не робот

Портирование Python во встроенную систему

Я работаю с ARM Cortex M3, на котором мне нужно порт Python (без операционной системы). Какой был бы мой лучший подход? Мне просто нужен основной Python и базовый ввод-вывод.

4b9b3361

Ответ 1

Есть несколько проектов, которые пытались перенести Python в ситуацию, о которой вы упоминаете, посмотрите python-on-a-chip, PyMite или tinypy. Они нацелены на микроконтроллеры с более низким энергопотреблением без ОС и, как правило, ориентированы на несколько более старые версии языка Python и уменьшают поддержку библиотеки.

Ответ 2

Голли, такой высокий порядок. Есть так много сервисов ядра, от которого зависит Python, и что вам придется предоставить себя. Я думаю, вам будет намного лучше искать легкую ОС - возможно Minix 3? - надеть встроенный процессор.

В противном случае я бы ужасно искушался подумать о том, чтобы переводить на английский язык на C и создавать основы для этого.

Ответ 3

Вы должны обязательно посмотреть на eLua:

http://www.eluaproject.net

"Встроенная мощность, управляемая Lua Быстро прототипируйте и разрабатывайте встроенные программные приложения с мощью Lua и запускайте их на широком спектре микроконтроллерных архитектур "

Ответ 4

Одним из возможных подходов является создание собственной стековой машины в программном обеспечении для интерпретации и выполнения Python байтовый код. Конечно, это не переносимая работа и достаточно трудоемкая реализация, но автономный процессор стека кода байтов Python, встроенный для вашей встроенной системы, заставит вас обойтись вокруг операционной системы.

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

Я не рекомендую ни один из этих подходов - лично мне нравится подход Charlie Martin Minix 3 наилучшим образом, так как это сбалансированный компромисс требований. С другой стороны, то, что я предлагаю, может быть интересно, если ваш проект абсолютно требует Python без операционной системы и, если проект имеет отличный бюджет времени и денег.

Обновление 5 марта 2012 г.. Учитывая строгую приверженность вашим требованиям к Python/No OS, другая возможность пути к решению может заключаться в использовании виртуальной виртуальной машины без OS (например, jnode, в настоящее время в бета-версии) и используйте Jython для создать байт-код Java из Python. Разумеется, это не идеальное готовое решение, и, похоже, оно удовлетворяет требованиям Python, не требующему OS.

Ответ 6

fyi Я просто портировал CPython 2.7x на ОС, отличную от POSIX. Это было легко. Вам нужно написать pyconfig.h правильно, удалить большинство неиспользуемых модулей. Отключить неиспользуемые функции. Затем исправить компиляцию, ошибки ссылок. Затем он работает только после устранения некоторых простых проблем при запуске. Если у вас нет какого-либо заголовка POSIX, напишите его самостоятельно. Реализуйте все функции POSIX, которые необходимы, например, файл ввода/вывода. Взял 2-3 недели в моем случае. Хотя у меня сильно настроенное ядро ​​Python. К сожалению, не удается открыть его: (.

После этого я думаю, что Python можно легко портировать на любую платформу, у которой достаточно оперативной памяти.