Add to 11U68 11E68

Dependencies:   DirectoryList MODSERIAL mbed

Fork of ika_shouyu_poppoyaki by Tedd OKANO

Revision:
44:568799eac6df
Parent:
41:74b9ff21098f
Child:
47:e7d395119a63
--- a/writing.cpp	Sat Oct 18 09:44:43 2014 +0000
+++ b/writing.cpp	Wed Dec 10 09:24:00 2014 +0000
@@ -7,7 +7,7 @@
 #include    "isp.h"
 
 
-int     write_uuencoded_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p );
+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 );
 
@@ -15,13 +15,16 @@
 int write_flash( FILE *fp, target_param *tpp, int *transferred_size_p )
 {
     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 ) );
     else // UUENCODE
-        return ( write_uuencoded_data(  fp, tpp->ram_size, tpp->sector_size, tpp->ram_start_address, transferred_size_p ) );
+        return ( write_uuencoded_data( fp, tpp, transferred_size_p ) );
 }
 
 
-int write_uuencoded_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p )
+
+
+
+int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p )
 {
 #define     BYTES_PER_LINE      45
 
@@ -29,13 +32,16 @@
     long    checksum        = 0;
     int     size;
     int     total_size      = 0;
+    int     sector_number;
 
     int     flash_writing_size;
     int     lines_per_transfer;
     int     transfer_size;
 
     char    *b;
-
+    
+    int ram_size            = tpp->ram_size;
+    unsigned int ram_start  = tpp->ram_start_address;
 
     initialize_uue_table();
 
@@ -84,7 +90,11 @@
 
         checksum   = 0;
 
-        sprintf( command_str, "P %d %d\r\n", total_size / sector_size, total_size / sector_size );
+//        sprintf( command_str, "P %d %d\r\n", total_size / sector_size, total_size / sector_size );
+
+        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 );