X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Fcommand.h;h=4eda2177801b79107923ca97a2b2f2471a23279d;hp=f91eded040d6efa509aa5917797804912e5ba907;hb=e2a75fc68bc3cedaadb2db57b9e579a0f4468380;hpb=aa1ad64b8f1a87590c9a94d32a1561bca33e843c diff --git a/firmware/include/command.h b/firmware/include/command.h index f91eded..4eda217 100644 --- a/firmware/include/command.h +++ b/firmware/include/command.h @@ -1,9 +1,27 @@ -// Command handling functions. +/*! \file command.h + \author Travis Goodspeed + \brief Command codes and buffers. +*/ + + +//Types +#define u8 unsigned char +#define u16 unsigned int +#define u32 unsigned long + + +#ifndef CMDDATALEN +#define CMDDATALEN 0x204 +#endif //! Global data buffer. -extern unsigned char cmddata[256]; +extern unsigned char cmddata[CMDDATALEN]; +extern unsigned char silent; + #define cmddataword ((unsigned int*) cmddata) +#define cmddatalong ((unsigned long*) cmddata) #define memorybyte ((unsigned char*) 0) +#define memoryword ((unsigned int*) 0) // Global Commands #define READ 0x00 @@ -16,15 +34,86 @@ extern unsigned char cmddata[256]; #define NOK 0x7E #define OK 0x7F +#define DEBUGSTR 0xFF + +// Monitor Commands +#define MONITOR_CHANGE_BAUD 0x80 +#define MONITOR_RAM_PATTERN 0x90 +#define MONITOR_RAM_DEPTH 0x91 + +#define MONITOR_DIR 0xA0 +#define MONITOR_OUT 0xA1 +#define MONITOR_IN 0xA2 + +#define MONITOR_SILENT 0xB0 + +#define MONITOR_READBUF 0xC0 +#define MONITOR_WRITEBUF 0xC1 +#define MONITOR_SIZEBUF 0xC2 + + + + +//SPI commands +#define SPI_JEDEC 0x80 +#define SPI_ERASE 0x81 + +//OCT commands +#define OCT_CMP 0x90 +#define OCT_RES 0x91 + + +//! Handle a plugin, weak-linked to error. +extern int pluginhandle(unsigned char app, + unsigned char verb, + unsigned int len) + __attribute__ ((weak)); + + //! Handle a command. Defined in goodfet.c void handle(unsigned char app, unsigned char verb, - unsigned char len); - + unsigned long len); +//! Transmit a header. +void txhead(unsigned char app, + unsigned char verb, + unsigned long len); //! Transmit data. void txdata(unsigned char app, unsigned char verb, - unsigned char len); + unsigned long len); +//! Transmit a string. +void txstring(unsigned char app, + unsigned char verb, + const char *str); + +//! Receive a long. +unsigned long rxlong(); +//! Receive a word. +unsigned int rxword(); + +//! Transmit a long. +void txlong(unsigned long l); +//! Transmit a word. +void txword(unsigned int l); -//! Delay +//! Transmit a debug string. +void debugstr(const char *str); + +//! Delay for a count. void delay(unsigned int count); +//! MSDelay +void msdelay(unsigned int ms); + + +void monitorhandle(unsigned char, unsigned char, unsigned long); +void spihandle(unsigned char, unsigned char, unsigned long); +void i2chandle(unsigned char, unsigned char, unsigned long); +void cchandle(unsigned char, unsigned char, unsigned long); +void jtaghandle(unsigned char, unsigned char, unsigned long); +void jtag430handle(unsigned char, unsigned char, unsigned long); +void jtag430x2handle(unsigned char app, unsigned char verb, + unsigned long len); +void avrhandle(unsigned char app, + unsigned char verb, + unsigned long len);