this transfers data (which is stored in "bin" file in mbed storage) into LPC1114, LPC1115, LPC81x, LPC82x, LPC1768/LPC1769 and LPC11U68/LPC11E68 internal flash memory through ISP.
Dependencies: mbed MODSERIAL DirectoryList
target_table.cpp
00001 #include "mbed.h" 00002 #include "target_table.h" 00003 00004 #define SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN 1 00005 #define SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN 2 00006 00007 target_param target_table[] = { 00008 { "unknown ttarget", 0xFFFFFFFF, 1024, 4096, 4096, UUENCODE, 0x10000200 }, 00009 { "LPC1114FN28(FDH28)/102", 0x0A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 }, 00010 { "LPC1114FN28(FDH28)/102", 0x1A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 }, 00011 { "LPC1115", 0x00050080, 8192, 65536, 4096, UUENCODE, 0x10000200 }, 00012 { "LPC810M021FN8", 0x00008100, 1024, 4096, 1024, BINARY, 0x10000300 }, 00013 { "LPC811M001JDH16", 0x00008110, 2048, 8192, 1024, BINARY, 0x10000300 }, 00014 { "LPC812M101JDH16", 0x00008120, 4096, 16384, 1024, BINARY, 0x10000300 }, 00015 { "LPC812M101JD20", 0x00008121, 4096, 16384, 1024, BINARY, 0x10000300 }, 00016 { "LPC812M101JDH20", 0x00008122, 4096, 16384, 1024, BINARY, 0x10000300 }, 00017 ///added for LPC82x series 00018 { "LPC824M201JHI33", 0x00008241, 8192, 32768, 1024, BINARY, 0x10000300 }, 00019 { "LPC822M101JHI33", 0x00008221, 4096, 16384, 1024, BINARY, 0x10000300 }, 00020 { "LPC824M201JDH20", 0x00008242, 8192, 32768, 1024, BINARY, 0x10000300 }, 00021 { "LPC822M101JDH20", 0x00008222, 4096, 16384, 1024, BINARY, 0x10000300 }, 00022 ///added for LPC176x series 00023 { "LPC1769FBD100", 0x26113F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 }, 00024 { "LPC1768FBD100", 0x26013F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 }, 00025 ///added for LPC11U(E)68x series 00026 { "LPC11U68JBD100", 0x00007C00, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 }, 00027 { "LPC11E68JBD100", 0x00007C01, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 }, 00028 }; 00029 00030 target_param *find_target_param( char *device_id_string ) 00031 { 00032 int id; 00033 00034 id = atoi( device_id_string ); 00035 00036 for ( int i = 1; i < (sizeof( target_table ) / sizeof( target_param )); i++ ) { 00037 if ( id == target_table[ i ].id ) 00038 return ( &(target_table[ i ]) ); 00039 } 00040 00041 // return ( target_table ); 00042 return ( NULL ); 00043 } 00044 00045 int find_sector( int data_size, target_param *tpp ) 00046 { 00047 int result; 00048 00049 switch ( tpp->sector_size ) { 00050 case SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN : 00051 if ( data_size <= (4096 * 16) ) { 00052 result = ( data_size / 4096 ); 00053 } else { 00054 data_size -= (4096 * 16); 00055 result = ( (data_size / (4096 * 8)) + 16 ); 00056 } 00057 break; 00058 00059 case SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN : 00060 if ( data_size <= (4096 * 24) ) { 00061 result = ( data_size / 4096 ); 00062 } else { 00063 data_size -= (4096 * 24); 00064 result = ( (data_size / (4096 * 12)) + 24 ); 00065 } 00066 break; 00067 00068 default : 00069 result = ( data_size / tpp->sector_size ); 00070 //break; 00071 } 00072 return (result); 00073 } 00074
Generated on Sat Jul 16 2022 08:56:48 by 1.7.2