[Tinyos-2-commits] CVS: tinyos-2.x/tools/platforms/msp430/cppbsl/src Serial.h, 1.1, 1.2 Serial.cc, 1.1, 1.2

akoepke andreaskoepke at users.sourceforge.net
Thu Nov 1 12:20:39 PDT 2007


Update of /cvsroot/tinyos/tinyos-2.x/tools/platforms/msp430/cppbsl/src
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv19460/src

Modified Files:
	Serial.h Serial.cc 
Log Message:
sleep better -- more in line with FTDI timeouts etc.
adjust compromise between speed and reliability


Index: Serial.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tools/platforms/msp430/cppbsl/src/Serial.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Serial.h	31 Oct 2007 18:54:56 -0000	1.1
--- Serial.h	1 Nov 2007 19:20:37 -0000	1.2
***************
*** 104,110 ****
              std::cerr << "ERROR: BaseSerial::setDTR could not set DTR pin" << std::endl;
          }
-         else {
-             serial_delay(switchdelay);
-         }
          return r;
      }
--- 104,107 ----
***************
*** 116,122 ****
              std::cerr << "ERROR: BaseSerial::clrDTR could not clr DTR pin" << std::endl;
          }
-         else {
-             serial_delay(switchdelay);
-         }
          return r;
      }
--- 113,116 ----
***************
*** 128,134 ****
              std::cerr << "ERROR: BaseSerial::setRTS could not set RTS pin" << std::endl;
          }
-         else {
-             serial_delay(switchdelay);
-         }
          return r;
      }
--- 122,125 ----
***************
*** 140,146 ****
              std::cerr << "ERROR: BaseSerial::clrRTS could not clr RTS pin" << std::endl;
          }
-         else {
-             serial_delay(switchdelay);
-         }
          return r;
      }
--- 131,134 ----
***************
*** 182,190 ****
      
      int readFD(int *err, char *buffer, int count, int maxCount);
      virtual int resetPins(int *err);
      
  public:
      BaseSerial(const termios& term, int rFD, int wFD, bool T=false, bool R=false) :
!         switchdelay(10),
          oldtermios(term),
          serialReadFD(rFD), serialWriteFD(wFD),
--- 170,179 ----
      
      int readFD(int *err, char *buffer, int count, int maxCount);
+     virtual int setPins(int *err);
      virtual int resetPins(int *err);
      
  public:
      BaseSerial(const termios& term, int rFD, int wFD, bool T=false, bool R=false) :
!         switchdelay(30000),
          oldtermios(term),
          serialReadFD(rFD), serialWriteFD(wFD),
***************
*** 192,197 ****
          int err;
          FD_ZERO(&rfds);
!         setRST(&err);
!         setTEST(&err);
      }
      
--- 181,185 ----
          int err;
          FD_ZERO(&rfds);
!         setPins(&err);
      }
      
***************
*** 236,239 ****
--- 224,228 ----
  protected:
      virtual int resetPins(int *err);
+     virtual int setPins(int *err);
          
      int telosSetSCL(int *err) {

Index: Serial.cc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tools/platforms/msp430/cppbsl/src/Serial.cc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Serial.cc	31 Oct 2007 18:54:56 -0000	1.1
--- Serial.cc	1 Nov 2007 19:20:37 -0000	1.2
***************
*** 46,50 ****
      *readFD = -1;
      *writeFD = -1;
!     for(int i = 0; i < 3; i++) {
          *readFD = open(dev, O_RDONLY | O_NOCTTY | O_NONBLOCK);
          *err = errno;
--- 46,50 ----
      *readFD = -1;
      *writeFD = -1;
!     for(int i = 0; i < 2; i++) {
          *readFD = open(dev, O_RDONLY | O_NOCTTY | O_NONBLOCK);
          *err = errno;
***************
*** 147,155 ****
  };
  
  int BaseSerial::resetPins(int *err) {
!     int r = 0;
!     r = setRST(err);
!     r = clrTEST(err);
!     return r;
  }
  
--- 147,158 ----
  };
  
+ int BaseSerial::setPins(int *err) {
+     setRST(err);
+     return setTEST(err);
+ }
+ 
  int BaseSerial::resetPins(int *err) {
!     setRST(err);
!     return clrTEST(err);
  }
  
***************
*** 186,196 ****
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(2500);
      r = clrRST(err);
      if(r == -1) return -1;
!     serial_delay(10);
      r = setRST(err);
      if(r == -1) return -1;
!     serial_delay(2500);
      cout << "Reset device ..." << endl;
      return clearBuffers(err);
--- 189,199 ----
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(switchdelay);
      r = clrRST(err);
      if(r == -1) return -1;
!     serial_delay(switchdelay);
      r = setRST(err);
      if(r == -1) return -1;
!     serial_delay(switchdelay);
      cout << "Reset device ..." << endl;
      return clearBuffers(err);
***************
*** 203,227 ****
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(2500);
      r = clrRST(err);
      if(r == -1) return -1;
      r = setTEST(err);
      if(r == -1) return -1;
-     serial_delay(10);
      r = clrTEST(err);
      if(r == -1) return -1;
-     serial_delay(10);
      r = setTEST(err);
      if(r == -1) return -1;
-     serial_delay(10);
      r = clrTEST(err);
      if(r == -1) return -1;
-     serial_delay(10);
      r = setRST(err);
      if(r == -1) return -1;
-     serial_delay(10);
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(2500);
      cout << "Invoking BSL..." << endl;
      return clearBuffers(err);
--- 206,225 ----
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(switchdelay);
      r = clrRST(err);
      if(r == -1) return -1;
      r = setTEST(err);
      if(r == -1) return -1;
      r = clrTEST(err);
      if(r == -1) return -1;
      r = setTEST(err);
      if(r == -1) return -1;
      r = clrTEST(err);
      if(r == -1) return -1;
      r = setRST(err);
      if(r == -1) return -1;
      r = setTEST(err);
      if(r == -1) return -1;
!     serial_delay(switchdelay);
      cout << "Invoking BSL..." << endl;
      return clearBuffers(err);
***************
*** 244,249 ****
              }
              FD_CLR(serialReadFD, &rfds);
!             if(retries++ >= 3) {
!                 cerr << "FATAL: BaseSerial::readFD no data available after 3s" << endl;
                  return -1;
              }
--- 242,247 ----
              }
              FD_CLR(serialReadFD, &rfds);
!             if(retries++ >= 2) {
!                 cerr << "FATAL: BaseSerial::readFD no data available after 1s" << endl;
                  return -1;
              }
***************
*** 271,275 ****
          return -1;
      }
!     for(unsigned i = 0; i < 3; i++) {
          r = write(serialWriteFD,&sync, 1);
          if(r == -1) {
--- 269,273 ----
          return -1;
      }
!     for(unsigned i = 0; i < 2; i++) {
          r = write(serialWriteFD,&sync, 1);
          if(r == -1) {
***************
*** 369,373 ****
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(10000);
      r = telosI2CWriteCmd(err, 0, 3);
      if(r == -1) return r;
--- 367,371 ----
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(switchdelay);
      r = telosI2CWriteCmd(err, 0, 3);
      if(r == -1) return r;
***************
*** 378,382 ****
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(2500);
      cout << "Reset device ..." << endl;
      return clearBuffers(err);
--- 376,380 ----
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(switchdelay);
      cout << "Reset device ..." << endl;
      return clearBuffers(err);
***************
*** 387,391 ****
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(10000);
      r = telosI2CWriteCmd(err, 0, 1);
      if(r == -1) return r;
--- 385,389 ----
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(switchdelay);
      r = telosI2CWriteCmd(err, 0, 1);
      if(r == -1) return r;
***************
*** 402,406 ****
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(2500);
      cout << "Invoking BSL..." << endl;
      return clearBuffers(err);
--- 400,404 ----
      r = telosI2CWriteCmd(err, 0, 0);
      if(r == -1) return r;
!     serial_delay(switchdelay);
      cout << "Invoking BSL..." << endl;
      return clearBuffers(err);
***************
*** 472,482 ****
      r = telosI2CWriteByte(err,  cmdbyte );
      if(r == -1) return r;
!     return telosI2CStop(err);
  }
  
  int TelosBSerial::resetPins(int *err) {
!     int r = 0;
!     r = setRTS(err);
!     r = clrDTR(err);
!     return r;
  }
--- 470,483 ----
      r = telosI2CWriteByte(err,  cmdbyte );
      if(r == -1) return r;
!     r = telosI2CStop(err);
!     if(r == -1) return r;
!     return clearBuffers(err);
! }
! 
! int TelosBSerial::setPins(int *err) {
!     return 0;
  }
  
  int TelosBSerial::resetPins(int *err) {
!     return 0;
  }



More information about the Tinyos-2-commits mailing list