#include "mbed.h" #include "SDBlockDevice.h" #include "FATFileSystem.h" // SDBlockDevice(PinName mosi, PinName miso, PinName sclk, PinName csel, int freq SDBlockDevice sd; // pins defined in mbed_app.json FATFileSystem fs("fs"); DigitalOut led(LED1); void printDirectory(FileSystem *fs, const char* dirname) { Dir dir; struct dirent ent; dir.open(fs, dirname); printf("contents of dir: %s\n", dirname); printf("----------------------------------------------------\n"); while (1) { size_t res = dir.read(&ent); if (0 == res) { break; } printf(ent.d_name); printf("\n"); } dir.close(); } int main() { printf("Hello from " MBED_STRINGIFY(TARGET_NAME) "\n"); printf("Mbed OS version: %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); volatile int err = 0; err = sd.init(); printf("sd init result: %d\n", err); if (err != 0) { while (1) { led = !led; ThisThread::sleep_for(100ms); } } printf("spif size: %llu\n", sd.size()); printf("spif read size: %llu\n", sd.get_read_size()); printf("spif program size: %llu\n", sd.get_program_size()); printf("spif erase size: %llu\n", sd.get_erase_size()); err = fs.mount(&sd); debug_if(err != 0, "mount error: %d\n", err); printf("\n\n"); printDirectory(&fs, "/"); while (1) { led = !led; ThisThread::sleep_for(1s); } }