X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Fcommand.h;h=c1dab4552eb9a55c26677ca3cbac1bb57645b28a;hp=ae9fd9ecd57ace1b407d295d7b953d82e931b372;hb=f217c730250832ae74a60b9d494111eac3763fd6;hpb=ccf5eca095c0c0bed2a25e945c3c3b48cf3b55c7 diff --git a/firmware/include/command.h b/firmware/include/command.h index ae9fd9e..c1dab45 100644 --- a/firmware/include/command.h +++ b/firmware/include/command.h @@ -14,7 +14,7 @@ //256 bytes, plus overhead //For chips with very little RAM. #define CMDDATALEN 0x104 -#warning Very little RAM. +//#warning Very little RAM. #endif #ifndef CMDDATALEN @@ -41,6 +41,8 @@ extern unsigned char silent; #define SETUP 0x10 #define START 0x20 #define STOP 0x21 +#define CALL 0x30 +#define EXEC 0x31 #define NOK 0x7E #define OK 0x7F @@ -56,6 +58,7 @@ extern unsigned char silent; #define MONITOR_IN 0xA2 #define MONITOR_SILENT 0xB0 +#define MONITOR_CONNECTED 0xB1 #define MONITOR_READBUF 0xC0 #define MONITOR_WRITEBUF 0xC1 @@ -72,7 +75,12 @@ extern unsigned char silent; #define OCT_CMP 0x90 #define OCT_RES 0x91 +#ifdef GCC #define WEAKDEF __attribute__ ((weak)) +#else +//Compiler doesn't support weak linking. :( +#define WEAKDEF +#endif //! Handle a plugin, weak-linked to error. extern int pluginhandle(unsigned char app, @@ -108,8 +116,14 @@ void txlong(unsigned long l); //! Transmit a word. void txword(unsigned int l); +//! Transmit a debug sequence of bytes +void debugbytes(const char *bytes, unsigned int len); //! Transmit a debug string. void debugstr(const char *str); +//! brief Debug a hex word string. +void debughex(u16 v); +//! brief Debug a hex long string. +void debughex32(u32 v); //! Delay for a count. void delay(unsigned int count); @@ -117,14 +131,37 @@ void delay(unsigned int count); void msdelay(unsigned int ms); +//! Prepare Timer A; call before using delay_ms or delay_us. +void prep_timer(); + +//! Delay for specified number of milliseconds (given 16 MHz clock) +void delay_ms( unsigned int ms ); + +//! Delay for specified number of microseconds (given 16 MHz clock) +void delay_us( unsigned int us ); + +//! Delay for specified number of clock ticks (16 MHz clock implies 62.5 ns per tick). +void delay_ticks( unsigned int num_ticks ); + + void monitorhandle(unsigned char, unsigned char, unsigned long); void spihandle(unsigned char, unsigned char, unsigned long); void i2chandle(unsigned char, unsigned char, unsigned long) WEAKDEF; void cchandle(unsigned char, unsigned char, unsigned long) WEAKDEF; 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); +void ejtaghandle(unsigned char, unsigned char, unsigned long); +WEAKDEF void jtagarm7tdmihandle(unsigned char app, unsigned char verb, unsigned long len); + +void jtag430x2handle(unsigned char app, unsigned char verb, unsigned long len); + +WEAKDEF void avrhandle(unsigned char app, + unsigned char verb, + unsigned long len); +WEAKDEF int smartcardhandle(unsigned char app, + unsigned char verb, + unsigned int len); + +WEAKDEF void pichandle( unsigned char app, + unsigned char verb, + unsigned long len );