parent
a66b544d18
commit
3ba46c7fbc
@ -212,6 +212,8 @@ void setup(){
|
|||||||
renameFile(SD, "/hello.txt", "/foo.txt");
|
renameFile(SD, "/hello.txt", "/foo.txt");
|
||||||
readFile(SD, "/foo.txt");
|
readFile(SD, "/foo.txt");
|
||||||
testFileIO(SD, "/test.txt");
|
testFileIO(SD, "/test.txt");
|
||||||
|
Serial.printf("Total space: %lluMB\n", SD.totalBytes() / (1024 * 1024));
|
||||||
|
Serial.printf("Used space: %lluMB\n", SD.usedBytes() / (1024 * 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "vfs_api.h"
|
#include "vfs_api.h"
|
||||||
#include "sd_diskio.h"
|
#include "sd_diskio.h"
|
||||||
|
#include "ff.h"
|
||||||
#include "FS.h"
|
#include "FS.h"
|
||||||
#include "SD.h"
|
#include "SD.h"
|
||||||
|
|
||||||
@ -73,4 +74,32 @@ uint64_t SDFS::cardSize()
|
|||||||
return (uint64_t)sectors * sectorSize;
|
return (uint64_t)sectors * sectorSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t SDFS::totalBytes()
|
||||||
|
{
|
||||||
|
FATFS* fsinfo;
|
||||||
|
DWORD fre_clust;
|
||||||
|
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
|
||||||
|
uint64_t size = (fsinfo->csize)*(fsinfo->n_fatent - 2)
|
||||||
|
#if _MAX_SS != 512
|
||||||
|
*(fsinfo->ssize);
|
||||||
|
#else
|
||||||
|
*512;
|
||||||
|
#endif
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t SDFS::usedBytes()
|
||||||
|
{
|
||||||
|
FATFS* fsinfo;
|
||||||
|
DWORD fre_clust;
|
||||||
|
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
|
||||||
|
uint64_t size = (fsinfo->csize)*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
|
||||||
|
#if _MAX_SS != 512
|
||||||
|
*(fsinfo->ssize);
|
||||||
|
#else
|
||||||
|
*512;
|
||||||
|
#endif
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
SDFS SD = SDFS(FSImplPtr(new VFSImpl()));
|
SDFS SD = SDFS(FSImplPtr(new VFSImpl()));
|
||||||
|
@ -32,6 +32,8 @@ public:
|
|||||||
void end();
|
void end();
|
||||||
sdcard_type_t cardType();
|
sdcard_type_t cardType();
|
||||||
uint64_t cardSize();
|
uint64_t cardSize();
|
||||||
|
uint64_t totalBytes();
|
||||||
|
uint64_t usedBytes();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -209,6 +209,8 @@ void setup(){
|
|||||||
renameFile(SD_MMC, "/hello.txt", "/foo.txt");
|
renameFile(SD_MMC, "/hello.txt", "/foo.txt");
|
||||||
readFile(SD_MMC, "/foo.txt");
|
readFile(SD_MMC, "/foo.txt");
|
||||||
testFileIO(SD_MMC, "/test.txt");
|
testFileIO(SD_MMC, "/test.txt");
|
||||||
|
Serial.printf("Total space: %lluMB\n", SD_MMC.totalBytes() / (1024 * 1024));
|
||||||
|
Serial.printf("Used space: %lluMB\n", SD_MMC.usedBytes() / (1024 * 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
|
@ -23,6 +23,7 @@ extern "C" {
|
|||||||
#include "driver/sdmmc_defs.h"
|
#include "driver/sdmmc_defs.h"
|
||||||
#include "sdmmc_cmd.h"
|
#include "sdmmc_cmd.h"
|
||||||
}
|
}
|
||||||
|
#include "ff.h"
|
||||||
#include "SD_MMC.h"
|
#include "SD_MMC.h"
|
||||||
|
|
||||||
using namespace fs;
|
using namespace fs;
|
||||||
@ -98,5 +99,32 @@ uint64_t SDMMCFS::cardSize()
|
|||||||
return (uint64_t)_card->csd.capacity * _card->csd.sector_size;
|
return (uint64_t)_card->csd.capacity * _card->csd.sector_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t SDMMCFS::totalBytes()
|
||||||
|
{
|
||||||
|
FATFS* fsinfo;
|
||||||
|
DWORD fre_clust;
|
||||||
|
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
|
||||||
|
uint64_t size = (fsinfo->csize)*(fsinfo->n_fatent - 2)
|
||||||
|
#if _MAX_SS != 512
|
||||||
|
*(fsinfo->ssize);
|
||||||
|
#else
|
||||||
|
*512;
|
||||||
|
#endif
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t SDMMCFS::usedBytes()
|
||||||
|
{
|
||||||
|
FATFS* fsinfo;
|
||||||
|
DWORD fre_clust;
|
||||||
|
if(f_getfree("0:",&fre_clust,&fsinfo)!= 0) return 0;
|
||||||
|
uint64_t size = (fsinfo->csize)*((fsinfo->n_fatent - 2) - (fsinfo->free_clst))
|
||||||
|
#if _MAX_SS != 512
|
||||||
|
*(fsinfo->ssize);
|
||||||
|
#else
|
||||||
|
*512;
|
||||||
|
#endif
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
SDMMCFS SD_MMC = SDMMCFS(FSImplPtr(new VFSImpl()));
|
SDMMCFS SD_MMC = SDMMCFS(FSImplPtr(new VFSImpl()));
|
||||||
|
@ -32,6 +32,8 @@ public:
|
|||||||
void end();
|
void end();
|
||||||
sdcard_type_t cardType();
|
sdcard_type_t cardType();
|
||||||
uint64_t cardSize();
|
uint64_t cardSize();
|
||||||
|
uint64_t totalBytes();
|
||||||
|
uint64_t usedBytes();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user