application that helps to copy file between SD and mbed_local. insert/remove SD card is too troublesome for me. And also, this is a simple sample of the fread/fwrite

Dependencies:   mbed

Committer:
okano
Date:
Wed Sep 22 05:26:10 2010 +0000
Revision:
1:1a76280274de
Parent:
0:81b440aaf221

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 0:81b440aaf221 1 #include "mbed.h"
okano 0:81b440aaf221 2 #include "SDFileSystem.h"
okano 0:81b440aaf221 3
okano 0:81b440aaf221 4 //DigitalOut led[] = { LED4, LED3, LED2, LED1 };
okano 0:81b440aaf221 5 BusOut led( LED4, LED3, LED2, LED1 );
okano 0:81b440aaf221 6 SDFileSystem sd(p5, p6, p7, p8, "sd");
okano 0:81b440aaf221 7 LocalFileSystem local("local");
okano 0:81b440aaf221 8 Serial pc(USBTX, USBRX); // tx, rx
okano 0:81b440aaf221 9
okano 1:1a76280274de 10 //#define SOURCE_FILE "/local/source.jpg"
okano 1:1a76280274de 11 //#define TARGET_FILE "/sd/target.jpg"
okano 1:1a76280274de 12
okano 0:81b440aaf221 13 #define SOURCE_FILE "/sd/temp_log.txt"
okano 0:81b440aaf221 14 #define TARGET_FILE "/local/temp_log.txt"
okano 0:81b440aaf221 15
okano 0:81b440aaf221 16 #define COPY_BLOCK_SIZE 2048
okano 0:81b440aaf221 17
okano 0:81b440aaf221 18 int main() {
okano 0:81b440aaf221 19
okano 0:81b440aaf221 20 FILE *fs_src;
okano 0:81b440aaf221 21 FILE *fs_tgt;
okano 0:81b440aaf221 22 char s[ COPY_BLOCK_SIZE ];
okano 0:81b440aaf221 23 int size;
okano 0:81b440aaf221 24 int total = 0;
okano 0:81b440aaf221 25 int progress_ind = 0;
okano 0:81b440aaf221 26
okano 0:81b440aaf221 27 pc.printf( "\nfile copier started.\n" );
okano 0:81b440aaf221 28 pc.printf( " source:%s >>> target:%s\n", SOURCE_FILE, TARGET_FILE );
okano 0:81b440aaf221 29
okano 0:81b440aaf221 30 if ( NULL == (fs_src = fopen( SOURCE_FILE, "rb" )) )
okano 0:81b440aaf221 31 {
okano 0:81b440aaf221 32 error( "couldn't open source file" );
okano 0:81b440aaf221 33 return ( 1 );
okano 0:81b440aaf221 34 }
okano 0:81b440aaf221 35 if ( NULL == (fs_tgt = fopen( TARGET_FILE, "wb" )) )
okano 0:81b440aaf221 36 {
okano 1:1a76280274de 37 error( "couldn't open target file" );
okano 0:81b440aaf221 38 return ( 2 );
okano 0:81b440aaf221 39 }
okano 0:81b440aaf221 40
okano 0:81b440aaf221 41 while ( size = fread( s, sizeof( char ), COPY_BLOCK_SIZE, fs_src ) )
okano 0:81b440aaf221 42 {
okano 0:81b440aaf221 43 fwrite( s, sizeof( char ), size, fs_tgt );
okano 0:81b440aaf221 44 total += size;
okano 0:81b440aaf221 45
okano 0:81b440aaf221 46 led = (0x1 << progress_ind++ % 4);
okano 0:81b440aaf221 47
okano 0:81b440aaf221 48 pc.printf( " %d bytes copied\r", total );
okano 0:81b440aaf221 49 }
okano 0:81b440aaf221 50
okano 0:81b440aaf221 51 led = 0xF;
okano 0:81b440aaf221 52
okano 0:81b440aaf221 53 fclose( fs_src );
okano 0:81b440aaf221 54 fclose( fs_tgt );
okano 0:81b440aaf221 55
okano 0:81b440aaf221 56 pc.printf( "\ndone\n" );
okano 0:81b440aaf221 57
okano 0:81b440aaf221 58 }