class Flash – 내장 플래시 저장소에 대한 접근¶
Flash 클래스는 RP2040의 외부 QSPI 플래시 칩에 대한 직접적인 블록 단위 접근을 제공합니다. 이 드라이버는 vfs.AbstractBlockDev 인터페이스를 구현하므로 사용자 정의 파일시스템 구성을 위해 vfs.mount() 에 전달할 수 있습니다.
대부분의 스크립트는 / 에 자동으로 마운트된 파일시스템을 통해 데이터를 영구 저장하며 Flash 를 직접 생성하지 않습니다. 다음과 같은 경우에만 수동으로 생성하십시오:
사용자 정의 파티션에 기본이 아닌 파일시스템을 마운트합니다(예:
vfs.VfsFat로 래핑).파일시스템이 소유하지 않은 펌웨어 영역이나 공장 데이터 블록을 읽거나 씁니다.
파일시스템 계층을 우회하는 사용자 정의 온플래시 저장 형식을 구현합니다.
생성자¶
- class rp2.Flash Flash¶
RP2040의 QSPI 플래시 칩을 기반으로 하는 싱글턴
Flash블록 장치 객체를 반환합니다. 노출되는 첫 번째 블록은 펌웨어 영역 바로 다음 블록이므로, 호출자는 칩에서 파일시스템에 사용 가능한 영역만 보게 됩니다.메서드¶
- readblocks(block_num: int, buf: bytearray) None¶
- readblocks(block_num: int, buf: bytearray, offset: int) None
플래시에서
buf로 바이트를 읽습니다. 파일시스템 계층에서 사용하는 표준vfs.AbstractBlockDev블록 장치 진입점입니다.단순 형식 (
readblocks(block_num, buf)): 블록 인덱스block_num부터 시작하여 전체 블록을 읽습니다.len(buf)는 플래시 블록 크기의 배수여야 합니다.확장 형식 (
readblocks(block_num, buf, offset)): 블록block_num내의 바이트offset부터 시작하여len(buf)바이트를 읽습니다 – 반드시 정수 개의 블록일 필요는 없습니다. littlefs 및 기타 바이트 주소 지정 파일시스템에서 사용됩니다.
- writeblocks(block_num: int, buf: bytes) None¶
- writeblocks(block_num: int, buf: bytes, offset: int) None
buf에서 플래시로 바이트를 씁니다. 파일시스템 계층에서 사용하는 표준vfs.AbstractBlockDev블록 장치 진입점입니다.단순 형식 (
writeblocks(block_num, buf)): 블록 인덱스block_num부터 시작하여 전체 블록을 씁니다.len(buf)는 플래시 블록 크기의 배수여야 합니다. 영향을 받는 각 블록은 기록되기 전에 자동으로 지워집니다.확장 형식 (
writeblocks(block_num, buf, offset)): 블록block_num내의 바이트offset부터 시작하여len(buf)바이트를 씁니다 – 반드시 정수 개의 블록일 필요는 없습니다. 암시적 지우기가 수행되지 않으므로, 호출자는 이전의ioctl(6, block_num)호출을 통해 영향을 받는 블록이 지워졌는지 확인해야 합니다.
- ioctl(cmd: int, arg: int) int | None¶
표준
vfs.AbstractBlockDev제어 진입점입니다. 파일시스템 계층이 마운트/언마운트 시점 및 모든 동기화 시에 호출합니다. 인식되는cmd값:1– 초기화. 성공 시0을 반환합니다.2– 초기화 해제. 성공 시0을 반환합니다.3– 대기 중인 쓰기를 동기화합니다.0을 반환합니다.4– 파일시스템에 보이는 플래시 블록의 개수를 반환합니다.5– 블록 크기를 바이트 단위로 반환합니다(일반적으로 플래시 섹터 크기인4096).6– 인덱스arg의 블록을 지웁니다. 확장writeblocks형식을 사용하기 전에 필요합니다.7– 장치가 블록 지우기 명령을 지원하는지 여부를 반환합니다(RP2040에서는1).
직접 호출하는 경우 일반적으로 이 메서드를 사용하지 않습니다 –
Flash가 마운트되면 파일시스템 드라이버가 표준 코드를 자동으로 디스패치합니다.