按照测试计划,要将micropython移植到树莓派上来控制硬件。我这两天下载micropython的源码,并翻看了一些micropython的资料。发现相比于micropython,直接用python在树莓派上控制硬件更方便一点。
之前我简单理解为可以控制硬件的python为micropython,通过这两天的阅读,了解到micropython只是实现了一部分python3的功能,使得其能运行在主频和存储条件比较苛刻的microcontrollers上。根据官网的介绍,它可以运行在有256k代码空间和16k RAM的MCU上。很显然树莓派和这些运行micropython的MCU系统(目前官方支持的有STM32系列,PIC16, CC3200, ESP8266, ESP32等等)在性能上不是同一级别的系统。所以用python在树莓派上做开发更能充分利用树莓派的计算能力。
另外我在micropython的源码中没有发现与linux相结合并应用到具体MCU开发板上的例子。这应该是由于上述MCU的FLASH和RAM的限制,以及linux的非实时性。我在/ports/cc3200/发现了FreeRTOS的文件夹,这个应该是micropython与RTOS相结合的一个示例。
不过/ports目录下有个unix文件夹,我查看了官方的说明,是一个跑在unix系统上的micropython,这个我估计是为了验证micropython的核心代码用的。我按照说明在树莓派上编译了一下,还真编译通过了。
以下是简单的说明:
1.安装必要的软件包
- sudo apt-get install build-essential
- sudo apt-get install libffi-dev
- sudo apt-get install pkg-config
复制代码
2.下载micropython源码
- git clone https://github.com/micropython/micropython.git
复制代码
3.编译过程
- git submodule update --init
- cd ports/unix
- make axtls
- make
复制代码
如果第1步中的三个软件包有缺失,在执行make axtls时会报错
编译输出为 /ports/unix/micropython
micropython就是一个独立的简化版的python,可以尝试运行一下,以及做简单的测试:
- ./micropython
- list(5 * x + y for x in range(10) for y in [4, 2, 1])
复制代码
跟硬件控制相关的模块,这个里面是不包含的,如下
另一方面,python也有很多第三方的库,像控制GPIO,I2C的等等。
所以后续的测评,将用python继续进行。
本文来自论坛,点击查看完整帖子内容。