文章目录[隐藏]
剑桥大学数学科学中心的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
-https://news.ycombinator.com/item?id=7840566
MicroPython视频集锦:
MicroPython:从Kickstarter到太空之旅
原文出处:ITeye
原文链接:http://www.iteye.com/news/30549
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >