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