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:
Sun Feb 16 12:56:12 2014 +0000
Revision:
1:cccfc461c61f
Parent:
0:ad2b1fc04955
add virtual COM.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:ad2b1fc04955 1 #pragma once
va009039 0:ad2b1fc04955 2
va009039 0:ad2b1fc04955 3 template<class K,class T>
va009039 0:ad2b1fc04955 4 class mymap {
va009039 0:ad2b1fc04955 5 struct mypair {
va009039 0:ad2b1fc04955 6 K first;
va009039 0:ad2b1fc04955 7 T second;
va009039 0:ad2b1fc04955 8 };
va009039 0:ad2b1fc04955 9 public:
va009039 0:ad2b1fc04955 10 mymap() {
va009039 0:ad2b1fc04955 11 m_size = 0;
va009039 0:ad2b1fc04955 12 }
va009039 0:ad2b1fc04955 13 T& operator[](const K& key) {
va009039 0:ad2b1fc04955 14 int it;
va009039 0:ad2b1fc04955 15 if (count(key) == 0) {
va009039 0:ad2b1fc04955 16 it = insert(key, 0);
va009039 0:ad2b1fc04955 17 } else {
va009039 0:ad2b1fc04955 18 it = find(key);
va009039 0:ad2b1fc04955 19 }
va009039 0:ad2b1fc04955 20 return m_buf[it].second;
va009039 0:ad2b1fc04955 21 }
va009039 0:ad2b1fc04955 22 bool empty() { return m_size == 0 ? true : false; }
va009039 0:ad2b1fc04955 23 int size() { return m_size; }
va009039 0:ad2b1fc04955 24 void clear() { m_size = 0; }
va009039 0:ad2b1fc04955 25 int count(K key) {
va009039 0:ad2b1fc04955 26 for(int i = 0; i < m_size; i++) {
va009039 0:ad2b1fc04955 27 if (m_buf[i].first == key) {
va009039 0:ad2b1fc04955 28 return 1;
va009039 0:ad2b1fc04955 29 }
va009039 0:ad2b1fc04955 30 }
va009039 0:ad2b1fc04955 31 return 0;
va009039 0:ad2b1fc04955 32 }
va009039 0:ad2b1fc04955 33 K getKey(int index) {
va009039 0:ad2b1fc04955 34 return m_buf[index].first;
va009039 0:ad2b1fc04955 35 }
va009039 0:ad2b1fc04955 36
va009039 0:ad2b1fc04955 37 private:
va009039 0:ad2b1fc04955 38 int find(K key) {
va009039 0:ad2b1fc04955 39 for(int i = 0; i < m_size; i++) {
va009039 0:ad2b1fc04955 40 if (m_buf[i].first == key) {
va009039 0:ad2b1fc04955 41 return i;
va009039 0:ad2b1fc04955 42 }
va009039 0:ad2b1fc04955 43 }
va009039 0:ad2b1fc04955 44 return -1;
va009039 0:ad2b1fc04955 45 }
va009039 0:ad2b1fc04955 46 int insert(K key, T value) {
va009039 0:ad2b1fc04955 47 int it = find(key);
va009039 0:ad2b1fc04955 48 if (it != -1) {
va009039 0:ad2b1fc04955 49 m_buf[it].second = value;
va009039 0:ad2b1fc04955 50 return it;
va009039 0:ad2b1fc04955 51 }
va009039 0:ad2b1fc04955 52 mypair* new_buf = new mypair[m_size+1];
va009039 0:ad2b1fc04955 53 if (m_size > 0) {
va009039 0:ad2b1fc04955 54 for(int i = 0; i < m_size; i++) {
va009039 0:ad2b1fc04955 55 new_buf[i] = m_buf[i];
va009039 0:ad2b1fc04955 56 }
va009039 0:ad2b1fc04955 57 delete[] m_buf;
va009039 0:ad2b1fc04955 58 }
va009039 0:ad2b1fc04955 59 m_buf = new_buf;
va009039 0:ad2b1fc04955 60 it = m_size++;
va009039 0:ad2b1fc04955 61 m_buf[it].first = key;
va009039 0:ad2b1fc04955 62 m_buf[it].second = value;
va009039 0:ad2b1fc04955 63 return it;
va009039 0:ad2b1fc04955 64 }
va009039 0:ad2b1fc04955 65
va009039 0:ad2b1fc04955 66 int m_size;
va009039 0:ad2b1fc04955 67 mypair *m_buf;
va009039 0:ad2b1fc04955 68 };