RT-Thread MicroPython 基础知识

运行 python 文件

在 MicroPython 上运行 Python文件有以下要求:

  • 系统内使用了 rt-thread 的文件系统。
  • 开启 msh 功能。
    符合以上两点,就可以使用 msh 命令行中的 python 命令加上 *.py 文件名来执行一个 Python文件了。

术语表

board

开发板,通常这个术语用来表示以一个特定的 MCU 为核心的开发板 。它也可以被用来表示移植 MicroPython 到一个特定的开发板上,也可以表示像 Unix 移植这样没有开发板的移植。

CPython

CPython 是 Python 编程语言的一种实现,是最被人们所熟知和使用的一种。然而它只是许多种实现中的一种(其中包括 Jython、IronPython、PyPy、 MicroPython 等)。由于没有正式的 Python 语言规范,只有 CPython 文档,在 Python 语言本身和 Cpython 这种实现之间画出一条界限并不容易。这同时也给其他方式的实现留下了更多的自由。比如 MicroPython 做了许多和 Cpython 不一样的事情,同时仍然成为 Python 语言的一种实现。

GPIO

通用输入/输出。控制电子信号最简单的方法。通过 GPIO 用户可以配置硬件信号引脚为输入或者输出,并设置或者获取其数字信号值(逻辑 '0' 或 '1')。 MicroPython 使用抽象类 machine.Pin 来访问 GPIO

interned string

由其唯一的标识而不是其地址引用的字符串。因此,可以用他们的标识符而不是通过内容快速地比较内部字符串。interned 字符串的缺点是插入操作需要时间(与现有 interned 字符串的数量成正比,也就是说会随着时间的推移耗时越来越久),而用于插入 interned 字符串的空间是不可回收的。当某个 interned 字符串被应用需求(作为关键字参数)或者对系统有益(可以减少查找的时间)时,就会被 MicroPython 的编译器和运行环境自动生成。由于上面的缺点,大多数字符串和输入/输出操作都不会产生 interned 字符串。

MCU

微控制器,也称单片机,通常资源比成熟的计算机系统要少的多,但是体积更小,也更便宜,功耗更低。MicroPython 被设计的足够小,并且优化到可以运行在一个普通的现代微控制器上。

micropython-lib

MicroPython 通常是单个的可执行/二进制文件,只有很少的内置模块。没有广泛的标准库可以用来和 Cpython 相比。与 Cpython 不同的是 MicroPython 有一个相关但是独立的项目 micropython-lib,它提供了来自 CPython 标准库的许多模块的实现。然而这些模块大部分需要类似于 POSIX 的环境,只能在 MicroPython 的 Unix 移植上工作。安装方法与 Cpython 也不同,需要使用手动复制或者使用 upip 来安装。由于 RT-Thread 操作系统提供了很好的 POSIX 标准支持,所以 micropython-lib 中很多模块可以在 RT-Thread MicroPython 上运行。

stream

也被称为文件类对象,一种对底层数据提供顺序读写访问的对象。stream 对象实现了对应的接口,包括read(), write(), readinto(), seek(), flush(), close() 等方法。在 MicroPython 中,流是一个重要的概念,许多输入/输出对象都实现了流接口,因此可以在不同的上下文中一致地使用。更多关于 MicroPython 流的信息,可以参考 uio

upip

字面意思是微型的 pip 工具。由 CPython 启发而开发的 MicroPython 包管理程序,但它要小的多,功能也更少。upip 可以在 MicroPython 的 Unix 移植上运行。由于 RT-Thread 操作系统提供了很好的 POSIX 标准支持,所以 upip 也可以运行在 RT-Thread MicroPython 上。使用 upip 工具可以在线下载 MicroPython 的扩展模块,并且自动下载其依赖的模块,为用户扩展 MicroPython 功能提供了很大的便利。

评论

原文: https://www.rt-thread.org/document/site/submodules/micropython/docs/02-Basic_Knowledge/