mimxrt --- chức năng dành riêng cho NXP i.MXRT¶
Module mimxrt chứa các hàm và lớp dành riêng cho dòng vi điều khiển NXP i.MXRT.
Lớp¶
- class mimxrt.Flash¶
Lấy đối tượng singleton tiết lộ vùng lưu trữ người dùng của bộ nhớ QSPI flash trên bo mạch dưới dạng thiết bị block tương thích với
vfs.AbstractBlockDev. Số block tương đối với điểm bắt đầu của vùng đó, không phải điểm bắt đầu vật lý của flash.Trong hầu hết các trường hợp, để lưu trữ dữ liệu bền vững trên thiết bị, bạn sẽ muốn sử dụng một trừu tượng cấp cao hơn -- ví dụ: hệ thống tệp qua API tệp tiêu chuẩn của Python. Giao diện này hữu ích để tùy chỉnh cấu hình hệ thống tệp hoặc triển khai hệ thống lưu trữ cấp thấp cho ứng dụng của bạn.
Đối tượng cũng triển khai giao thức bộ đệm, cho phép truy cập bộ nhớ ánh xạ chỉ đọc vào toàn bộ vùng lưu trữ flash qua cơ sở QSPI XIP. Điều này làm cho một view không sao chép của vùng khả dụng mà không cần phát lệnh đọc flash:
flash = mimxrt.Flash() view = memoryview(flash) magic = bytes(view[:4]) # read the first 4 bytes directly from XIP
Kích thước block được sử dụng bởi các sector flash nền tảng có thể được truy vấn tại runtime với
ioctl(5, 0).- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
Đọc các byte từ flash vào
buf. Hai dạng nạp chồng tiết lộ giao diện đơn giản và mở rộng:Dạng đơn giản (
readblocks(block_num, buf)): đọc toàn bộ block bắt đầu từ chỉ số blockblock_num.len(buf)phải là bội số của kích thước block flash.Dạng mở rộng (
readblocks(block_num, buf, offset)): đọclen(buf)byte -- không nhất thiết là số nguyên block -- bắt đầu từ byteoffsettrong blockblock_num.len(buf)không có ràng buộc căn chỉnh.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
Ghi các byte từ
bufvào flash. Hai dạng nạp chồng tiết lộ giao diện đơn giản và mở rộng:Dạng đơn giản (
writeblocks(block_num, buf)): ghi toàn bộ block bắt đầu từ chỉ số blockblock_num.len(buf)phải là bội số của kích thước block flash. Mỗi block bị ảnh hưởng được xóa tự động trước khi ghi.Dạng mở rộng (
writeblocks(block_num, buf, offset)): ghilen(buf)byte -- không nhất thiết là số nguyên block -- bắt đầu từ byteoffsettrong blockblock_num.len(buf)không có ràng buộc căn chỉnh, và không thực hiện xóa ngầm định -- người gọi phải đảm bảo các block bị ảnh hưởng đã được xóa qua lệnh gọiioctl(6, block_num)trước đó.Raise
OSErrornếu phép toán xóa hoặc ghi flash nền tảng thất bại.
- ioctl(cmd: int, arg: int) int | None¶
Điểm vào ioctl
vfs.AbstractBlockDevtiêu chuẩn. Xemvfs.AbstractBlockDev.ioctl()để biết danh sách đầy đủ các giá trịcmd.cmd=5trả về kích thước block flash tính bằng byte;cmd=6xóa block có chỉ sốarg.