Skip to content
Enes Cavus
Tüm projeler
Firmware15 / 20

Bloklamayan SD Kart Kütüphanesi

STM32 için tamamen bloklamayan dosya sistemi ve kayıt katmanı; SPI + DMA üzerine kurulu olduğu için işlemci giriş/çıkışta beklemiyor.

1Özellikler

  • SPI + DMA üzerinden bloklamayan sektör okuma/yazma
  • sd_async_poll() ile DMA tamamlandığında geri çağırma
  • Üzerine yerleştirilen FatFs, FAT32 ile doğrulandı
  • Asenkron dosya API'si: writeFileAsync() / readFileAsync()
  • Yalnızca sektör dolduğunda yazan tamponlu kayıt modülü
  • RTOS ya da bare-metal projelere olduğu gibi giriyor

2Teknik özellikler

Hedef MCU
STM32F401
Taşıma
SPI + DMA
Dosya sistemi
FatFs / FAT32
Araç zinciri
STM32CubeIDE
Dil
C

3Şekil 1 — Kart

Bloklamayan SD Kart Kütüphanesi

4Açıklama

Bu proje, STM32F401 üzerinde SD kartla tamamen bloklamayan dosya işlemleri gerçekleştiriyor. Amaç, DMA tabanlı asenkron bir mimaride farklı okuma/yazma senaryolarını desteklerken işlemciyi başka işler için serbest bırakmaktı.

Önce sektör seviyesinde asenkron giriş/çıkış geldi: read_sector_async() ve write_sector_async() tek sektörü SPI + DMA üzerinden taşıyor, sd_async_poll() tamamlanınca geri çağırmaları tetikliyor. Ardından üzerine FatFs yerleştirildi ve standart bloklayan çağrılar — mount, open, read, write, rename ve unlink — FAT32 ile doğrulandı.

Bunun üzerinde asenkron bir dosya API'si — writeFileAsync() ve readFileAsync() — ve kayıt satırlarını tamponlayıp yalnızca bir sektör dolduğunda yazma tetikleyen log_writer modülü duruyor. Sonuç: işlemciye neredeyse hiç yük bindirmeyen gerçek zamanlı kayıt.

5Kullanılan araçlar

STM32CubeIDESTM32 HALFatFsC