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
target_table.cpp@44:568799eac6df, 2014-12-10 (annotated)
- 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?
User | Revision | Line number | New 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 |