2 \author Travis Goodspeed
3 \brief Command codes and buffers.
8 #define u8 unsigned char
9 #define u16 unsigned int
10 #define u32 unsigned long
14 //256 bytes, plus overhead
15 //For chips with very little RAM.
16 #define CMDDATALEN 0x104
17 //#warning Very little RAM.
22 #define CMDDATALEN 0x204
24 //#define CMDDATALEN 0x1004
27 //! Global data buffer.
28 extern unsigned char cmddata[CMDDATALEN];
29 extern unsigned char silent;
31 #define cmddataword ((unsigned int*) cmddata)
32 #define cmddatalong ((unsigned long*) cmddata)
33 #define memorybyte ((unsigned char*) 0)
34 #define memoryword ((unsigned int*) 0)
54 #define SPI_JEDEC 0x80
55 #define SPI_ERASE 0x81
56 #define SPI_RW_EM260 0x82
63 #define WEAKDEF __attribute__ ((weak))
65 //Compiler doesn't support weak linking. :(
69 //! Handle a plugin, weak-linked to error.
70 extern int pluginhandle(unsigned char app,
76 //! Handle a command. Defined in goodfet.c
77 void handle(unsigned char app,
80 //! Transmit a header.
81 void txhead(unsigned char app,
85 void txdata(unsigned char app,
88 //! Transmit a string.
89 void txstring(unsigned char app,
94 unsigned long rxlong();
96 unsigned int rxword();
99 void txlong(unsigned long l);
101 void txword(unsigned int l);
103 //! Transmit a debug sequence of bytes
104 void debugbytes(const char *bytes, unsigned int len);
105 //! Transmit a debug string.
106 void debugstr(const char *str);
107 //! brief Debug a hex word string.
108 void debughex(u16 v);
109 //! brief Debug a hex long string.
110 void debughex32(u32 v);
112 //! Delay for a count.
113 void delay(unsigned int count);
115 void msdelay(unsigned int ms);
118 //! Prepare Timer B; call before using delay_ms or delay_us.
121 //! Delay for specified number of milliseconds (given 16 MHz clock)
122 void delay_ms( unsigned int ms );
124 //! Delay for specified number of microseconds (given 16 MHz clock)
125 void delay_us( unsigned int us );
127 //! Delay for specified number of clock ticks (16 MHz clock implies 62.5 ns per tick).
128 void delay_ticks( unsigned int num_ticks );
131 void monitorhandle(unsigned char, unsigned char, unsigned long);
132 WEAKDEF void spihandle(unsigned char, unsigned char, unsigned long);
133 WEAKDEF void i2chandle(unsigned char, unsigned char, unsigned long);
134 WEAKDEF void cchandle(unsigned char, unsigned char, unsigned long);
135 WEAKDEF void jtaghandle(unsigned char, unsigned char, unsigned long);
136 WEAKDEF void jtag430handle(unsigned char, unsigned char, unsigned long);
137 WEAKDEF void ejtaghandle(unsigned char, unsigned char, unsigned long);
138 WEAKDEF void jtagarm7tdmihandle(unsigned char, unsigned char, unsigned long);
139 WEAKDEF void xscalehandle(unsigned char, unsigned char, unsigned long);
141 WEAKDEF void jtag430x2handle(unsigned char, unsigned char, unsigned long);
143 WEAKDEF void nrfhandle(unsigned char,
146 WEAKDEF void ccspihandle(unsigned char,
149 WEAKDEF void avrhandle(unsigned char app,
152 WEAKDEF int smartcardhandle(unsigned char app,
156 WEAKDEF void pichandle( unsigned char app,
160 WEAKDEF void adchandle( unsigned char app, unsigned char verb, unsigned long len );