PicoでSDカードを使う(FatFs、C言語)

Raspberry Pi Pico

Raspberry Pi PicoでFatFs Moduleを使用してSDカードにアクセスできるようにします。
参考にさせてもらったページはこちらです。ありがとうございます。 https://qiita.com/Yukiya_Ishioka/items/6b5b6cb246f1d1e94461

  1. FatFsのダウンロード
    http://elm-chan.org/fsw/ff/00index_e.html
    ここから以下2つをダウンロードします。
    FatFs R0.15a
    FatFs sample projects for various platforms
  2. 「mmc_pico_spi.c」の作成
    「sample projects for various platforms」を解凍して、「\ffsample\stm32\mmc_stm32f1_spi.c」を編集します。
    パッチを当てるプログラムを作成しました。(Copilotで生成)
    fatfs_patch.zip」をダウンロード、解凍して、そこに「\ffsample\stm32\mmc_stm32f1_spi.c」をコピーして、「pico_marge.py」を実行すると、「mmc_pico_spi.c」が生成されます。
  3. プロブラムのソースフォルダに「sd_lib」フォルダを作成します。「ff15a.zip」を解凍し、「\ff15a\source」以下のファイルを「sd_lib」へコピーします。先ほど作成した「mmc_pico_spi.c」も「sd_lib」へコピーします。
  4. プロブラムのソースフォルダにある「CMakeLists.txt」に以下追加します。「pico_sdlogger」の部分は適宜変更してください。
add_executable(pico_sdlogger 
    pico_sdlogger.c 
    ./sd_lib/ff.c
    ./sd_lib/ffsystem.c
    ./sd_lib/ffunicode.c
    ./sd_lib/mmc_pico_spi.c    
)
  1. FatFsのオプション
    f_gets(), f_putc(), f_puts(),f_printf()を使う場合は「ffconf.h」を変更。
    また、RTCもないので、そこも変更します。
ffconf.h

#define FF_USE_STRFUNC	1
#define FF_FS_NORTC     1