ECE 4180 Lab 2 Part 13
Dependencies: SDFileSystem mbed
Fork of SDFileSystem_HelloWorld by
main.cpp@2:ad4601e7074a, 2018-10-09 (annotated)
- Committer:
- abraha2d
- Date:
- Tue Oct 09 00:52:07 2018 +0000
- Revision:
- 2:ad4601e7074a
- Parent:
- 0:bdbd3d6fc5d5
Save point
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:bdbd3d6fc5d5 | 1 | #include "mbed.h" |
mbed_official | 0:bdbd3d6fc5d5 | 2 | #include "SDFileSystem.h" |
abraha2d | 2:ad4601e7074a | 3 | |
abraha2d | 2:ad4601e7074a | 4 | SDFileSystem sd(p11, p12, p13, p14, "sd"); // the pinout on the mbed Cool Components workshop board |
abraha2d | 2:ad4601e7074a | 5 | |
abraha2d | 2:ad4601e7074a | 6 | FILE * pFile; |
abraha2d | 2:ad4601e7074a | 7 | long lSize; |
abraha2d | 2:ad4601e7074a | 8 | char * buffer; |
abraha2d | 2:ad4601e7074a | 9 | size_t result; |
abraha2d | 2:ad4601e7074a | 10 | |
abraha2d | 2:ad4601e7074a | 11 | int main() |
abraha2d | 2:ad4601e7074a | 12 | { |
abraha2d | 2:ad4601e7074a | 13 | printf("Hello World!\n"); |
abraha2d | 2:ad4601e7074a | 14 | |
mbed_official | 0:bdbd3d6fc5d5 | 15 | mkdir("/sd/mydir", 0777); |
abraha2d | 2:ad4601e7074a | 16 | |
mbed_official | 0:bdbd3d6fc5d5 | 17 | FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); |
mbed_official | 0:bdbd3d6fc5d5 | 18 | if(fp == NULL) { |
mbed_official | 0:bdbd3d6fc5d5 | 19 | error("Could not open file for write\n"); |
mbed_official | 0:bdbd3d6fc5d5 | 20 | } |
abraha2d | 2:ad4601e7074a | 21 | fprintf(fp, "Hello SD file world"); |
abraha2d | 2:ad4601e7074a | 22 | fclose(fp); |
abraha2d | 2:ad4601e7074a | 23 | |
abraha2d | 2:ad4601e7074a | 24 | pFile = fopen ( "/sd/mydir/sdtest.txt" , "r" ); |
abraha2d | 2:ad4601e7074a | 25 | if (pFile==NULL) { |
abraha2d | 2:ad4601e7074a | 26 | error ("File error"); |
abraha2d | 2:ad4601e7074a | 27 | } |
abraha2d | 2:ad4601e7074a | 28 | |
abraha2d | 2:ad4601e7074a | 29 | // obtain file size: |
abraha2d | 2:ad4601e7074a | 30 | fseek (pFile , 0 , SEEK_END); |
abraha2d | 2:ad4601e7074a | 31 | lSize = ftell (pFile); |
abraha2d | 2:ad4601e7074a | 32 | rewind (pFile); |
abraha2d | 2:ad4601e7074a | 33 | |
abraha2d | 2:ad4601e7074a | 34 | // allocate memory to contain the whole file: |
abraha2d | 2:ad4601e7074a | 35 | buffer = (char*) malloc (sizeof(char)*lSize); |
abraha2d | 2:ad4601e7074a | 36 | if (buffer == NULL) { |
abraha2d | 2:ad4601e7074a | 37 | error ("Memory error"); |
abraha2d | 2:ad4601e7074a | 38 | } |
abraha2d | 2:ad4601e7074a | 39 | |
abraha2d | 2:ad4601e7074a | 40 | // copy the file into the buffer: |
abraha2d | 2:ad4601e7074a | 41 | result = fread (buffer,1,lSize,pFile); |
abraha2d | 2:ad4601e7074a | 42 | if (result != lSize) { |
abraha2d | 2:ad4601e7074a | 43 | error ("Reading error"); |
abraha2d | 2:ad4601e7074a | 44 | exit (3); |
abraha2d | 2:ad4601e7074a | 45 | } |
abraha2d | 2:ad4601e7074a | 46 | |
abraha2d | 2:ad4601e7074a | 47 | /* the whole file is now loaded in the memory buffer. */ |
abraha2d | 2:ad4601e7074a | 48 | printf(buffer); |
abraha2d | 2:ad4601e7074a | 49 | |
abraha2d | 2:ad4601e7074a | 50 | // terminate |
abraha2d | 2:ad4601e7074a | 51 | fclose (pFile); |
abraha2d | 2:ad4601e7074a | 52 | free (buffer); |
abraha2d | 2:ad4601e7074a | 53 | |
mbed_official | 0:bdbd3d6fc5d5 | 54 | printf("Goodbye World!\n"); |
mbed_official | 0:bdbd3d6fc5d5 | 55 | } |