--- /dev/null
+
+PORT=/dev/ttyUSB0
+BSL=tos-bsl --invert-reset --invert-test -c $(PORT) --speed=38400
+
+#mcu=msp430x1611
+mcu=msp430x1612
+
+#ldscript is wonky
+GCCINC=-T ldscripts/161x.x
+
+CC=msp430-gcc -g -mmcu=$(mcu) -DGCC $(GCCINC) -I include
+
+apps= apps/monitor/monitor.c apps/spi/spi.c apps/i2c/i2c.c apps/chipcon/chipcon.c apps/jtag/jtag.c apps/jtag/jtag430.c
+libs= lib/msp430f1612.c lib/command.c
+app=goodfet
+
+all: $(app).hex
+
+goodfet.hex: goodfet
+
+run:
+ ../../client/goodfet.msp430
+
+install: $(app).hex
+ $(BSL) -e -p $(app).hex
+ $(BSL) -P $(app).hex -r
+$(app): $(app).c $(libs) $(apps)
+$(app).hex: $(app)
+ msp430-objcopy goodfet -O ihex goodfet.hex
+m4s: $(app).hex
+ msp430-objdump -D -m msp430 $(app).hex | m4s init
+erase:
+ $(BSL) -e
+clean:
+ rm -f $(app)
+++ /dev/null
-
-PORT=/dev/ttyUSB0
-BSL=tos-bsl --invert-reset --invert-test -c $(PORT) --speed=38400
-
-#mcu=msp430x1611
-mcu=msp430x1612
-
-#ldscript is wonky
-GCCINC=-T ../ldscripts/161x.x
-
-CC=msp430-gcc -g -mmcu=$(mcu) -DGCC $(GCCINC) -I ../include
-
-apps= monitor/monitor.c spi/spi.c i2c/i2c.c chipcon/chipcon.c jtag/jtag.c jtag/jtag430.c
-libs= ../lib/msp430f1612.c ../lib/command.c
-app=goodfet
-
-all: $(app)
-
-goodfet.hex: goodfet
-
-run:
- ../../client/goodfet.msp430
-
-install: $(app)
- $(BSL) -e -p $(app).hex
- $(BSL) -P $(app).hex -r
-$(app): $(app).c $(libs) $(apps)
-$(app).hex: $(app)
- msp430-objcopy goodfet -O ihex goodfet.hex
-m4s: $(app).hex
- msp430-objdump -D -m msp430 $(app).hex | m4s init
-erase:
- $(BSL) -e
-clean:
- rm -f $(app)
+++ /dev/null
-//GOODFET Main File\r
-//Includes several applications.\r
-\r
-#include "platform.h"\r
-#include "command.h"\r
-#include "apps.h"\r
-\r
-#include <signal.h>\r
-#include <io.h>\r
-#include <iomacros.h>\r
-\r
-\r
-//LED on P1.0\r
-//IO on P5\r
-\r
-//! Initialize registers and all that jazz.\r
-void init(){\r
- volatile unsigned int i;\r
- WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer\r
- \r
- //LED and TX OUT\r
- PLEDDIR |= PLEDPIN;\r
- \r
- msp430_init_dco();\r
- msp430_init_uart();\r
- \r
- //Enable Interrupts.\r
- //eint();\r
-}\r
-\r
-//! Handle a command.\r
-void handle(unsigned char app,\r
- unsigned char verb,\r
- unsigned char len){\r
- switch(app){\r
- case MONITOR:\r
- monitorhandle(app,verb,len);\r
- break;\r
- case SPI:\r
- spihandle(app,verb,len);\r
- break;\r
- case I2C:\r
- i2chandle(app,verb,len);\r
- break;\r
- case CHIPCON:\r
- cchandle(app,verb,len);\r
- break;\r
- case JTAG:\r
- jtaghandle(app,verb,len);\r
- break;\r
- case JTAG430:\r
- jtag430handle(app,verb,len);\r
- break;\r
- default:\r
- txdata(app,NOK,0);\r
- break;\r
- }\r
-}\r
-\r
-//! Main loop.\r
-int main(void)\r
-{\r
- volatile unsigned int i;\r
- unsigned char app, verb, len;\r
- \r
- init();\r
- \r
- //Ready\r
- txdata(MONITOR,OK,0);\r
- \r
- //Command loop. There's no end!\r
- while(1){\r
- //Magic 3\r
- app=serial_rx();\r
- verb=serial_rx();\r
- len=serial_rx();\r
- \r
- //Read data, if any\r
- for(i=0;i<len;i++){\r
- cmddata[i]=serial_rx();\r
- }\r
- handle(app,verb,len);\r
- }\r
-}\r
-\r
--- /dev/null
+//GOODFET Main File\r
+//Includes several applications.\r
+\r
+#include "platform.h"\r
+#include "command.h"\r
+#include "apps.h"\r
+\r
+#include <signal.h>\r
+#include <io.h>\r
+#include <iomacros.h>\r
+\r
+\r
+//LED on P1.0\r
+//IO on P5\r
+\r
+//! Initialize registers and all that jazz.\r
+void init(){\r
+ volatile unsigned int i;\r
+ WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer\r
+ \r
+ //LED and TX OUT\r
+ PLEDDIR |= PLEDPIN;\r
+ \r
+ msp430_init_dco();\r
+ msp430_init_uart();\r
+ \r
+ //Enable Interrupts.\r
+ //eint();\r
+}\r
+\r
+//! Handle a command.\r
+void handle(unsigned char app,\r
+ unsigned char verb,\r
+ unsigned char len){\r
+ switch(app){\r
+ case MONITOR:\r
+ monitorhandle(app,verb,len);\r
+ break;\r
+ case SPI:\r
+ spihandle(app,verb,len);\r
+ break;\r
+ case I2C:\r
+ i2chandle(app,verb,len);\r
+ break;\r
+ case CHIPCON:\r
+ cchandle(app,verb,len);\r
+ break;\r
+ case JTAG:\r
+ jtaghandle(app,verb,len);\r
+ break;\r
+ case JTAG430:\r
+ jtag430handle(app,verb,len);\r
+ break;\r
+ default:\r
+ txdata(app,NOK,0);\r
+ break;\r
+ }\r
+}\r
+\r
+//! Main loop.\r
+int main(void)\r
+{\r
+ volatile unsigned int i;\r
+ unsigned char app, verb, len;\r
+ \r
+ init();\r
+ \r
+ //Ready\r
+ txdata(MONITOR,OK,0);\r
+ \r
+ //Command loop. There's no end!\r
+ while(1){\r
+ //Magic 3\r
+ app=serial_rx();\r
+ verb=serial_rx();\r
+ len=serial_rx();\r
+ \r
+ //Read data, if any\r
+ for(i=0;i<len;i++){\r
+ cmddata[i]=serial_rx();\r
+ }\r
+ handle(app,verb,len);\r
+ }\r
+}\r
+\r