词汇表¶
- baremetal
没有(成熟的)操作系统的系统,例如基于 MCU的系统。当在裸机系统上运行时,MicroPython 有效地像一个小型操作系统一样运行,运行用户程序并提供命令解释器 ( REPL)。
- buffer protocol
可自动转换成字节,如任何Python对象
bytes
,bytearray
,memoryview
和str
对象,它们都实现了“缓冲协议”。- 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.Pin
和machine.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 语言和独立于机器的功能非常有用。它也可以以类似于 CPython的
python
可执行文件的方式运行。- .mpy 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 端口 和提供文件系统和网络支持的 裸机 端口上 运行。