Norimasa Okamoto / Mbed 2 deprecated emuISP

Dependencies:   mbed

Committer:
va009039
Date:
Sat Mar 12 09:34:38 2016 +0900
Revision:
2:e3c085ac77f1
Parent:
1:4ff199bddbc1
Child:
3:ccc673a10485
lpc810

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 2:e3c085ac77f1 1 // BaseEmuISP.h 2016/3/10
va009039 1:4ff199bddbc1 2 #pragma once
va009039 1:4ff199bddbc1 3 #include <string>
va009039 1:4ff199bddbc1 4 #include <vector>
va009039 1:4ff199bddbc1 5
va009039 2:e3c085ac77f1 6 typedef std::vector<int> vint_t;
va009039 2:e3c085ac77f1 7
va009039 2:e3c085ac77f1 8 enum Mode_t {
va009039 2:e3c085ac77f1 9 M_RESET = 0,
va009039 2:e3c085ac77f1 10 M_SYNC,
va009039 2:e3c085ac77f1 11 M_CMD,
va009039 2:e3c085ac77f1 12 M_CMD_W_DATA,
va009039 2:e3c085ac77f1 13 M_CMD_R_DATA,
va009039 2:e3c085ac77f1 14 M_CMD_J,
va009039 2:e3c085ac77f1 15 M_CMD_K,
va009039 2:e3c085ac77f1 16 M_CMD_N,
va009039 2:e3c085ac77f1 17 M_CMD_S,
va009039 2:e3c085ac77f1 18 };
va009039 1:4ff199bddbc1 19
va009039 2:e3c085ac77f1 20 enum ReturnCode_t {
va009039 2:e3c085ac77f1 21 CMD_SUCCESS = 0,
va009039 2:e3c085ac77f1 22 INVALID_COMMAND = 1,
va009039 2:e3c085ac77f1 23 SRC_ADDR_ERROR = 2,
va009039 2:e3c085ac77f1 24 DST_ADDR_ERROR = 3,
va009039 2:e3c085ac77f1 25 SRC_ADDR_NOT_MAPPED = 4,
va009039 2:e3c085ac77f1 26 DST_ADDR_NOT_MAPPED = 5,
va009039 2:e3c085ac77f1 27 COUNT_ERROR = 6,
va009039 2:e3c085ac77f1 28 INVALID_SECTOR = 7,
va009039 2:e3c085ac77f1 29 SECTOR_NOT_BLANK = 8,
va009039 2:e3c085ac77f1 30 SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION = 9,
va009039 2:e3c085ac77f1 31 COMPARE_ERROR = 10,
va009039 2:e3c085ac77f1 32 BUSY = 11,
va009039 2:e3c085ac77f1 33 PARAM_ERROR = 12,
va009039 2:e3c085ac77f1 34 ADDR_ERROR = 13,
va009039 2:e3c085ac77f1 35 ADDR_NOT_MAPPED = 14,
va009039 2:e3c085ac77f1 36 CMD_LOCKED = 15,
va009039 2:e3c085ac77f1 37 INVALID_CODE = 16,
va009039 2:e3c085ac77f1 38 INVALID_BAUD_RATE = 17,
va009039 2:e3c085ac77f1 39 INVALID_STOP_BIT = 18,
va009039 2:e3c085ac77f1 40 CODE_READ_PROTECTIN_ENABLED = 19,
va009039 2:e3c085ac77f1 41 };
va009039 1:4ff199bddbc1 42
va009039 1:4ff199bddbc1 43 class BaseEmuISP {
va009039 1:4ff199bddbc1 44 public:
va009039 1:4ff199bddbc1 45 void Reset();
va009039 1:4ff199bddbc1 46 void Poll();
va009039 1:4ff199bddbc1 47
va009039 1:4ff199bddbc1 48 protected:
va009039 2:e3c085ac77f1 49 virtual int PartID() { return 0x00008100; } // LPC810M021FN8
va009039 1:4ff199bddbc1 50 virtual void WriteData(int addr, int c) {}
va009039 1:4ff199bddbc1 51 virtual int ReadData(int addr) { return 0; }
va009039 1:4ff199bddbc1 52 virtual void CopyData(int dst, int src, int count) {}
va009039 2:e3c085ac77f1 53 virtual bool Compare(int addr1, int addr2, int count) { return true; }
va009039 2:e3c085ac77f1 54 virtual bool Prepare(int sector) { return true; }
va009039 2:e3c085ac77f1 55 virtual bool Erase(int sector) { return true; }
va009039 2:e3c085ac77f1 56 virtual bool Blank(int sector) { return true; }
va009039 1:4ff199bddbc1 57 virtual int Getch() = 0;
va009039 1:4ff199bddbc1 58 virtual void Putch(int c) = 0;
va009039 1:4ff199bddbc1 59 virtual void DebugPutch(int c) { return; }
va009039 1:4ff199bddbc1 60
va009039 1:4ff199bddbc1 61 private:
va009039 1:4ff199bddbc1 62 bool sync();
va009039 2:e3c085ac77f1 63 ReturnCode_t cmd(const char* s);
va009039 2:e3c085ac77f1 64 ReturnCode_t cmd_u(vint_t &param);
va009039 2:e3c085ac77f1 65 ReturnCode_t cmd_b(vint_t &param);
va009039 2:e3c085ac77f1 66 ReturnCode_t cmd_a(vint_t &param);
va009039 2:e3c085ac77f1 67 ReturnCode_t cmd_w(vint_t &param);
va009039 2:e3c085ac77f1 68 ReturnCode_t cmd_r(vint_t &param);
va009039 2:e3c085ac77f1 69 ReturnCode_t cmd_p(vint_t &param);
va009039 2:e3c085ac77f1 70 ReturnCode_t cmd_c(vint_t &param);
va009039 2:e3c085ac77f1 71 ReturnCode_t cmd_g(vint_t &param);
va009039 2:e3c085ac77f1 72 ReturnCode_t cmd_e(vint_t &param);
va009039 2:e3c085ac77f1 73 ReturnCode_t cmd_i(vint_t &param);
va009039 2:e3c085ac77f1 74 ReturnCode_t cmd_j(vint_t &param);
va009039 2:e3c085ac77f1 75 ReturnCode_t cmd_k(vint_t &param);
va009039 2:e3c085ac77f1 76 ReturnCode_t cmd_m(vint_t &param);
va009039 2:e3c085ac77f1 77 ReturnCode_t cmd_n(vint_t &param);
va009039 2:e3c085ac77f1 78 ReturnCode_t cmd_s(vint_t &param);
va009039 1:4ff199bddbc1 79 void putln(const char *s);
va009039 1:4ff199bddbc1 80 bool line_proc();
va009039 1:4ff199bddbc1 81 void debugPrintf(const char *format, ...);
va009039 2:e3c085ac77f1 82 Mode_t mode;
va009039 1:4ff199bddbc1 83 int seq;
va009039 1:4ff199bddbc1 84 bool echoFlag;
va009039 1:4ff199bddbc1 85 bool lockFlag;
va009039 1:4ff199bddbc1 86 std::string line;
va009039 1:4ff199bddbc1 87 int freq;
va009039 1:4ff199bddbc1 88 int addr;
va009039 1:4ff199bddbc1 89 int count;
va009039 1:4ff199bddbc1 90 };
va009039 1:4ff199bddbc1 91