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 가 마운트되면 파일시스템 드라이버가 표준 코드를 자동으로 디스패치합니다.