[Tinyos-beta-commits] CVS: tinyos-1.x/beta/STM25P FlashWP.nc, NONE, 1.1 FlashWPC.nc, NONE, 1.1 FlashWPM.nc, NONE, 1.1

Jonathan Hui jwhui at users.sourceforge.net
Sun Nov 21 21:14:25 PST 2004


Update of /cvsroot/tinyos/tinyos-1.x/beta/STM25P
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11217

Added Files:
	FlashWP.nc FlashWPC.nc FlashWPM.nc 
Log Message:
- Initial checkin of component that provides access to write protected
of external flash.



--- NEW FILE: FlashWP.nc ---

interface FlashWP {
  command result_t setWP();
  event result_t setWPDone(result_t result);
  command result_t clrWP();
  event result_t clrWPDone(result_t result);
}

--- NEW FILE: FlashWPC.nc ---

configuration FlashWPC {
  provides {
    interface FlashWP;
    interface StdControl;
  }
}

implementation {

  components FlashWPM, STM25PC;

  StdControl = FlashWPM;
  FlashWP = FlashWPM;

  FlashWPM.STM25P -> STM25PC;

}

--- NEW FILE: FlashWPM.nc ---

module FlashWPM {
  provides {
    interface FlashWP;
    interface StdControl;
  }
  uses {
    interface STM25P;
  }
}

implementation {

  uint8_t state;

  enum {
    S_IDLE,
    S_CLR,
    S_SET,
  };

  command result_t StdControl.init() {
    state = S_IDLE;
    return SUCCESS;
  }

  command result_t StdControl.start() { return SUCCESS; }
  command result_t StdControl.stop() { return SUCCESS; }

  command result_t FlashWP.clrWP() {
    state = S_CLR;
    if (call STM25P.writeSR(0x0) == FAIL) {
      state = S_IDLE;
      return FAIL;
    }
    return SUCCESS;
  }

  command result_t FlashWP.setWP() {
    state = S_SET;
    if (call STM25P.writeSR(0x84) == FAIL) {
      state = S_IDLE;
      return FAIL;
    }
    return SUCCESS;
  }

  event result_t STM25P.writeSRDone(result_t result) {
    uint8_t tmpState = state;
    state = S_IDLE;
    switch(tmpState) {
    case S_CLR: return signal FlashWP.clrWPDone(result);
    case S_SET: return signal FlashWP.setWPDone(result);
    }
  }

  event result_t STM25P.readDone(result_t result) { return SUCCESS; }
  event result_t STM25P.pageProgramDone(result_t result) { return SUCCESS; }
  event result_t STM25P.sectorEraseDone(result_t result) { return SUCCESS; }
  event result_t STM25P.bulkEraseDone(result_t result) { return SUCCESS; }

}



More information about the Tinyos-beta-commits mailing list