microSD Card control function for DISCO-F769NI based on BD_SD_DISCO_F746NG library by Roy Krikke

Dependencies:   BD_SD_DISCO_F769NI BSP_DISCO_F769NI

Fork of DISCO-F746NG_BLOCK_DEVICE_WITH_FAT_FILESYSTEM_ON_SDCARD by Roy Krikke

Please refer following my Notebook page.
/users/kenjiArai/notebook/sd-card-control-new/#

Revision:
4:0f7797c2d3fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org_main.cpp	Sat Apr 07 02:10:18 2018 +0000
@@ -0,0 +1,117 @@
+#if 0
+/* Example file of using SD/MMC Block device Library for MBED-OS
+ * Copyright 2017 Roy Krikke
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+ 
+#include "mbed.h"
+#include "FATFileSystem.h"
+#include "SDBlockDeviceDISCOF746NG.h"
+#include <stdio.h>
+#include <errno.h>
+ 
+DigitalOut led (LED1);
+ 
+// Instantiate the Block Device for sd card on DISCO-F746NG
+SDBlockDeviceDISCOF746NG bd;
+FATFileSystem fs ("fs");
+ 
+void
+return_error (int ret_val)
+{
+    if(ret_val)
+        printf ("Failure. %d\r\n", ret_val);
+    else
+        printf ("done.\r\n");
+}
+ 
+void
+errno_error (void* ret_val)
+{
+    if(ret_val == NULL)
+        printf (" Failure. %d \r\n", errno);
+    else
+        printf (" done.\r\n");
+}
+ 
+int
+main ()
+{
+    Serial pc (SERIAL_TX, SERIAL_RX);
+    pc.baud(115200);
+    printf("Start\n");
+ 
+    int error = 0;
+    printf("Welcome to the filesystem example.\r\n"
+           "Formatting a FAT, RAM-backed filesystem. ");
+    error = FATFileSystem::format(&bd);
+    return_error(error);
+ 
+    printf("Mounting the filesystem on \"/fs\". ");
+    error = fs.mount(&bd);
+    return_error(error);
+ 
+    printf("Opening a new file, numbers.txt.");
+    FILE* fd = fopen("/fs/numbers.txt", "w");
+    errno_error(fd);
+ 
+    for (int i = 0; i < 20; i++) {
+        printf("Writing decimal numbers to a file (%d/20)\r", i);
+        fprintf(fd, "%d\r\n", i);
+    }
+    printf("Writing decimal numbers to a file (20/20) done.\r\n");
+ 
+    printf("Closing file.");
+    fclose(fd);
+    printf(" done.\r\n");
+ 
+    printf("Re-opening file read-only.");
+    fd = fopen("/fs/numbers.txt", "r");
+    errno_error(fd);
+ 
+    printf("Dumping file to screen.\r\n");
+    char buff[16] = { 0 };
+    while(!feof (fd)) {
+        int size = fread(&buff[0], 1, 15, fd);
+        fwrite(&buff[0], 1, size, stdout);
+    }
+    printf("EOF.\r\n");
+ 
+    printf("Closing file.");
+    fclose(fd);
+    printf(" done.\r\n");
+ 
+    printf("Opening root directory.");
+    DIR* dir = opendir("/fs/");
+    errno_error(fd);
+ 
+    struct dirent* de;
+    printf("Printing all filenames:\r\n");
+    while((de = readdir (dir)) != NULL) {
+        printf("  %s\r\n", &(de->d_name)[0]);
+    }
+ 
+    printf("Closeing root directory. ");
+    error = closedir(dir);
+    return_error(error);
+    printf("Filesystem Demo complete.\r\n");
+ 
+    // Blink led with 2 Hz
+    while(true) {
+        led = !led;
+        wait (0.5);
+    }
+}
+#endif
\ No newline at end of file