术语表

baremetal

类似基于 MCU 的一个无(完全)操作系统的系统。在baremetal系统上运行时,MicroPython实际上就像一个小型操作系统,运行用户程序并提供命令解释器( REPL )。

缓冲协议

任何可以自动转换为字节的Python对象,例如 bytesbytearraymemoryviewstr 对象,它们都实现了”缓冲区协议”。

通常,这是指包含术语 microcontroller 和支持组件的印刷电路板(PCB)。MicroPython固件通常是按板提供的,因为固件既包含MCU特定的功能,也包含板级功能,如驱动程序或引脚名称。

字节码

Python程序的紧凑表示形式,通过编译Python源代码生成。这是虚拟机实际执行的内容。字节码通常在运行时自动生成,对用户不可见。请注意,虽然 CPython 和 MicroPython 都使用字节码,但其格式不同。你还可以使用 交叉编译器 离线预编译源代码。

callee-owned 元组

这是一个特定于MicroPython的结构,出于效率原因,一些内置函数或方法可能会重用相同的底层元组对象来返回数据。这避免了每次调用都要分配一个新元组,并减少了堆碎片化。程序不应持有被调用者拥有的元组的引用,而应仅从中提取数据(或制作副本)。

CircuitPython

MicroPython的一个变种,由 Adafruit Industries 开发。

CPython

CPython是Python编程语言的参考实现,也是最著名的一个。然而,它只是众多实现中的一种(包括Jython、IronPython、PyPy和MicroPython)。虽然MicroPython的实现与CPython有很大的不同,但它的目标是保持尽可能多的兼容性。

交叉编译器

也称为 mpy-cross。该工具在你的PC上运行,将包含MicroPython代码的 .py 文件 转换为包含MicroPython 字节码.mpy 文件。这意味着它加载更快(开发板不必编译代码),并且在闪存上占用更少的空间(字节码更节省空间)。

驱动器

MicroPython库,实现对特定组件的支持,如传感器或显示器。

FFI

外部函数接口的缩写。术语:term:MicroPython Unix port 用来访问操作系统功能的一种机制。这在 baremetal 移植版本上不可用。

文件系统

大多数MicroPython移植版本和板提供存储在flash中的文件系统,用户代码可以通过标准Python文件api(如 open())使用该文件系统。有些主板还使主机可以通过USB大容量存储器访问这个内部文件系统。

冻结模块

已交叉编译并绑定到固件映像中的Python模块。这减少了内存需求,因为代码直接从闪存执行。

垃圾收集器

在Python(和MicroPython)中运行的后台进程,用于回收 heap 中未使用的内存。

GPIO

通用输入/输出。在微控制器上控制电信号(通常称为”引脚”)的最简单方法。GPIO通常允许引脚作为输入或输出,并设置或获取其数字值(逻辑”0”或”1”)。MicroPython使用:class:class Pin – 控制I/O引脚machine.Signal 类提取访问GPIO权限。

GPIO 端口

一组 GPIO 引脚,通常基于引脚的硬件特性(例如:可通过同一寄存器控制)。

MicroPython存储动态数据的RAM区域。它由 Garbage Collector 自动管理。不同的mcu和主板有不同数量的RAM可用于堆,所以这将影响您的程序的复杂程度。

内存化字符串

MicroPython 使用的一种优化方法,用于提高字符串操作的效率。内存化字符串通过其(唯一的)标识符而非地址进行引用,因此可以仅通过标识符快速比较。这也意味着相同的字符串可以在内存中去重。字符串内存化对用户几乎总是不可见的。

MCU

微控制器。与台式机、笔记本电脑或手机相比,微控制器的资源通常要少得多,但是也更小、价格更低且耗电更少。MicroPython的设计小而优化,并且经过了足够的优化,可在一般的现代微控制器上运行。

micropython-lib

MicroPython(通常)作为一个单独的可执行/二进制文件分配,仅有很少的内置模块。与 CPython 相比,MicroPython无扩展标准库。但有一个相关但独立的项目 micropython-lib,该项目提供许多来自CPython标准库中模块的实现。

其中一些模块是用纯Python实现的,并且能够在所有移植版本上使用。然而,这些模块中的大多数使用:term:FFI 来访问操作系统功能,因此只能在:term:MicroPython Unix port 上使用(对Windows的支持有限)。

CPython 单片标准库不同,micropython-lib模块设计为手动复制或使用 upip 来单独安装。

MicroPython 移植版本

MicroPython支持不同的 boards,RTOS和OS,并且可相对容易地适应新系统。支持特定系统的MicroPython被称为该系统的”移植版本”。不同移植版本的功能特性相差极大。此文档旨在为在不同移植版本(”MicroPython核心”)上可用的通用API提供参考。注意:一些移植版本可能忽略此处所述的API(由于资源限制)。这类区别、以及超出MicroPython核心功能的特定于移植版本的扩展都将在但单独的、特定于移植版本的文件中进行介绍。

MicroPython Unix 移植版本

unix移植版本是主要移植版本之一 MicroPython ports。它旨在运行在posix兼容的操作系统上,如Linux, MacOS, FreeBSD, Solaris等。它也是Windows移植版本的基础。Unix移植版本对于MicroPython语言和与机器无关的特性的快速开发和测试非常有用。它也可以以类似于 CPythonpython 可执行文件的方式运行。

mip

MicroPython的软件包安装程序(mip - “mip安装软件包”)。它安装来自:term:micropython-lib、GitHub或任意url的MicroPython包。Mip可以在具有网络功能的板上的设备上使用,也可以在内部通过诸如 mpremote 之类的工具使用。

有关使用 mip 的更多信息,请参阅 包管理

mpremote

一个与MicroPython设备交互的工具。请参阅:ref:MicroPython远程控制: mpremote

.mpy 文件

交叉编译器 的输出。是 .py 文件 的编译形式,包含MicroPython 字节码 而不是Python源代码。

本机

通常指“本机代码”,即针对目标微控制器(如 ARM Thumb、Xtensa、x86/x64)的机器代码。@native 装饰器可以应用于 MicroPython 函数,以生成本机代码,而不是字节码,这通常会更快但会使用更多的 RAM。

port

通常是 MicroPython port 的缩写,但也可以指 GPIO port

.py 文件

一个包含Python源码的文件。

REPL

“读取、求值、打印、循环”的缩写。这是交互式Python提示符,用于调试或测试简短的代码片段。大多数MicroPython开发板通过UART提供REPL,通常可以通过USB在主机PC上访问。

也称为”file-like object”。 提供对基础数据的顺序读写访问的Python对象。 一个流对象实现了一个相应的接口,该接口由诸如 read(), write(), readinto(), seek(), flush(), close() 之类的方法组成。流是MicroPython中的一个重要概念,许多I/O对象实现了流接口,因此可以在不同的上下文中一致且可互换地使用。 有关MicroPython中流的更多信息,请参见 io 模块。

UART

“通用异步接收器/发射器”的缩写。这是一个通过一对引脚(TX & RX)发送数据的外设。许多电路板包括一种方法,使至少一个uart可用于主机PC作为USB串行端口。

upip

一个现在已经过时的MicroPython包管理器,灵感来自于 CPython 的pip,但是更小,功能更少。参见它的替代品 mip

webrepl

一种从浏览器通过internet连接到设备上的REPL(和传输文件)的方法。参见https://micropython.org/webrepl