ISP example program.

Dependencies:   SLCD mbed USBLocalFileSystem

/media/uploads/va009039/lpc81isp-360x240.jpg

FRDM-KL46ZLPC810
UART RXDPTE23p2(P0_4)
UART TXDPTE22p8(P0_0)
nRESETD6p1(P0_5)
nISPD8p5(P0_1)
GNDGNDp7
3.3VP3V3p6

Copy binary image to the disk called LPC81ISP.
Push sw1 or sw3, start write to LPC810 flash.

Committer:
va009039
Date:
Sat Feb 15 10:15:42 2014 +0000
Revision:
0:ad2b1fc04955
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:ad2b1fc04955 1
va009039 0:ad2b1fc04955 2 // from lpcsp.c http://elm-chan.org/works/sp78k/lpcsp.zip
va009039 0:ad2b1fc04955 3
va009039 0:ad2b1fc04955 4 /* Create an uuencoded asciz string from a byte array */
va009039 0:ad2b1fc04955 5 void uuencode (
va009039 0:ad2b1fc04955 6 const void* src, /* Pointer to the input data */
va009039 0:ad2b1fc04955 7 int srcsize, /* Size of input data (0 to 45) */
va009039 0:ad2b1fc04955 8 char* dst /* Pointer to the output buffer */
va009039 0:ad2b1fc04955 9 )
va009039 0:ad2b1fc04955 10 {
va009039 0:ad2b1fc04955 11 const unsigned char *bin = (const unsigned char*)src;
va009039 0:ad2b1fc04955 12 unsigned char c1, c2, c3;
va009039 0:ad2b1fc04955 13 char c;
va009039 0:ad2b1fc04955 14 int cc;
va009039 0:ad2b1fc04955 15
va009039 0:ad2b1fc04955 16
va009039 0:ad2b1fc04955 17 if (srcsize >= 0 || srcsize <= 45) {
va009039 0:ad2b1fc04955 18 c = srcsize + 0x20;
va009039 0:ad2b1fc04955 19 *dst++ = (c == ' ') ? '`' : c;
va009039 0:ad2b1fc04955 20
va009039 0:ad2b1fc04955 21 for (cc = 1; srcsize > 0; srcsize -= 3, cc += 4) {
va009039 0:ad2b1fc04955 22 c1 = *bin++;
va009039 0:ad2b1fc04955 23 c2 = c3 = 0;
va009039 0:ad2b1fc04955 24 if (srcsize >= 2) {
va009039 0:ad2b1fc04955 25 c2 = *bin++;
va009039 0:ad2b1fc04955 26 if (srcsize >= 3) {
va009039 0:ad2b1fc04955 27 c3 = *bin++;
va009039 0:ad2b1fc04955 28 }
va009039 0:ad2b1fc04955 29 }
va009039 0:ad2b1fc04955 30 c = (c1 >> 2) + 0x20;
va009039 0:ad2b1fc04955 31 *dst++ = (c == ' ') ? '`' : c;
va009039 0:ad2b1fc04955 32 c = ((c1 & 3) << 4) + (c2 >> 4) + 0x20;
va009039 0:ad2b1fc04955 33 *dst++ = (c == ' ') ? '`' : c;
va009039 0:ad2b1fc04955 34 c = ((c2 & 15) << 2) + (c3 >> 6) + 0x20;
va009039 0:ad2b1fc04955 35 *dst++ = (c == ' ') ? '`' : c;
va009039 0:ad2b1fc04955 36 c = (c3 & 63) + 0x20;
va009039 0:ad2b1fc04955 37 *dst++ = (c == ' ') ? '`' : c;
va009039 0:ad2b1fc04955 38 }
va009039 0:ad2b1fc04955 39 }
va009039 0:ad2b1fc04955 40 *dst = 0;
va009039 0:ad2b1fc04955 41 }