Forgot to explicitly init silent=0.
[goodfet] / firmware / apps / monitor / monitor.c
index ab6f8a4..4f36833 100644 (file)
@@ -7,6 +7,11 @@
 #include "platform.h"
 #include "monitor.h"
 #include "builddate.h"
+#if (platform == tilaunchpad)
+#include <setjmp.h>
+extern jmp_buf warmstart;
+
+#endif
 
 #define MONITOR_APP
 
@@ -46,8 +51,8 @@ app_t const monitor_app = {
 
 //! Handles a monitor command.
 void monitor_handle_fn(uint8_t const app,
-                                          uint8_t const verb,
-                                          uint32_t const len)
+                      uint8_t const verb,
+                      uint32_t const len)
 {
        int i;
 
@@ -58,9 +63,10 @@ void monitor_handle_fn(uint8_t const app,
                break;
 
        case MONITOR_ECHO:
-               //Echo back the same buffer.
-               txdata(app,verb,len);
-               break;
+         //Echo back the same buffer.
+         debugstr("About to monitor echo.");
+         txdata(app,verb,len);
+         break;
 
        case MONITOR_LIST_APPS:
                // transmit firmware build date
@@ -78,14 +84,26 @@ void monitor_handle_fn(uint8_t const app,
                break;
 
        case PEEK:
+         #ifdef MSP430
                cmddata[0]=memorybyte[cmddataword[0]];
+          #else
+               debugstr("Monitor peeks are unsupported on this platform.");
+               debughex(cmddataword[0]);
+               cmddata[0]=0x00;
+         #endif
                txdata(app,verb,1);
                break;
 
        case POKE:
+         #ifdef MSP430
                //Todo, make word or byte.
                memorybyte[cmddataword[0]] = cmddata[2];
                cmddata[0] = memorybyte[cmddataword[0]];
+          #else
+               debugstr("Monitor pokes are unsupported on this platform.");
+               debughex(cmddataword[0]);
+               cmddata[0]=0x00;
+         #endif
                txdata(app,verb,1);
                break;
 
@@ -123,19 +141,11 @@ void monitor_handle_fn(uint8_t const app,
                break;
 
        case MONITOR_DIR:
-               P5DIR=cmddata[0];
-               txdata(app,verb,1);
-               break;
-
        case MONITOR_IN:
-               cmddata[0]=P5IN;
-               txdata(app,verb,1);
-               break;
-
        case MONITOR_OUT:
-               P5OUT=cmddata[0];
-               txdata(app,verb,1);
-               break;
+         debugstr("Command deprecated.");
+         txdata(app,verb,1);
+         break;
                
        case MONITOR_SILENT:
                silent=cmddata[0];
@@ -143,9 +153,11 @@ void monitor_handle_fn(uint8_t const app,
                break;
 
        case MONITOR_CONNECTED:
-               msp430_init_dco_done();
-               txdata(app,verb,0);
-               break;
+         #ifdef MSP430
+         msp430_init_dco_done();
+         #endif
+         txdata(app,verb,0);
+         break;
        }
 }
 
@@ -161,10 +173,14 @@ void monitor_ram_pattern()
        }
        txdata(0x00,0x90,0);
 
+#if (platform == tilaunchpad)
+       longjmp(warmstart,1);
+#else
        //Reboot
 #ifdef MSP430
        asm("br &0xfffe");
 #endif
+#endif
 }
 
 //! Return the number of contiguous bytes 0xBEEF, to measure RAM usage.