When debugging code it can be handy to examine/alter variables and to check the state of input lines. So your main program can run and you have access to alter variables and run functions from a terminal. In this sample the main program is just a loop that flashes an LED. In that loop a periodic call is made to ShellTC which handles any commands from the serial terminal. The code is a bit quirky(it was originally written for a very resource limited device) but it works well enough to be useful, hence its published. More details in the main.cpp

Dependencies:   mbed

.

Revision:
4:107d2d3294da
Parent:
3:6a35fb789679
--- a/sio.cpp	Wed Feb 04 21:07:52 2015 +0000
+++ b/sio.cpp	Fri Feb 06 09:46:44 2015 +0000
@@ -18,7 +18,7 @@
 /*
 sio handler august 96
 */
-//(c)jont@ninelocks.com 1992-2012
+//(c)jont@ninelocks.com 1992-2015
 #include "string.h"
 #include <stdio.h>
 #include <ctype.h>
@@ -63,16 +63,8 @@
 char theChar = 0x00; //used to be a char...
 //h8    theChar = SIO_RDR;        /* get received character */
 theChar = pc.getc();
-//theChar = LPC_UART0->RBR; //oct2012 expereiment
-//
-//see this for reg names http://mbed.org/users/4180_1/notebook/cc-io-register-names/
- //do {
- //           } while ((LPC_UART0->LSR & 0x20)==0) ;
-//write character to UART
-   //         LPC_UART0->THR = theChar ;
-
-    //theChar = RCREG;    //PIC
-   // theChar = 0x42;    //TODO2k12 this needs to be whats read from sio RXREG
+pc.putc(theChar);
+ 
     /* if an Xoff was received from
     remote term telling us to stop...
     in which case if anything other than an xon is receievd
@@ -127,15 +119,15 @@
 {
 
 //see http://mbed.org/forum/mbed/topic/3414/?page=1#comment-17231
-   while (pc.readable() == 1){
-  // jtdebug();
+   while (pc.readable()){
+ 
      sioGetSingle();
-     uint32_t UART_0_RBR = LPC_UART0->RBR;  
+    
     
   }
   //http://mbed.org/forum/mbed/topic/408/?page=1#comment-2221
  // pc.putc(0x00);
  
- uint32_t UART_0_RBR = LPC_UART0->RBR;  
+// uint32_t UART_0_RBR = LPC_UART0->RBR;  
     
 }