社区导航

 
查看: 421|回复: 1

[活动] 【树莓派3B+测评】micropython与python

[复制链接]

22

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-9-16 20:54:02 | 显示全部楼层 |阅读模式
本帖最后由 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.安装必要的软件包
  1. sudo apt-get install  build-essential
  2. sudo apt-get install  libffi-dev
  3. sudo apt-get install  pkg-config
复制代码

    2.下载micropython源码
    -----------------------------------------------------------------------
    git clone https://github.com/micropython/micropython.git
    -----------------------------------------------------------------------
    3.编译过程
  1. git submodule update --init
  2. cd ports/unix
  3. make axtls
  4. make
复制代码

    如果第1步中的三个软件包有缺失,在执行make axtls时会报错
    编译输出为  /ports/unix/micropython
    micropython就是一个独立的简化版的python,可以尝试运行一下,以及做简单的测试:
  1. ./micropython
  2. list(5 * x + y for x in range(10) for y in [4, 2, 1])
复制代码

1.png

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

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




此帖出自单片机论坛


回复

使用道具 举报

1466

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-9-17 21:54:45 来自手机 | 显示全部楼层
树莓派就是个完整的linux,各种软件 apt 回来用没问题的。弄micropy属于脱裤子放屁,费事。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-19 17:08 , Processed in 0.090132 second(s), 23 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表