Thuật ngữ

baremetal

Một hệ thống không có hệ điều hành (đầy đủ), ví dụ như hệ thống dựa trên MCU. Khi chạy trên hệ thống baremetal, MicroPython hoạt động hiệu quả như một hệ điều hành nhỏ, chạy các chương trình người dùng và cung cấp trình thông dịch lệnh (REPL).

buffer protocol

Bất kỳ đối tượng Python nào có thể được tự động chuyển đổi thành byte, chẳng hạn như các đối tượng bytes, bytearray, memoryviewstr, tất cả đều triển khai "buffer protocol".

board

Thông thường, điều này đề cập đến một bảng mạch in (PCB) chứa vi điều khiển và các linh kiện hỗ trợ. Firmware MicroPython thường được cung cấp theo từng bo mạch, vì firmware chứa cả chức năng dành riêng cho MCU lẫn chức năng ở cấp độ bo mạch như trình điều khiển hoặc tên chân (pin).

bytecode

Một biểu diễn nhỏ gọn của chương trình Python được tạo ra bằng cách biên dịch mã nguồn Python. Đây là thứ mà VM thực sự thực thi. Bytecode thường được tạo tự động tại thời điểm chạy và vô hình với người dùng. Lưu ý rằng mặc dù CPython và MicroPython đều sử dụng bytecode, nhưng định dạng là khác nhau. Bạn cũng có thể biên dịch trước mã nguồn ngoại tuyến bằng cách sử dụng cross-compiler.

callee-owned tuple

Đây là cấu trúc đặc thù của MicroPython, trong đó để đạt hiệu quả, một số hàm hoặc phương thức tích hợp có thể tái sử dụng cùng một đối tượng tuple cơ bản để trả về dữ liệu. Điều này tránh phải cấp phát một tuple mới cho mỗi lần gọi và giảm phân mảnh heap. Các chương trình không nên giữ tham chiếu đến callee-owned tuple mà chỉ nên trích xuất dữ liệu từ chúng (hoặc tạo bản sao).

CircuitPython

Một biến thể của MicroPython được phát triển bởi Adafruit Industries.

CPython

CPython là cài đặt tham chiếu của ngôn ngữ lập trình Python, và là cài đặt nổi tiếng nhất. Tuy nhiên, đây chỉ là một trong nhiều cài đặt (bao gồm Jython, IronPython, PyPy và MicroPython). Mặc dù cài đặt của MicroPython khác biệt đáng kể so với CPython, nhưng nó hướng đến việc duy trì khả năng tương thích tối đa có thể.

cross-compiler

Còn được gọi là mpy-cross. Công cụ này chạy trên PC của bạn và chuyển đổi .py file chứa mã MicroPython thành .mpy file chứa bytecode MicroPython. Điều này có nghĩa là nó tải nhanh hơn (bo mạch không cần biên dịch mã), và sử dụng ít không gian hơn trên flash (bytecode tiết kiệm không gian hơn).

driver

Một thư viện MicroPython triển khai hỗ trợ cho một linh kiện cụ thể, chẳng hạn như cảm biến hoặc màn hình.

FFI

Viết tắt của Foreign Function Interface. Một cơ chế được sử dụng bởi MicroPython Unix port để truy cập chức năng hệ điều hành. Điều này không khả dụng trên các port baremetal.

filesystem

Hầu hết các port và bo mạch MicroPython cung cấp hệ thống tệp được lưu trữ trong flash có thể truy cập bởi mã người dùng thông qua các API tệp Python chuẩn như open(). Một số bo mạch cũng làm cho hệ thống tệp nội bộ này có thể truy cập đối với máy chủ qua lưu trữ khối USB.

frozen module

Một mô-đun Python đã được biên dịch chéo và đóng gói vào ảnh firmware. Điều này giảm yêu cầu RAM vì mã được thực thi trực tiếp từ flash.

Garbage Collector

Một tiến trình nền chạy trong Python (và MicroPython) để thu hồi bộ nhớ không sử dụng trong heap.

GPIO

General-purpose input/output (đầu vào/đầu ra mục đích chung). Phương tiện đơn giản nhất để điều khiển các tín hiệu điện (thường được gọi là "chân (pin)") trên vi điều khiển. GPIO thường cho phép các chân (pin) là đầu vào hoặc đầu ra, và đặt hoặc lấy giá trị kỹ thuật số của chúng ("0" hoặc "1" logic). MicroPython trừu tượng hóa quyền truy cập GPIO bằng cách sử dụng các lớp machine.Pinmachine.Signal.

GPIO port

Một nhóm các chân (pin) GPIO, thường dựa trên đặc tính phần cứng của các chân (pin) này (ví dụ: có thể điều khiển bởi cùng một thanh ghi).

heap

Một vùng RAM nơi MicroPython lưu trữ dữ liệu động. Nó được quản lý tự động bởi Garbage Collector. Các MCU và bo mạch khác nhau có lượng RAM khác nhau rất lớn cho heap, vì vậy điều này sẽ ảnh hưởng đến mức độ phức tạp của chương trình bạn có thể viết.

interned string

Một tối ưu hóa được MicroPython sử dụng để cải thiện hiệu quả làm việc với chuỗi. Một interned string được tham chiếu bởi danh tính (duy nhất) của nó thay vì địa chỉ của nó và do đó có thể được so sánh nhanh chóng chỉ bằng mã định danh của nó. Nó cũng có nghĩa là các chuỗi giống nhau có thể được loại bỏ trùng lặp trong bộ nhớ. Interning chuỗi hầu như luôn không hiển thị với người dùng.

MCU

Vi điều khiển. Vi điều khiển thường có ít tài nguyên hơn nhiều so với máy tính để bàn, máy tính xách tay hoặc điện thoại, nhưng nhỏ hơn, rẻ hơn và tiêu thụ ít điện hơn. MicroPython được thiết kế để đủ nhỏ và được tối ưu hóa để chạy trên vi điều khiển hiện đại trung bình.

micropython-lib

MicroPython (thường) được phân phối dưới dạng một tệp thực thi/nhị phân duy nhất với chỉ một vài mô-đun tích hợp. Không có thư viện chuẩn rộng lớn có thể so sánh với thư viện của CPython. Thay vào đó, có một dự án liên quan nhưng riêng biệt micropython-lib cung cấp các triển khai cho nhiều mô-đun từ thư viện chuẩn của CPython.

Một số mô-đun được triển khai bằng Python thuần túy và chạy trên bất kỳ port nào; firmware OpenMV đóng băng một tập hợp các mô-đun này (trình điều khiển cảm biến, mạng và các tiện ích hỗ trợ) trực tiếp vào ảnh firmware để chúng có thể được nhập mà không cần cài đặt bất cứ thứ gì. Một số lượng nhỏ hơn các mô-đun micropython-lib sử dụng FFI và chỉ hoạt động trên MicroPython Unix port; những mô-đun đó không có sẵn trên OpenMV Cams.

Không giống như stdlib của CPython, các mô-đun micropython-lib không được đóng băng sẽ được cài đặt riêng lẻ - bằng cách sao chép chúng vào hệ thống tệp hoặc, trên các bo mạch có khả năng kết nối mạng, sử dụng mip.

MicroPython port

MicroPython hỗ trợ các bo mạch, RTOS và hệ điều hành khác nhau, và có thể được điều chỉnh tương đối dễ dàng cho các hệ thống mới. MicroPython với hỗ trợ cho một hệ thống cụ thể được gọi là "port" cho hệ thống đó. Các port khác nhau có thể có chức năng rất khác nhau. Tài liệu này nhằm mục đích là tài liệu tham khảo về các API chung có sẵn trên các port khác nhau ("MicroPython core"). Lưu ý rằng một số port vẫn có thể bỏ qua một số API được mô tả ở đây (ví dụ: do hạn chế tài nguyên). Bất kỳ sự khác biệt nào như vậy, và các tiện ích mở rộng dành riêng cho port ngoài chức năng MicroPython core, sẽ được mô tả trong tài liệu dành riêng cho port riêng biệt.

MicroPython Unix port

Port unix là một trong những MicroPython port chính. Nó được thiết kế để chạy trên các hệ điều hành tương thích POSIX, như Linux, MacOS, FreeBSD, Solaris, v.v. Nó cũng là cơ sở cho port Windows. Port Unix rất hữu ích để phát triển và kiểm thử nhanh ngôn ngữ MicroPython và các tính năng độc lập với máy móc. Nó cũng có thể hoạt động theo cách tương tự như tệp thực thi python của CPython.

mip

Trình cài đặt gói cho MicroPython (mip - "mip installs packages"). Nó cài đặt các gói MicroPython từ micropython-lib, GitHub hoặc các URL tùy ý. mip có thể được sử dụng trên thiết bị trên các bo mạch có khả năng kết nối mạng, và nội bộ bởi các công cụ như mpremote.

Xem Quản lý gói để biết thêm thông tin về cách sử dụng mip.

mpremote

Một công cụ để tương tác với thiết bị MicroPython. Xem Điều khiển từ xa MicroPython: mpremote.

.mpy file

Đầu ra của cross-compiler. Một dạng đã biên dịch của .py file chứa bytecode MicroPython thay vì mã nguồn Python.

native

Thường đề cập đến "native code", tức là mã máy cho vi điều khiển đích (ARM Thumb trên các OpenMV Cam dựa trên Cortex-M). Decorator @micropython.native có thể được áp dụng cho một hàm MicroPython để tạo native code thay vì bytecode cho hàm đó, điều này có thể nhanh hơn nhưng sử dụng nhiều RAM hơn.

port

Thường là viết tắt của MicroPython port, nhưng cũng có thể đề cập đến GPIO port.

.py file

Một tệp chứa mã nguồn Python.

pyboard.py

Một công cụ phía máy chủ đã lỗi thời để tương tác với bo mạch MicroPython — chạy các tập lệnh và truy cập hệ thống tệp qua REPL thô. Xem phiên bản thay thế của nó, mpremote.

REPL

Viết tắt của "Read, Eval, Print, Loop" (Đọc, Đánh giá, In, Lặp lại). Đây là dấu nhắc Python tương tác, hữu ích để gỡ lỗi hoặc kiểm tra các đoạn mã ngắn. OpenMV Cams cung cấp REPL cho máy tính chủ qua USB (thiết bị nối tiếp USB CDC).

small integer

MicroPython tối ưu hóa biểu diễn nội bộ của các số nguyên sao cho các giá trị "nhỏ" không chiếm không gian trên heap, và các phép tính với chúng không yêu cầu cấp phát heap. Trên hầu hết các port 32-bit, điều này tương ứng với các giá trị trong khoảng -2**30 <= x < 2**30, nhưng điều này nên được coi là chi tiết triển khai và không nên được dựa vào.

stream

Còn được gọi là "đối tượng giống tệp". Một đối tượng Python cung cấp quyền truy cập đọc-ghi tuần tự vào dữ liệu cơ bản. Đối tượng stream triển khai giao diện tương ứng, bao gồm các phương thức như read(), write(), readinto(), seek(), flush(), close(), v.v. Stream là một khái niệm quan trọng trong MicroPython; nhiều đối tượng I/O triển khai giao diện stream, và do đó có thể được sử dụng nhất quán và thay thế cho nhau trong các ngữ cảnh khác nhau. Để biết thêm thông tin về stream trong MicroPython, xem mô-đun io.

UART

Viết tắt của "Universal Asynchronous Receiver/Transmitter". Đây là một ngoại vi gửi dữ liệu qua một cặp chân (pin) (TX & RX). Nhiều bo mạch bao gồm cách để ít nhất một trong các UART có sẵn cho máy tính chủ như cổng nối tiếp qua USB.

upip

Trình quản lý gói đã lỗi thời cho MicroPython, lấy cảm hứng từ pip của CPython, nhưng nhỏ hơn nhiều và có chức năng giảm bớt. Xem phiên bản thay thế của nó, mip.

webrepl

Một cách kết nối với REPL (và truyền tệp) trên thiết bị qua internet từ trình duyệt. Xem https://micropython.org/webrepl