8ce61087de417c42ae3c6c7b029dad5c09f05647
[goodfet] / firmware / goodfet.c
1 //GOODFET Main File\r
2 //Includes several applications.\r
3 \r
4 #include "platform.h"\r
5 #include "command.h"\r
6 #include "apps.h"\r
7 \r
8 \r
9 \r
10 //LED on P1.0\r
11 //IO on P5\r
12 \r
13 //! Initialize registers and all that jazz.\r
14 void init(){\r
15   WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer\r
16   \r
17   //LED and TX OUT\r
18   PLEDDIR |= PLEDPIN;\r
19   \r
20   msp430_init_dco();\r
21   msp430_init_uart();\r
22   \r
23   \r
24   \r
25   \r
26   //Enable Interrupts.\r
27   //eint();\r
28 }\r
29 \r
30 //! Handle a command.\r
31 void handle(unsigned char app,\r
32             unsigned char verb,\r
33             unsigned char len){\r
34   switch(app){\r
35   case MONITOR:\r
36     monitorhandle(app,verb,len);\r
37     break;\r
38   case SPI:\r
39     spihandle(app,verb,len);\r
40     break;\r
41   case I2C:\r
42     i2chandle(app,verb,len);\r
43     break;\r
44   case CHIPCON:\r
45     cchandle(app,verb,len);\r
46     break;\r
47   case JTAG:\r
48     jtaghandle(app,verb,len);\r
49     break;\r
50   case JTAG430:\r
51     jtag430handle(app,verb,len);\r
52     break;\r
53   default:\r
54     txdata(app,NOK,0);\r
55     break;\r
56   }\r
57 }\r
58 \r
59 //! Main loop.\r
60 int main(void)\r
61 {\r
62   volatile unsigned int i;\r
63   unsigned char app, verb, len;\r
64   \r
65   init();\r
66   \r
67   \r
68   //Ready\r
69   //txdata(MONITOR,OK,0);\r
70   //while (1){\r
71   //  txdata(0xFF,0xff,0x0);\r
72   //  delay(1000);\r
73   //}\r
74   //delay(0xffff);\r
75   //while(*((int*)0x1001));\r
76   \r
77   //while(1)\r
78   //  txdata(0xFF,0xFF,0);\r
79   \r
80   txstring(MONITOR,OK,"http://goodfet.sf.net/");\r
81   \r
82   //Command loop.  There's no end!\r
83   while(1){\r
84     //Magic 3\r
85     app=serial_rx();\r
86     verb=serial_rx();\r
87     len=serial_rx();\r
88     \r
89     //Read data, if any\r
90     for(i=0;i<len;i++){\r
91       cmddata[i]=serial_rx();\r
92     }\r
93     handle(app,verb,len);\r
94   }\r
95 }\r
96 \r