X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Fcommand.h;h=0b244ab064c07d968f850c86cd8e4878d546cd79;hp=4eda2177801b79107923ca97a2b2f2471a23279d;hb=e1fac2e62056841eeb482a001563ce981dd54d36;hpb=e2a75fc68bc3cedaadb2db57b9e579a0f4468380 diff --git a/firmware/include/command.h b/firmware/include/command.h index 4eda217..0b244ab 100644 --- a/firmware/include/command.h +++ b/firmware/include/command.h @@ -10,8 +10,18 @@ #define u32 unsigned long +#ifdef msp430x2274 +//256 bytes, plus overhead +//For chips with very little RAM. +#define CMDDATALEN 0x104 +//#warning Very little RAM. +#endif + #ifndef CMDDATALEN +//512 bytes #define CMDDATALEN 0x204 +//4k +//#define CMDDATALEN 0x1004 #endif //! Global data buffer. @@ -31,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 @@ -62,12 +74,18 @@ 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, unsigned char verb, unsigned int len) - __attribute__ ((weak)); + WEAKDEF; //! Handle a command. Defined in goodfet.c @@ -99,6 +117,8 @@ void txword(unsigned int l); //! Transmit a debug string. void debugstr(const char *str); +//! brief Debug a hex word string. +void debughex(u16 v); //! Delay for a count. void delay(unsigned int count); @@ -108,12 +128,18 @@ 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 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 ejtaghandle(unsigned char, unsigned char, unsigned long); +void jtagarm7tdmihandle(unsigned char app, unsigned char verb, unsigned long len); + +void jtag430x2handle(unsigned char app, unsigned char verb, unsigned long len); + void avrhandle(unsigned char app, unsigned char verb, unsigned long len); +int smartcardhandle(unsigned char app, + unsigned char verb, + unsigned int len);