icefire2012 发表于 2018-9-16 20:54

【树莓派3B+测评】micropython与python

本帖最后由 icefire2012 于 2018-9-16 20:53 编辑

    按照测试计划,要将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 installbuild-essential
sudo apt-get installlibffi-dev
sudo apt-get installpkg-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 )

    跟硬件控制相关的模块,这个里面是不包含的,例如

    另一方面,python也有很多第三方的库,像控制GPIO,I2C的等等。
    所以后续的测评,将用python继续进行。




freebsder 发表于 2018-9-17 21:54

树莓派就是个完整的linux,各种软件 apt 回来用没问题的。弄micropy属于脱裤子放屁,费事。
页: [1]
查看完整版本: 【树莓派3B+测评】micropython与python