将Python移植到嵌入式系统

时间:2012-03-01 15:52:05

标签: python embedded

我正在使用ARM Cortex M3,我需要在其上移植Python(没有操作系统)。什么是我最好的方法?我只需要核心Python和基本I / O.

6 个答案:

答案 0 :(得分:23)

Golly,这是一个很高的订单。 Python依赖的内核有很多服务,而且你必须自己提供。我认为你在寻找轻量级操作系统方面要好得多 - 也许Minix 3? - 戴上嵌入式处理器。

如果做不到这一点,我会极其想到手工翻译成C并构建基本要素。

答案 1 :(得分:14)

你一定要看eLua:

http://www.eluaproject.net

“嵌入式电源,由Lua驱动 利用Lua的强大功能快速构建和开发嵌入式软件应用程序,并在各种微控制器架构上运行它们“

答案 2 :(得分:11)

有一些项目尝试将Python移植到您提到的情况,请查看python-on-a-chipPyMite或tinypy。它们针对的是没有操作系统的低功耗微控制器,并且倾向于关注较旧版本的Python语言并减少库支持。

答案 3 :(得分:5)

一种可能的方法是在软件中构建自己的stack machine以直接解释和执行Python byte code。当然不是一个移植工作,而且实现起来相当费力,但是为嵌入式系统构建的独立Python字节码堆栈处理器可以让您需要一个操作系统。

另一种方法是编写自己的低级执行程序(比通用操作系统低一级),其中包含核心Python解释器端口所需的最低服务。我不确定这是否比构建堆栈处理器更多或更少劳动力。

我不推荐这些方法中的任何一种 - 就个人而言,我最喜欢Charlie Martin的Minix 3方法,因为它是一种平衡的要求妥协。另一方面,如果您的项目绝对需要没有操作系统的Python ,如果项目有很好的时间和金钱预算,我建议可能会感兴趣。

2012年3月5日更新:鉴于严格遵守您的Python /无操作系统要求,解决方案路径的另一种可能性可能在于使用无操作系统的Java VM(例如,{{ 3}},目前处于测试阶段)并使用jnode从Python创建Java字节代码。当然不是一个理想的现成解决方案,它似乎确实满足了无操作系统的Python要求。

答案 4 :(得分:4)

将其编译为c:)

http://shed-skin.blogspot.com/

答案 5 :(得分:1)

fyi我刚刚将CPython 2.7x移植到非POSIX OS。那很简单。 您需要以正确的方式编写pyconfig.h,删除大多数未使用的模块。禁用未使用的功能 然后修复编译,链接错误。然后它在修复运行中的一些简单问题后才起作用。 如果你没有一些POSIX标题,请自己写一个。实现所需的所有POSIX功能,例如文件i / o。 我的案子花了2-3周。虽然我有很多自定义的Python核心。不幸的是无法开源:(。

之后我认为Python可以轻松移植到任何具有足够RAM的平台上。