X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Fapps%2Fmonitor%2Fmonitor.c;h=4f36833d10d2d24d23fec4c2ca0a587ff2def804;hb=a25b880a237c5c2ee3a2639a27e558edac80f2d6;hp=ab6f8a4d0462ad72664828c795459b9f6d80117b;hpb=5fb0341d348e101b30794945a6c91546e25e8e7b;p=goodfet diff --git a/firmware/apps/monitor/monitor.c b/firmware/apps/monitor/monitor.c index ab6f8a4..4f36833 100644 --- a/firmware/apps/monitor/monitor.c +++ b/firmware/apps/monitor/monitor.c @@ -7,6 +7,11 @@ #include "platform.h" #include "monitor.h" #include "builddate.h" +#if (platform == tilaunchpad) +#include +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.