본문 바로가기

RaspberryPi/RP2040

RP2040 Pico LittleFS 파일 시스템 테스트

RP2040 보드는 2MByte이 시리얼 플래시 메모리가 있고 펌웨어외 데이터도 저장 할 수 있다.

이 메모리를 이용하면 MP3파일이나 이미지 파일들을 저장해서 사용 할 수 가 있을것 같다.

 

 

외부 시리얼 플래시 메모리를 제어 하기위해 Pico LittleFS 라이브러리를 이용하면 쉽게 사용 가능하다.

 

아두이노 IDE에서 데이터를 업로드 하기위한 플러그인(Pico LittleFS )이 필요다

 

시리얼 플래시 용량은 아두이노 IDE에서 옵션 형태로 설정 가능하다.

 

 

data 폴더를 생성하고 원하는 파일을 업로드 해서 업로드가 완료되면 아래와 같은 메시지가 출력 되는것을 확인 할수 있다.

[LittleFS] data    : D:\WORK\arduino\RP2040\LittleFS_Counting\data
[LittleFS] size    : 1024KB
[LittleFS] page    : 256


[LittleFS] block   : 4096
/test.txt
[LittleFS] upload   : C:\Users\jhpark\AppData\Local\Temp\arduino_build_920714/LittleFS_Counting.mklittlefs.bin
[LittleFS] address  : 269479936
[LittleFS] swerial  : COM11
[LittleFS] python   : C:\Users\jhpark\AppData\Local\Arduino15\packages\rp2040\tools\pqt-python3\1.0.1-base-3a57aed\python3.exe
[LittleFS] uploader : C:\Users\jhpark\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\1.9.5\tools\uf2conv.py

Resetting COM11
Converting to uf2, output size: 2097152, start address: 0x100ff000
Flashing I: (RPI-RP2)
Wrote 2097152 bytes to I:/NEW.UF2

 

 


업로드 완료 되면 파일 정보와 파일 내용을 출력하는 간단 예제로  동작 여부를 확인 해 볼수 있다.

#include <LittleFS.h>

void listAllFilesInDir(String dir_path)
{
  int cnt = 0;
  Dir dir = LittleFS.openDir(dir_path);
  while(dir.next()) {
    if (dir.isFile()) {
      // print file names
      Serial.print("File: ");
      Serial.println(dir_path + dir.fileName());
      Serial.printf("File Content:%d\r\n", 1+cnt++);
    }
    if (dir.isDirectory()) {
      // print directory names
      Serial.print("Dir: ");
      Serial.println(dir_path + dir.fileName() + "/");
      // recursive file listing inside new directory
      listAllFilesInDir(dir_path + dir.fileName() + "/");
    }
  }
}

void setup() 
{ 
  Serial.begin(115200); 
   
  while (!Serial)  
  { 
    if (Serial) { 
      Serial.println("Waiting for other USB ports"); 
    } 
  }

  Serial.println("Starting up...\n");
  if(!LittleFS.begin()){ 
    Serial.println("An Error has occurred while mounting LittleFS"); 
    return; 
  } 
  digitalWrite(LED_BUILTIN, 0); 
  listAllFilesInDir("/");
 }
  
 void loop(){
 }

 

 

RP2040에서 LittleFS 테스트 결과 

Waiting for other USB ports
Starting up...
File: /test.txt
File Content:1
hellow
반응형