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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers target_table.cpp Source File

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