sd reader testing

Dependencies:   BD_SD_DISCO_F746NG

Committer:
long0020
Date:
Fri Jan 31 08:34:37 2020 +0000
Revision:
5:d8ff37f4e293
Parent:
4:73e7dc25c9be
publish;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
roykrikke 1:ffacc9d0b308 1 /* Example file of using SD/MMC Block device Library for MBED-OS
roykrikke 1:ffacc9d0b308 2 * Copyright 2017 Roy Krikke
roykrikke 3:7f991a3d4e71 3 *
roykrikke 1:ffacc9d0b308 4 * Licensed under the Apache License, Version 2.0 (the "License");
roykrikke 1:ffacc9d0b308 5 * you may not use this file except in compliance with the License.
roykrikke 1:ffacc9d0b308 6 * You may obtain a copy of the License at
roykrikke 3:7f991a3d4e71 7 *
roykrikke 1:ffacc9d0b308 8 * http://www.apache.org/licenses/LICENSE-2.0
roykrikke 3:7f991a3d4e71 9 *
roykrikke 1:ffacc9d0b308 10 * Unless required by applicable law or agreed to in writing, software
roykrikke 1:ffacc9d0b308 11 * distributed under the License is distributed on an "AS IS" BASIS,
roykrikke 1:ffacc9d0b308 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
roykrikke 1:ffacc9d0b308 13 * See the License for the specific language governing permissions and
roykrikke 1:ffacc9d0b308 14 * limitations under the License.
roykrikke 1:ffacc9d0b308 15 *
roykrikke 1:ffacc9d0b308 16 */
roykrikke 1:ffacc9d0b308 17
roykrikke 0:4cdf28a602a8 18 #include "mbed.h"
roykrikke 2:993735af824b 19 #include "FATFileSystem.h"
roykrikke 3:7f991a3d4e71 20 #include "SDBlockDeviceDISCOF746NG.h"
roykrikke 2:993735af824b 21 #include <stdio.h>
roykrikke 2:993735af824b 22 #include <errno.h>
roykrikke 0:4cdf28a602a8 23
roykrikke 0:4cdf28a602a8 24 // Instantiate the Block Device for sd card on DISCO-F746NG
roykrikke 3:7f991a3d4e71 25 SDBlockDeviceDISCOF746NG bd;
roykrikke 2:993735af824b 26 FATFileSystem fs ("fs");
roykrikke 2:993735af824b 27
roykrikke 0:4cdf28a602a8 28
roykrikke 0:4cdf28a602a8 29 int
roykrikke 3:7f991a3d4e71 30 main ()
roykrikke 3:7f991a3d4e71 31 {
long0020 4:73e7dc25c9be 32
roykrikke 3:7f991a3d4e71 33 printf("Start\n");
roykrikke 0:4cdf28a602a8 34
roykrikke 3:7f991a3d4e71 35 int error = 0;
roykrikke 3:7f991a3d4e71 36 printf("Welcome to the filesystem example.\r\n"
roykrikke 3:7f991a3d4e71 37 "Formatting a FAT, RAM-backed filesystem. ");
roykrikke 3:7f991a3d4e71 38 error = FATFileSystem::format(&bd);
long0020 4:73e7dc25c9be 39
roykrikke 3:7f991a3d4e71 40 printf("Mounting the filesystem on \"/fs\". ");
roykrikke 3:7f991a3d4e71 41 error = fs.mount(&bd);
long0020 4:73e7dc25c9be 42 //Write to file and create if not exist
roykrikke 3:7f991a3d4e71 43 printf("Opening a new file, numbers.txt.");
roykrikke 3:7f991a3d4e71 44 FILE* fd = fopen("/fs/numbers.txt", "w");
long0020 4:73e7dc25c9be 45
long0020 4:73e7dc25c9be 46 //Printing to file
roykrikke 3:7f991a3d4e71 47 for (int i = 0; i < 20; i++) {
roykrikke 3:7f991a3d4e71 48 printf("Writing decimal numbers to a file (%d/20)\r", i);
roykrikke 3:7f991a3d4e71 49 fprintf(fd, "%d\r\n", i);
roykrikke 3:7f991a3d4e71 50 }
roykrikke 3:7f991a3d4e71 51 printf("Writing decimal numbers to a file (20/20) done.\r\n");
roykrikke 2:993735af824b 52
roykrikke 3:7f991a3d4e71 53 printf("Closing file.");
roykrikke 3:7f991a3d4e71 54 fclose(fd);
roykrikke 3:7f991a3d4e71 55 printf(" done.\r\n");
roykrikke 0:4cdf28a602a8 56
long0020 4:73e7dc25c9be 57 //Read file
roykrikke 3:7f991a3d4e71 58 printf("Re-opening file read-only.");
roykrikke 3:7f991a3d4e71 59 fd = fopen("/fs/numbers.txt", "r");
roykrikke 2:993735af824b 60
long0020 4:73e7dc25c9be 61 //close stream
roykrikke 3:7f991a3d4e71 62 fclose(fd);
long0020 4:73e7dc25c9be 63 printf("Closing file.");
roykrikke 0:4cdf28a602a8 64 }