Add to 11U68 11E68
Dependencies: DirectoryList MODSERIAL mbed
Fork of ika_shouyu_poppoyaki by
Diff: writing.cpp
- Revision:
- 47:e7d395119a63
- Parent:
- 44:568799eac6df
--- a/writing.cpp Wed Dec 10 09:42:12 2014 +0000 +++ b/writing.cpp Tue Jan 06 11:05:29 2015 +0000 @@ -5,26 +5,28 @@ #include "uu_coding.h" #include "serial_utilities.h" #include "isp.h" - - -int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p ); -int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p ); -int get_flash_writing_size( int ram_size, unsigned int ram_start ); +#include "_user_settings.h" -int write_flash( FILE *fp, target_param *tpp, int *transferred_size_p ) +int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p, int file_size ); +int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p, int file_size ); +int get_flash_writing_size( int ram_size, unsigned int ram_start ); +void show_progress( int total_size, int file_size ); + + +int write_flash( FILE *fp, target_param *tpp, int *transferred_size_p, int file_size ) { if ( tpp->write_type == BINARY ) - return ( write_binary_data( fp, tpp->ram_size, tpp->sector_size, tpp->ram_start_address, transferred_size_p ) ); + return ( write_binary_data( fp, tpp->ram_size, tpp->sector_size, tpp->ram_start_address, transferred_size_p, file_size ) ); else // UUENCODE - return ( write_uuencoded_data( fp, tpp, transferred_size_p ) ); + return ( write_uuencoded_data( fp, tpp, transferred_size_p, file_size ) ); } -int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p ) +int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p, int file_size ) { #define BYTES_PER_LINE 45 @@ -39,7 +41,7 @@ int transfer_size; char *b; - + int ram_size = tpp->ram_size; unsigned int ram_start = tpp->ram_start_address; @@ -94,7 +96,7 @@ sector_number = find_sector( total_size, tpp ); sprintf( command_str, "P %d %d\r\n", sector_number, sector_number ); - + if ( try_and_check( command_str, "0" ) ) return ( ERROR_AT_PREPARE_COMMAND ); @@ -103,6 +105,10 @@ return ( ERROR_AT_COPY_COMMAND ); total_size += size; + +#ifdef ENABLE_PROGRESS_DISPLAY + show_progress( total_size, file_size ); +#endif } free( b ); @@ -112,7 +118,7 @@ } -int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p ) +int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p, int file_size ) { char command_str[ STR_BUFF_SIZE ]; int total_size = 0; @@ -151,6 +157,9 @@ total_size += size; //printf( " total %d bytes transferred\r", total_size ); +#ifdef ENABLE_PROGRESS_DISPLAY + show_progress( total_size, file_size ); +#endif } free( b ); @@ -211,4 +220,3 @@ else return ( 0 ); } -