class Flash – 내장 플래시 저장소 접근¶
Flash 클래스는 STM32 기반 OpenMV Cam의 기본 플래시 장치에 대한 직접 접근을 허용합니다.
대부분의 경우 장치에 영구 데이터를 저장하려면 Python의 표준 파일 API를 통한 파일시스템 같은 상위 수준 추상화를 사용하는 것이 좋지만, 이 인터페이스는 파일시스템 구성을 사용자 정의하거나 애플리케이션을 위한 저수준 저장 시스템을 구현하는 데 유용합니다.
참고
OpenMV Cam H7 Plus, Pure Thermal, N6는 기본 저장소로 외부 SPI/QSPI/XSPI 플래시 칩을 사용합니다. 다른 STM32 기반 OpenMV Cam은 MCU 내부의 내장 플래시를 사용합니다. Python 인터페이스는 두 경우 모두 동일합니다.
생성자¶
- class pyb.Flash¶
- class pyb.Flash(*, start: int = -1, len: int = -1)
온보드 플래시에 대한
vfs.AbstractBlockDev호환 블록 장치를 생성합니다. 두 가지 형태가 존재합니다:Flash()(인수 없음): 가상 파티션 테이블이 앞에 추가된 전체 플래시를 노출하는 레거시 싱글톤 객체를 반환합니다. 실제 플래시 데이터는 블록0x100에서 시작합니다. 이 형태는 더 이상 사용되지 않으며 향후 MicroPython 릴리스에서 제거될 예정입니다.Flash(start=..., len=...): 바이트 오프셋start(기본값0)부터len바이트(기본값: 장치의 나머지)만큼의 플래시에 접근하는 새 블록 장치를 반환합니다. 두 값 모두 기본 블록 크기의 배수여야 합니다(내부 플래시의 경우 일반적으로 512바이트이며, 외부 SPI/QSPI/XSPI 부품은 더 큰 소거 섹터 크기를 사용합니다).
메서드¶
- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
플래시에서
buf로 바이트를 읽습니다. 두 가지 오버로드가 단순 인터페이스와 확장 인터페이스를 노출합니다:단순 형식 (
readblocks(block_num, buf)): 블록 인덱스block_num부터 시작하여 전체 블록을 읽습니다.len(buf)는 플래시 블록 크기의 배수여야 합니다.확장 형식 (
readblocks(block_num, buf, offset)): 블록block_num내의 바이트offset에서 시작하여len(buf)바이트를 읽습니다. 반드시 전체 블록 수일 필요는 없습니다.len(buf)에는 정렬 제약이 없습니다. 명시적인start/len인수로 생성된 객체에서만 지원되며, 더 이상 사용되지 않는 싱글톤에서는 지원되지 않습니다.
- writeblocks(block_num: int, buf: bytes | bytearray) None¶
- writeblocks(block_num: int, buf: bytes | bytearray, offset: int) None
buf에서 플래시로 바이트를 씁니다. 두 가지 오버로드가 단순 인터페이스와 확장 인터페이스를 노출합니다:단순 형식 (
writeblocks(block_num, buf)): 블록 인덱스block_num부터 시작하여 전체 블록을 씁니다.len(buf)는 플래시 블록 크기의 배수여야 합니다. 영향을 받는 각 블록은 쓰기 전에 자동으로 지워집니다.확장 형태(
writeblocks(block_num, buf, offset)): 블록block_num내의 바이트offset부터len(buf)바이트를 씁니다(반드시 전체 블록 수일 필요는 없음).len(buf)에는 정렬 제약이 없으며, 암시적 소거가 수행되지 않습니다 – 호출자는 사전ioctl(6, block_num)호출을 통해 영향을 받는 블록이 소거되었는지 확인해야 합니다. 명시적인start/len인수로 생성된 객체에서만 지원됩니다.
- ioctl(cmd: int, arg: int) int | None¶
표준
vfs.AbstractBlockDevioctl 진입점입니다.cmd값의 전체 목록은vfs.AbstractBlockDev.ioctl()을 참조하십시오.cmd=5는 플래시 블록 크기를 바이트 단위로 반환하고,cmd=6은 인덱스arg의 블록을 소거합니다.