术语表¶
- baremetal¶
类似基于 MCU 的一个无(完全)操作系统的系统。在baremetal系统上运行时,MicroPython实际上就像一个小型操作系统,运行用户程序并提供命令解释器( REPL )。
- 缓冲协议¶
任何可以自动转换为字节的Python对象,例如
bytes
,bytearray
,memoryview
和str
对象,它们都实现了”缓冲区协议”。- 板¶
通常,这是指包含术语 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的支持有限)。- MicroPython 移植版本¶
MicroPython支持不同的 boards,RTOS和OS,并且可相对容易地适应新系统。支持特定系统的MicroPython被称为该系统的”移植版本”。不同移植版本的功能特性相差极大。此文档旨在为在不同移植版本(”MicroPython核心”)上可用的通用API提供参考。注意:一些移植版本可能忽略此处所述的API(由于资源限制)。这类区别、以及超出MicroPython核心功能的特定于移植版本的扩展都将在但单独的、特定于移植版本的文件中进行介绍。
- MicroPython Unix 移植版本¶
unix移植版本是主要移植版本之一 MicroPython ports。它旨在运行在posix兼容的操作系统上,如Linux, MacOS, FreeBSD, Solaris等。它也是Windows移植版本的基础。Unix移植版本对于MicroPython语言和与机器无关的特性的快速开发和测试非常有用。它也可以以类似于 CPython 的
python
可执行文件的方式运行。- mip¶
MicroPython的软件包安装程序(mip - “mip安装软件包”)。它安装来自:term:
micropython-lib
、GitHub或任意url的MicroPython包。Mip可以在具有网络功能的板上的设备上使用,也可以在内部通过诸如 mpremote 之类的工具使用。有关使用
mip
的更多信息,请参阅 包管理。- mpremote¶
一个与MicroPython设备交互的工具。请参阅:ref:MicroPython远程控制: mpremote。
- .mpy 文件¶
- 本机¶
通常指“本机代码”,即针对目标微控制器(如 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