Fixed python client buffering issues, minor changes to SPI app.
[goodfet] / firmware / include / command.h
1 /*! \file command.h
2   \author Travis Goodspeed
3   \brief Command codes and buffers.
4 */
5
6
7 //Types
8 #define u8 unsigned char
9 #define u16 unsigned int
10 #define u32 unsigned long
11
12 #ifndef CMDDATALEN
13 //512 bytes
14 #define CMDDATALEN 0x204
15 //4k
16 //#define CMDDATALEN 0x1004
17 #endif
18
19 //! Global data buffer.
20 extern unsigned char cmddata[CMDDATALEN];
21 extern unsigned char silent;
22
23 #define cmddataword ((unsigned int*) cmddata)
24 #define cmddatalong ((unsigned long*) cmddata)
25 #define memorybyte ((unsigned char*) 0)
26 #define memoryword ((unsigned int*) 0)
27
28 // Global Commands
29 #define READ  0x00
30 #define WRITE 0x01
31 #define PEEK  0x02
32 #define POKE  0x03
33 #define SETUP 0x10
34 #define START 0x20
35 #define STOP  0x21
36 #define NOK   0x7E
37 #define OK    0x7F
38
39 #define DEBUGSTR 0xFF
40
41 // Monitor Commands
42 #define MONITOR_CHANGE_BAUD 0x80
43 #define MONITOR_RAM_PATTERN 0x90
44 #define MONITOR_RAM_DEPTH 0x91
45
46 #define MONITOR_DIR 0xA0
47 #define MONITOR_OUT 0xA1
48 #define MONITOR_IN  0xA2
49
50 #define MONITOR_SILENT 0xB0
51
52 #define MONITOR_READBUF 0xC0
53 #define MONITOR_WRITEBUF 0xC1
54 #define MONITOR_SIZEBUF 0xC2
55
56
57
58
59 //SPI commands
60 #define SPI_JEDEC 0x80
61 #define SPI_ERASE 0x81
62
63 //OCT commands
64 #define OCT_CMP 0x90
65 #define OCT_RES 0x91
66
67
68 //! Handle a plugin, weak-linked to error.
69 extern int pluginhandle(unsigned char app,
70                         unsigned char verb,
71                         unsigned int len)
72   __attribute__ ((weak));
73
74
75 //! Handle a command.  Defined in goodfet.c
76 void handle(unsigned char app,
77             unsigned char verb,
78             unsigned long len);
79 //! Transmit a header.
80 void txhead(unsigned char app,
81             unsigned char verb,
82             unsigned long len);
83 //! Transmit data.
84 void txdata(unsigned char app,
85             unsigned char verb,
86             unsigned long len);
87 //! Transmit a string.
88 void txstring(unsigned char app,
89               unsigned char verb,
90               const char *str);
91
92 //! Receive a long.
93 unsigned long rxlong();
94 //! Receive a word.
95 unsigned int rxword();
96
97 //! Transmit a long.
98 void txlong(unsigned long l);
99 //! Transmit a word.
100 void txword(unsigned int l);
101
102 //! Transmit a debug string.
103 void debugstr(const char *str);
104
105 //! Delay for a count.
106 void delay(unsigned int count);
107 //! MSDelay
108 void msdelay(unsigned int ms);
109
110
111 void monitorhandle(unsigned char, unsigned char, unsigned long);
112 void spihandle(unsigned char, unsigned char, unsigned long);
113 void i2chandle(unsigned char, unsigned char, unsigned long);
114 void cchandle(unsigned char, unsigned char, unsigned long);
115 void jtaghandle(unsigned char, unsigned char, unsigned long);
116 void jtag430handle(unsigned char, unsigned char, unsigned long);
117 void jtag430x2handle(unsigned char app, unsigned char verb,
118                      unsigned long len);
119 void avrhandle(unsigned char app,
120                unsigned char verb,
121                unsigned long len);