ISP example program.
Dependencies: SLCD mbed USBLocalFileSystem
FRDM-KL46Z | LPC810 | |
---|---|---|
UART RXD | PTE23 | p2(P0_4) |
UART TXD | PTE22 | p8(P0_0) |
nRESET | D6 | p1(P0_5) |
nISP | D8 | p5(P0_1) |
GND | GND | p7 |
3.3V | P3V3 | p6 |
Copy binary image to the disk called LPC81ISP.
Push sw1 or sw3, start write to LPC810 flash.
utils.cpp@2:eafc1c6787c7, 2014-05-04 (annotated)
- Committer:
- va009039
- Date:
- Sun May 04 00:36:04 2014 +0000
- Revision:
- 2:eafc1c6787c7
- Parent:
- src/utils.cpp@0:ad2b1fc04955
update USBLocalFileSystem library.
Who changed what in which revision?
User | Revision | Line number | New 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 | } |