Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DirectoryList MODSERIAL mbed
Fork of ika_shouyu_poppoyaki by
main.cpp@47:e7d395119a63, 2015-01-06 (annotated)
- Committer:
 - okano
 - Date:
 - Tue Jan 06 11:05:29 2015 +0000
 - Revision:
 - 47:e7d395119a63
 - Parent:
 - 46:fe8ca451abcb
 - Child:
 - 48:99cfe3a929ea
 
progress display (during writing/verifying) option added
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| okano | 11:8dfc3217d1ca | 1 | /** | 
| okano | 11:8dfc3217d1ca | 2 | * Sample of ISP operation for NXP MCUs | 
| okano | 11:8dfc3217d1ca | 3 | * | 
| okano | 14:a7b9f74fb856 | 4 | * @author Tedd OKANO | 
| okano | 47:e7d395119a63 | 5 | * @version 1.1.1 | 
| okano | 47:e7d395119a63 | 6 | * @date Jan-2015 | 
| okano | 26:a63e73885b21 | 7 | * | 
| okano | 26:a63e73885b21 | 8 | * This program programs MCU flash memory through UART. It uses | 
| okano | 14:a7b9f74fb856 | 9 | * "In-System Programming (ISP)" interface in target MCU (NXP LPC micro- | 
| okano | 14:a7b9f74fb856 | 10 | * controllers). | 
| okano | 26:a63e73885b21 | 11 | * | 
| okano | 26:a63e73885b21 | 12 | * The ISP is done by PC and serial cable normally. The ISP protocol is | 
| okano | 14:a7b9f74fb856 | 13 | * executed software on a PC. The software reads a data file and transfers | 
| okano | 26:a63e73885b21 | 14 | * the data with the ISP protocol. | 
| okano | 26:a63e73885b21 | 15 | * This program does same process of that. The mbed perform the function like | 
| okano | 14:a7b9f74fb856 | 16 | * "FlashMagic" and "lpc21isp". | 
| okano | 26:a63e73885b21 | 17 | * (This program not just copies the binary but also insert 4 byte checksum at | 
| okano | 14:a7b9f74fb856 | 18 | * address 0x1C.) | 
| okano | 26:a63e73885b21 | 19 | * | 
| okano | 46:fe8ca451abcb | 20 | * This program supports LPC1114, LPC81x, LPC82x and LPC1768/1769. | 
| okano | 11:8dfc3217d1ca | 21 | */ | 
| okano | 11:8dfc3217d1ca | 22 | |
| okano | 5:ff30f5b58617 | 23 | #include "mbed.h" | 
| okano | 30:e0d7524661ca | 24 | #include "isp.h" | 
| okano | 22:bd98a782fba6 | 25 | #include "serial_utilities.h" | 
| okano | 25:33cb5ad8ae24 | 26 | #include "_user_settings.h" | 
| okano | 21:e149d0bdbf4a | 27 | |
| okano | 30:e0d7524661ca | 28 | |
| okano | 2:8d75eb0ecd20 | 29 | LocalFileSystem local( "local" ); | 
| okano | 7:815366f003ee | 30 | |
| okano | 19:7a7381e78025 | 31 | |
| okano | 35:0b434ef4af49 | 32 | #define SUMMARY_MESSAGE_FAIL "** The data could not be " WHAT_WAS_DONE " :(" | 
| okano | 35:0b434ef4af49 | 33 | #define SUMMARY_MESSAGE_SUCCESS "** The data has been " WHAT_WAS_DONE " successflly :)" | 
| okano | 35:0b434ef4af49 | 34 | |
| okano | 7:815366f003ee | 35 | int main() | 
| okano | 7:815366f003ee | 36 | { | 
| okano | 28:689c3880e0e4 | 37 | int err; | 
| okano | 30:e0d7524661ca | 38 | |
| okano | 47:e7d395119a63 | 39 | printf( "\r\n\r\n\r\nmbed ISP program : programming LPC device from mbed (v1.1.1)\r\n" ); | 
| okano | 30:e0d7524661ca | 40 | |
| okano | 28:689c3880e0e4 | 41 | err = isp_flash_write( SOURCE_FILE ); | 
| okano | 30:e0d7524661ca | 42 | |
| k4zuki | 42:2b40666d8177 | 43 | printf( "\r\n %d: %s\r\n\r\n",err, | 
| okano | 28:689c3880e0e4 | 44 | err ? | 
| okano | 35:0b434ef4af49 | 45 | SUMMARY_MESSAGE_FAIL : | 
| okano | 35:0b434ef4af49 | 46 | SUMMARY_MESSAGE_SUCCESS | 
| okano | 8:b220fadbb3d8 | 47 | ); | 
| okano | 26:a63e73885b21 | 48 | |
| okano | 28:689c3880e0e4 | 49 | if ( err ) | 
| okano | 19:7a7381e78025 | 50 | error( " ** ISP failed\r\n" ); | 
| okano | 26:a63e73885b21 | 51 | |
| okano | 14:a7b9f74fb856 | 52 | #ifdef AUTO_PROGRAM_START | 
| okano | 31:1a4d59d7bd72 | 53 | |
| okano | 30:e0d7524661ca | 54 | start_target_in_normal_mode( TARGET_OPERATION_BAUD_RATE ); | 
| okano | 16:cac2348cfcfb | 55 | |
| okano | 41:74b9ff21098f | 56 | printf( " ** The program programmed in flash has been started!!\r\n" ); | 
| okano | 35:0b434ef4af49 | 57 | |
| okano | 14:a7b9f74fb856 | 58 | #endif | 
| okano | 14:a7b9f74fb856 | 59 | |
| okano | 16:cac2348cfcfb | 60 | printf( " (now the mbed is working in \"serial through mode\")\r\n\r\n" ); | 
| okano | 35:0b434ef4af49 | 61 | |
| okano | 30:e0d7524661ca | 62 | start_success_indicator(); | 
| okano | 21:e149d0bdbf4a | 63 | usb_serial_bridge_operation(); // doesn't return. infinite loop in this function | 
| okano | 20:98d7b5878e3e | 64 | } | 
| okano | 16:cac2348cfcfb | 65 | |
| okano | 20:98d7b5878e3e | 66 | 
