Python: MicroPython:针对微控制器的Python
May 29, 2015
剑桥大学数学科学中心的 Damien P. George 在研究各种深奥数学、物理问题之余,还搞了一个 MicroPython 项目,将Python移植到ARM Cortex M微处理器上,并开发了电路板。2013年曾经在 KickStarter 上成功筹得近10万英镑。2014年成功完成项目,发货。
同时,这个项目也在 GitHub 上开源,至今已有1800+星,60位贡献者。
George曾在2014年PyCon UK上 介绍 MicroPython,所用硬件平台叫pyboard,规格是:
- STM32F405RG: 192k RAM, 1M ROM, 168MHz, Cortex M4F.
- USB micro connector for device (and host).
- Micro SD card.
- 3-axis accelerometer (MMA7660).
- Real-time clock, 4 LEDs, 2 switches.
- 30 GPIO: symmetric pin layout, plus extra pins.
- Internal file system. ”/flash” and ”/sd”.
由于存储太小,CPython都太大,只能自行开发Python实现,采取了很多优化措施:
- Interned strings, most already in ROM.
- Small integers stuffed in a pointer.
- Optimised method calls (thanks PyPy!).
- Range object is optimised (if possible).
- Python stack frames live on the C stack.
- ROM absolutely everything that can be ROMed!
- Garbage collection only (no reference counts).
- Exceptions implemented with custom setjmp/longjmp.
优化后,比原生的Python 2和Python 3都快了几个数量级: https://news.ycombinator.com/item?id=7841642
MicroPython的生态系统现在也开始起来了,就在本月前几天,荷兰埃因霍温的一个团队 WiPy 刚刚在KickStarter上成功众筹到75000多英镑,他们的项目是基于MicroPython软件的另一款硬件:超低功耗的物联网WiFi硬件。
SparkFun上也有WiFi模块 ESP8266 。
HN上的两次讨论:
– https://news.ycombinator.com/item?id=9558969
0 Comments