class Flash -- truy cập bộ nhớ flash tích hợp¶
Lớp Flash cung cấp quyền truy cập trực tiếp ở cấp độ khối vào chip flash QSPI ngoài của RP2040. Driver này triển khai giao diện vfs.AbstractBlockDev để có thể truyền vào vfs.mount() cho các cấu hình hệ thống tệp tùy chỉnh.
Hầu hết các tập lệnh lưu trữ dữ liệu qua hệ thống tệp được gắn tự động tại / và không bao giờ khởi tạo Flash trực tiếp. Hãy khởi tạo thủ công khi bạn cần:
Gắn một hệ thống tệp không mặc định (ví dụ: bọc bằng
vfs.VfsFat) trên một phân vùng tùy chỉnh.Đọc hoặc ghi các vùng firmware hoặc khối dữ liệu nhà máy không thuộc quyền sở hữu của hệ thống tệp.
Triển khai định dạng lưu trữ trên flash tùy chỉnh bỏ qua lớp hệ thống tệp.
Constructors¶
- class rp2.Flash Flash¶
Trả về đối tượng block-device
Flashsingleton được hỗ trợ bởi chip flash QSPI của RP2040. Khối đầu tiên được hiển thị là khối ngay sau vùng firmware, do đó người gọi chỉ thấy vùng của chip đủ điều kiện cho hệ thống tệp.Methods¶
- 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. Điểm vào block-devicevfs.AbstractBlockDevtiêu chuẩn được sử dụng bởi lớp hệ thống tệp.Dạng đơn giản (
readblocks(block_num, buf)): đọc toàn bộ các khối bắt đầu từ chỉ số khốiblock_num.len(buf)phải là bội số của kích thước khối flash.Dạng mở rộng (
readblocks(block_num, buf, offset)): đọclen(buf)byte -- không nhất thiết phải là số nguyên khối -- bắt đầu từ byteoffsettrong khốiblock_num. Được sử dụng bởi littlefs và các hệ thống tệp có thể đánh địa chỉ theo byte khác.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
Ghi các byte từ
bufvào flash. Điểm vào block-devicevfs.AbstractBlockDevtiêu chuẩn được sử dụng bởi lớp hệ thống tệp.Dạng đơn giản (
writeblocks(block_num, buf)): ghi toàn bộ các khối bắt đầu từ chỉ số khốiblock_num.len(buf)phải là bội số của kích thước khối flash. Mỗi khối bị ảnh hưởng sẽ được xóa tự động trước khi được ghi.Dạng mở rộng (
writeblocks(block_num, buf, offset)): ghilen(buf)byte -- không nhất thiết phải là số nguyên khối -- bắt đầu từ byteoffsettrong khốiblock_num. Không thực hiện xóa ngầm -- người gọi phải đảm bảo các khối bị ảnh hưởng đã được xóa thông qua lệnh gọiioctl(6, block_num)trước đó.
- ioctl(cmd: int, arg: int) int | None¶
Điểm vào điều khiển
vfs.AbstractBlockDevtiêu chuẩn. Được gọi bởi lớp hệ thống tệp khi gắn/tháo gắn và khi đồng bộ hóa. Các giá trịcmdđược nhận dạng:1-- khởi tạo. Trả về0khi thành công.2-- hủy khởi tạo. Trả về0khi thành công.3-- đồng bộ hóa các lần ghi đang chờ. Trả về0.4-- trả về số khối flash hiển thị với hệ thống tệp.5-- trả về kích thước khối tính bằng byte (thường là kích thước sector flash,4096).6-- xóa khối tại chỉ sốarg. Bắt buộc trước khi sử dụng dạngwriteblocksmở rộng.7-- trả về liệu thiết bị có hỗ trợ lệnh xóa khối hay không (1trên RP2040).
Người gọi trực tiếp thường không sử dụng phương thức này -- driver hệ thống tệp sẽ tự động phân phối các mã tiêu chuẩn sau khi
Flashđược gắn vào.