Code to load a LPC1114 over tx/rx. I have only tested with a 1114 chip but it should work with other LPC uControllers

Dependencies:   DirectoryList MODSERIAL mbed

Fork of ika_shouyu_poppoyaki by Tedd OKANO

Committer:
okano
Date:
Wed Dec 10 09:24:00 2014 +0000
Revision:
44:568799eac6df
Parent:
42:2b40666d8177
Child:
50:57ad8e04f063
LPC1768 and LPC1769 support added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 5:ff30f5b58617 1 #include "mbed.h"
okano 5:ff30f5b58617 2 #include "target_table.h"
okano 5:ff30f5b58617 3
okano 44:568799eac6df 4 #define SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN 1
okano 44:568799eac6df 5
okano 5:ff30f5b58617 6 target_param target_table[] = {
okano 12:5a33b5d39792 7 { "unknown ttarget", 0xFFFFFFFF, 1024, 4096, 4096, UUENCODE, 0x10000200 },
okano 12:5a33b5d39792 8 { "LPC1114FN28(FDH28)/102", 0x0A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 },
okano 12:5a33b5d39792 9 { "LPC1114FN28(FDH28)/102", 0x1A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 },
okano 12:5a33b5d39792 10 { "LPC810M021FN8", 0x00008100, 1024, 4096, 1024, BINARY, 0x10000300 },
okano 12:5a33b5d39792 11 { "LPC811M001JDH16", 0x00008110, 2048, 8192, 1024, BINARY, 0x10000300 },
okano 12:5a33b5d39792 12 { "LPC812M101JDH16", 0x00008120, 4096, 16384, 1024, BINARY, 0x10000300 },
okano 12:5a33b5d39792 13 { "LPC812M101JD20", 0x00008121, 4096, 16384, 1024, BINARY, 0x10000300 },
okano 12:5a33b5d39792 14 { "LPC812M101JDH20", 0x00008122, 4096, 16384, 1024, BINARY, 0x10000300 },
k4zuki 42:2b40666d8177 15 ///added for LPC82x series
k4zuki 42:2b40666d8177 16 { "LPC824M201JHI33", 0x00008241, 8192, 32768, 1024, BINARY, 0x10000300 },
k4zuki 42:2b40666d8177 17 { "LPC822M101JHI33", 0x00008221, 4096, 16384, 1024, BINARY, 0x10000300 },
k4zuki 42:2b40666d8177 18 { "LPC824M201JDH20", 0x00008242, 8192, 32768, 1024, BINARY, 0x10000300 },
k4zuki 42:2b40666d8177 19 { "LPC822M101JDH20", 0x00008222, 4096, 16384, 1024, BINARY, 0x10000300 },
okano 44:568799eac6df 20 ///added for LPC176x series
okano 44:568799eac6df 21 { "LPC1769FBD100", 0x26113F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 },
okano 44:568799eac6df 22 { "LPC1768FBD100", 0x26013F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 },
okano 5:ff30f5b58617 23 };
okano 5:ff30f5b58617 24
okano 5:ff30f5b58617 25 target_param *find_target_param( char *device_id_string )
okano 5:ff30f5b58617 26 {
okano 5:ff30f5b58617 27 int id;
okano 44:568799eac6df 28
okano 5:ff30f5b58617 29 id = atoi( device_id_string );
okano 44:568799eac6df 30
okano 44:568799eac6df 31 for ( int i = 1; i < (sizeof( target_table ) / sizeof( target_param )); i++ ) {
okano 5:ff30f5b58617 32 if ( id == target_table[ i ].id )
okano 5:ff30f5b58617 33 return ( &(target_table[ i ]) );
okano 5:ff30f5b58617 34 }
okano 44:568799eac6df 35
okano 28:689c3880e0e4 36 // return ( target_table );
okano 28:689c3880e0e4 37 return ( NULL );
okano 5:ff30f5b58617 38 }
okano 26:a63e73885b21 39
okano 44:568799eac6df 40 int find_sector( int data_size, target_param *tpp )
okano 44:568799eac6df 41 {
okano 44:568799eac6df 42 switch ( tpp->sector_size ) {
okano 44:568799eac6df 43 case SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN :
okano 44:568799eac6df 44 if ( data_size <= (4096 * 16) ) {
okano 44:568799eac6df 45 return ( data_size / 4096 );
okano 44:568799eac6df 46 } else {
okano 44:568799eac6df 47 data_size -= (4096 * 16);
okano 44:568799eac6df 48 return ( (data_size / (4096 * 8)) + 16 );
okano 44:568799eac6df 49 }
okano 44:568799eac6df 50 //break;
okano 44:568799eac6df 51 default :
okano 44:568799eac6df 52 return ( data_size / tpp->sector_size );
okano 44:568799eac6df 53 //break;
okano 44:568799eac6df 54 }
okano 44:568799eac6df 55 }
okano 44:568799eac6df 56