词汇表

baremetal

没有(成熟的)操作系统的系统,例如基于 MCU的系统。当在裸机系统上运行时,MicroPython 有效地像一个小型操作系统一样运行,运行用户程序并提供命令解释器 ( REPL)。

buffer protocol

可自动转换成字节,如任何Python对象 bytes, bytearray, memoryviewstr 对象,它们都实现了“缓冲协议”。

board

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

bytecode

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

callee-owned tuple

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

CircuitPython

Adafruit Industries开发的 MicroPython 变体。

CPython

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

交叉编译器

也称为 mpy-cross。此工具在您的 PC 上运行,并将包含 MicroPython 代码的 .py file转换为 包含 MicroPython 字节码的 .mpy file 。这意味着它加载速度更快(电路板不必编译代码),并且在闪存上使用更少的空间(字节码的空间效率更高)。

driver

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

FFI

外部函数接口的缩写。使用由A机构 MicroPython Unix的端口 访问的操作系统功能。这在裸机 端口上不可用。

文件系统

大多数 MicroPython 端口和开发板提供了一个存储在闪存中的文件系统,用户代码可以通过标准的 Python 文件 API(例如open(). 一些板子还使主机可以通过 USB 大容量存储访问这个内部文件系统。

冻结模块

已交叉编译并捆绑到固件映像中的 Python 模块。由于直接从闪存执行代码,因此这减少了 RAM 要求

垃圾收集器

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

通用输入输出接口

通用输入/输出。控制微控制器上的电信号(通常称为“引脚”)的最简单方法。GPIO 通常允许引脚输入或输出,并设置或获取它们的数字值(逻辑“0”或“1”)。MicroPython 使用 machine.Pinmachine.Signal 类抽象 GPIO 访问。

GPIO 端口

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

MicroPython 存储动态数据的 RAM 区域。它由垃圾收集器自动管理。不同的 MCU 和电路板具有非常不同的可用于堆的 RAM 量,因此这将影响您的程序的复杂程度。

字符串

MicroPython 用于提高处理字符串效率的优化。内部字符串由其(唯一)标识而非地址引用,因此可以仅通过其标识符进行快速比较。这也意味着可以在内存中删除相同的字符串。字符串实习几乎总是对用户不可见。

单片机

微控制器。微控制器的资源通常比台式机、笔记本电脑或手机少得多,但更小、更便宜并且需要的功率要少得多。MicroPython 被设计得足够小并且经过优化,可以在普通的现代微控制器上运行。

micropython-lib

MicroPython(通常)作为单个可执行文件/二进制文件分发,只有几个内置模块。没有可与CPython相媲美的广泛标准库。相反,有一个相关但独立的项目micropython-lib ,它为 CPython 标准库中的许多模块提供实现。

一些模块是用纯 Python 实现的,可以在所有端口上使用。但是,这些模块中的大多数使用 FFI来访问操作系统功能,因此只能在MicroPython Unix 端口上使用(对 Windows 的支持有限)。

CPython stdlib不同,micropython-lib 模块旨在单独安装 - 使用手动复制或使用 upip

MicroPython 端口

MicroPython 支持不同的板卡、RTOS 和 OS,并且可以相对容易地适应新系统。支持特定系统的 MicroPython 被称为该系统的“端口”。不同的端口可能具有截然不同的功能。本文档旨在作为跨不同端口(“MicroPython 核心”)可用的通用 API 的参考。请注意,某些端口可能仍会省略此处描述的某些 API(例如,由于资源限制)。任何此类差异以及 MicroPython 核心功能之外的特定于端口的扩展,将在单独的特定于端口的文档中进行描述。

MicroPython Unix 端口

unix 端口是主要的MicroPython 端口之一。它旨在运行在 POSIX 兼容的操作系统上,如 Linux、MacOS、FreeBSD、Solaris 等。它也作为 Windows 端口的基础。Unix 端口对于快速开发和测试 MicroPython 语言和独立于机器的功能非常有用。它也可以以类似于 CPythonpython 可执行文件的方式运行。

.mpy file

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

native

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

port

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

.py file

包含 Python 源代码的文件。

REPL

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

stream

也称为“类文件对象”。一个 Python 对象,它提供对底层数据的顺序读写访问。甲流对象实现一个对应的接口,它由方法喜欢 read(), write(), readinto(), seek(), flush(), close()等等流是在MicroPython一个重要的概念; 许多 I/O 对象实现了流接口,因此可以在不同的上下文中一致和互换使用。有关 MicroPython 中流的更多信息,请参阅uio 模块。

UART

“通用异步接收器/发送器”的缩写。这是一个通过一对引脚(TX 和 RX)发送数据的外设。许多电路板都包含一种方法,可将至少一个 UART 作为 USB 串行端口提供给主机 PC。

upip

(字面意思是“微点”)。MicroPython 的包管理器,受 CPython的 pip启发,但更小且功能更少。upip 在Unix 端口 和提供文件系统和网络支持的 裸机 端口上 运行。