[Tinyos-contrib-commits] Re: Tinyos-contrib-commits Digest, Vol 24, Issue 14

Songqiang Fang sqfang at gmail.com
Sat Jul 22 21:22:36 PDT 2006


Hi,
I failed running tinyviz on BVR, as if BVR does not talk to tinyviz on
socket. Does anyone know where to download patched tossim code for BVR?

thanks,
Fred


On 7/18/06, tinyos-contrib-commits-request at mail.millennium.berkeley.edu <
tinyos-contrib-commits-request at mail.millennium.berkeley.edu> wrote:
>
> Send Tinyos-contrib-commits mailing list submissions to
>         tinyos-contrib-commits at Mail.Millennium.Berkeley.EDU
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-contrib-commits
>
> or, via email, send a message with subject or body 'help' to
>         tinyos-contrib-commits-request at Mail.Millennium.Berkeley.EDU
>
> You can reach the person managing the list at
>         tinyos-contrib-commits-owner at Mail.Millennium.Berkeley.EDU
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Tinyos-contrib-commits digest..."
>
>
> Today's Topics:
>
>    1.   CVS: tinyos-1.x/contrib/rincon/apps/FlashBridge/media/STM25P
>       FlashBridgeM.nc, NONE, 1.1 FlashBridgeC.nc, NONE, 1.1 readme.txt,
>       NONE, 1.1 FlashSettings.h, NONE, 1.1 Makefile,    NONE, 1.1 (dmm)
>    2.   CVS: tinyos-1.x/contrib/rincon/apps/FlashBridge/interfaces
>       FlashBridge.nc, NONE, 1.1 (dmm)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 18 Jul 2006 09:25:26 -0700
> From: dmm <rincon at users.sourceforge.net>
> Subject: [Tinyos-contrib-commits]       CVS:
>         tinyos-1.x/contrib/rincon/apps/FlashBridge/media/STM25P
>         FlashBridgeM.nc, NONE, 1.1 FlashBridgeC.nc, NONE,       1.1
> readme.txt,
>         NONE, 1.1 FlashSettings.h, NONE, 1.1 Makefile,  NONE, 1.1
> To: tinyos-contrib-commits at mail.millennium.berkeley.edu
> Message-ID: <E1G2sNy-0003RX-6M at sc8-pr-cvs10.sourceforge.net>
>
> Update of /cvsroot/tinyos/tinyos-1.x
> /contrib/rincon/apps/FlashBridge/media/STM25P
> In directory
> sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13205/contrib/rincon/apps/FlashBridge/media/STM25P
>
> Added Files:
>         FlashBridgeM.nc FlashBridgeC.nc readme.txt FlashSettings.h
>         Makefile
> Log Message:
> Extracted the FlashBridge component and test app from Blackbook5
>
> --- NEW FILE: FlashBridgeM.nc ---
> /*
> * Copyright (c) 2004-2006 Rincon Research Corporation.
> * All rights reserved.
> *
> * Rincon Research will permit distribution and use by others subject to
> * the restrictions of a licensing agreement which contains (among other
> things)
> * the following restrictions:
> *
> *  1. No credit will be taken for the Work of others.
> *  2. It will not be resold for a price in excess of reproduction and
> *      distribution costs.
> *  3. Others are not restricted from copying it or using it except as
> *      set forward in the licensing agreement.
> *  4. Commented source code of any modifications or additions will be
> *      made available to Rincon Research on the same terms.
> *  5. This notice will remain intact and displayed prominently.
> *
> * Copies of the complete licensing agreement may be obtained by contacting
> * Rincon Research, 101 N. Wilmot, Suite 101, Tucson, AZ 85711.
> *
> * There is no warranty with this product, either expressed or implied.
> * Use at your own risk.  Rincon Research is not liable or responsible for
> * damage or loss incurred or resulting from the use or misuse of this
> software.
> */
>
> /**
> * Blackbook to Flash bridge implementation
> * For the STM25P
> *
> * We add a Timer delay to the start because
> * the radio uses the same SPI bus as the Flash on
> * some motes.  This allows the radio time to startup
> * and then the flash kicks in so Blackbook can boot up
> *
> * @author David Moss (dmm at rincon.com)
> * @author Mark Kranz
> *
> */
>
> includes FlashSettings;
>
> module FlashBridgeM {
>   provides {
>     interface FlashBridge[uint8_t id];
>     interface StdControl;
>   }
>
>   uses {
> #ifdef STM25P_BOOMERANG_VERSION
>     interface ResourceCmd as CmdReadCrc;
> #endif
>     interface HALSTM25P;
>     interface State;
>     interface Timer;
>   }
> }
>
> implementation {
>
>   /** The current currentClient */
>   uint8_t currentClient;
>
>   /** The current address we're working at */
>   uint32_t currentAddr;
>
>   /** The current pointer to our buffer */
>   void *currentBuf;
>
>   /** The current length we're dealing with */
>   uint32_t currentLen;
>
>   /** The total amount of bytes written */
>   uint32_t currentTotal;
>
>   /** The current calculated CRC */
>   uint16_t currentCrc;
>
>   /** The current amount of bytes to write */
>   uint16_t currentAmount;
>
>   enum {
>     S_IDLE = 0,
>     S_READ,
>     S_WRITE,
>     S_ERASE,
>     S_ERASE_DONE,
>     S_GETCRC,
>   };
>
>   /***************** Prototypes ****************/
>   task void writeTask();
>   void write();
>
>   /***************** StdControl Commands ****************/
>   command result_t StdControl.init() {
>     return SUCCESS;
>   }
>
>   command result_t StdControl.start() {
>     call Timer.start(TIMER_ONE_SHOT, 256);
>     return SUCCESS;
>   }
>
>   command result_t StdControl.stop() {
>     return SUCCESS;
>   }
>
> #ifdef STM25P_BOOMERANG_VERSION
>   uint8_t deferredId;
>   uint32_t deferredAddr, deferredLen;
>   void *deferredBuf;
>
>   event void CmdReadCrc.granted( uint8_t rh ) {
>     result_t returnResult = FAIL;
>
>     switch( call State.getState() ) {
>     case S_READ:
>       returnResult = call HALSTM25P.read(rh, deferredAddr, deferredBuf,
> deferredLen);
>       call State.toIdle();
>       signal FlashBridge.readDone[deferredId](deferredAddr, deferredBuf,
> deferredLen, returnResult);
>       break;
>     case S_GETCRC:
>       currentCrc = 0;
>       returnResult = call HALSTM25P.computeCrc(rh, &currentCrc,
> currentCrc, deferredAddr, deferredLen);
>       call State.toIdle();
>       signal FlashBridge.crcDone[deferredId](currentCrc, deferredAddr,
> deferredLen, returnResult);
>       break;
>     }
>
>     call CmdReadCrc.release();
>   }
> #endif
>
>
>
>   /***************** FlashBridge Commands ****************/
>   /**
>    * Read bytes from flash
>    * @param addr - the address to read from
>    * @param *buf - the buffer to read into
>    * @param len - the amount to read
>    * @return SUCCESS if the bytes will be read
>    */
>   command result_t FlashBridge.read[uint8_t id](uint32_t addr, void *buf,
> uint32_t len) {
> #ifdef STM25P_BOOMERANG_VERSION
>     if(call State.requestState(S_READ)) {
>       // save state and request resource
>       deferredId = id;
>       deferredAddr = addr;
>       deferredBuf = buf;
>       deferredLen = len;
>       call CmdReadCrc.deferRequest();
>     } else {
>       return FAIL;
>     }
> #else
>     result_t returnResult;
>
>     if(call State.requestState(S_READ)) {
>       returnResult = call HALSTM25P.read(addr, buf, len);
>       call State.toIdle();
>       signal FlashBridge.readDone[id](addr, buf, len, returnResult);
>     } else {
>       return FAIL;
>     }
> #endif
>
>     return SUCCESS;
>   }
>
>
>   /**
>    * Write bytes to flash
>    * @param addr - the address to write to
>    * @param *buf - the buffer to write from
>    * @param len - the amount to write
>    * @return SUCCESS if the bytes will be written
>    */
>   command result_t FlashBridge.write[uint8_t id](uint32_t addr, void *buf,
> uint32_t len) {
>     if(call State.requestState(S_WRITE)) {
>       currentClient = id;
>       currentAddr = addr;
>       currentBuf = buf;
>       currentLen = len;
>       currentTotal = 0;
>       post writeTask();
>
>     } else {
>       return FAIL;
>     }
>
>     return SUCCESS;
>   }
>
>
>   /**
>    * Erase a sector in flash
>    * Blackbook only erases in sector granularities, not pages.
>    * Sector 0 should be the first sector existing at 0x0
>    * @param sector - the sector id to erase
>    * @return SUCCESS if the sector will be erased
>    */
>   command result_t FlashBridge.erase[uint8_t id](uint16_t sector) {
>     if(sector > FLASH_TOTAL_SECTORS - 1) {
>       return FAIL;
>     }
>
>     if(call State.requestState(S_ERASE)) {
>       currentClient = id;
>       currentAddr = sector;
>       return call HALSTM25P.sectorErase(currentAddr *
> FLASH_SECTOR_LENGTH);
>
>     } else {
>       return FAIL;
>     }
>   }
>
>
>   /**
>    * Flush written data to flash. This only applies to some flash
>    * chips.
>    * @return SUCCESS if the flash will be flushed
>    */
>   command result_t FlashBridge.flush[uint8_t id]() {
>     // Not so fast! Just because this is stubbed out here doesn't
>     // mean it isn't in the AT45DB implementation.  If you want
>     // your app to be compatible across flash chips and FlashBridge
>     // versions, make sure you call this flush() command whenever
>     // you want to ensure the data is actually written to flash.
>     // In the future, this command for the tmote's may take a RAM
>     // page buffer of data and write it to the flash.
>
>     signal FlashBridge.flushDone[id](SUCCESS);
>     return SUCCESS;
>   }
>
>
>   /**
>    * Obtain the CRC of a chunk of data sitting on flash.
>    * @param addr - the address to start the CRC computation
>    * @param len - the amount of data to obtain the CRC for
>    * @return SUCCESS if the CRC will be computed.
>    */
>   command result_t FlashBridge.crc[uint8_t id](uint32_t addr, uint32_t
> len) {
> #ifdef STM25P_BOOMERANG_VERSION
>     if(call State.requestState(S_GETCRC)) {
>       deferredId = id;
>       deferredAddr = addr;
>       deferredLen = len;
>       call CmdReadCrc.deferRequest();
>     } else {
>       return FAIL;
>     }
> #else
>     result_t returnResult;
>
>     if(call State.requestState(S_GETCRC)) {
>       currentCrc = 0;
>       returnResult = call HALSTM25P.computeCrc(&currentCrc, currentCrc,
> addr, len);
>       call State.toIdle();
>       signal FlashBridge.crcDone[id](currentCrc, addr, len, returnResult);
>     } else {
>       return FAIL;
>     }
> #endif
>
>     return SUCCESS;
>   }
>
>   /***************** HALSTM25P Events *****************/
>   event void HALSTM25P.pageProgramDone() {
>     currentTotal += currentAmount;
>     write();
>   }
>
>   event void HALSTM25P.sectorEraseDone() {
>     call State.toIdle();
>     signal FlashBridge.eraseDone[currentClient](currentAddr, SUCCESS);
>   }
>
>   event void HALSTM25P.bulkEraseDone() {
>   }
>
>   event void HALSTM25P.writeSRDone() {
>   }
>
>   /***************** Timer Events ****************/
>   event result_t Timer.fired() {
>     int i;
>     for(i = 0; i < uniqueCount("FlashBridge"); i++) {
>       signal FlashBridge.ready[i](SUCCESS);
>     }
>     return SUCCESS;
>   }
>
>   /***************** Tasks ****************/
>   /**
>    * Write data to the given address in flash with the given length
>    * by dividing the data up into pages
>    */
>   void write() {
>     if(currentTotal < currentLen) {
>       currentAmount = FLASH_PAGE_LENGTH - ((currentAddr + currentTotal) %
> FLASH_PAGE_LENGTH);
>
>       if (currentLen - currentTotal < currentAmount) {
>         currentAmount = currentLen - currentTotal;
>       }
>
>       if(!call HALSTM25P.pageProgram(currentAddr + currentTotal,
> currentBuf + currentTotal, currentAmount)) {
>         post writeTask();
>       }
>
>     } else {
>       call State.toIdle();
>       signal FlashBridge.writeDone[currentClient](currentAddr, currentBuf,
> currentTotal, SUCCESS);
>     }
>   }
>
>   task void writeTask() {
>     write();
>   }
>
>
>   /***************** Functions ****************/
>
>
>   /***************** Defaults ****************/
>   default event void FlashBridge.readDone[uint8_t id](uint32_t addr, void
> *buf, uint32_t len, result_t result) {
>   }
>
>   default event void FlashBridge.writeDone[uint8_t id](uint32_t addr, void
> *buf, uint32_t len, result_t result) {
>   }
>
>   default event void FlashBridge.eraseDone[uint8_t id](uint16_t sector,
> result_t result) {
>   }
>
>   default event void FlashBridge.flushDone[uint8_t id](result_t result) {
>   }
>
>   default event void FlashBridge.crcDone[uint8_t id](uint16_t
> calculatedCrc, uint32_t addr, uint32_t len, result_t result) {
>   }
>
>   default event void FlashBridge.ready[uint8_t id](result_t result) {
>   }
>
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --- NEW FILE: FlashBridgeC.nc ---
> /*
> * Copyright (c) 2004-2006 Rincon Research Corporation.
> * All rights reserved.
> *
> * Rincon Research will permit distribution and use by others subject to
> * the restrictions of a licensing agreement which contains (among other
> things)
> * the following restrictions:
> *
> *  1. No credit will be taken for the Work of others.
> *  2. It will not be resold for a price in excess of reproduction and
> *      distribution costs.
> *  3. Others are not restricted from copying it or using it except as
> *      set forward in the licensing agreement.
> *  4. Commented source code of any modifications or additions will be
> *      made available to Rincon Research on the same terms.
> *  5. This notice will remain intact and displayed prominently.
> *
> * Copies of the complete licensing agreement may be obtained by contacting
> * Rincon Research, 101 N. Wilmot, Suite 101, Tucson, AZ 85711.
> *
> * There is no warranty with this product, either expressed or implied.
> * Use at your own risk.  Rincon Research is not liable or responsible for
> * damage or loss incurred or resulting from the use or misuse of this
> software.
> */
>
> /**
> * Blackbook to Flash bridge implementation
> * For the STM25P
> *
> * Components using this interface should connect
> * to the parameterized interface unique("FlashBridge")
> * @author David Moss (dmm at rincon.com)
> * @author Mark Kranz
> *
> */
>
> configuration FlashBridgeC {
>   provides {
>     interface StdControl;
>     interface FlashBridge[uint8_t id];
>   }
> }
>
> implementation {
>   components FlashBridgeM, StateC, HALSTM25PC, TimerC;
> #ifdef STM25P_BOOMERANG_VERSION
>   components new STM25PResourceC() as CmdReadCrcC;
>   FlashBridgeM.CmdReadCrc -> CmdReadCrcC;
> #endif
>
>   StdControl = FlashBridgeM;
>   StdControl = StateC;
>   StdControl = TimerC;
>   StdControl = HALSTM25PC;
>
>   FlashBridge = FlashBridgeM;
>
>   FlashBridgeM.HALSTM25P -> HALSTM25PC.HALSTM25P[unique("HALSTM25P")];
>   FlashBridgeM.State -> StateC.State[unique("State")];
>   FlashBridgeM.Timer -> TimerC.Timer[unique("Timer")];
>
> }
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --- NEW FILE: readme.txt ---
> Compiling and installing the application in this directory
> will format the STM25P flash - erasing every sector allocated
> to Blackbook.
>
> So be careful.
>
> @author David Moss (dmm at rincon.com)
>
>
> --- NEW FILE: FlashSettings.h ---
> /*
> * Copyright (c) 2004-2006 Rincon Research Corporation.
> * All rights reserved.
> *
> * Rincon Research will permit distribution and use by others subject to
> * the restrictions of a licensing agreement which contains (among other
> things)
> * the following restrictions:
> *
> *  1. No credit will be taken for the Work of others.
> *  2. It will not be resold for a price in excess of reproduction and
> *      distribution costs.
> *  3. Others are not restricted from copying it or using it except as
> *      set forward in the licensing agreement.
> *  4. Commented source code of any modifications or additions will be
> *      made available to Rincon Research on the same terms.
> *  5. This notice will remain intact and displayed prominently.
> *
> * Copies of the complete licensing agreement may be obtained by contacting
> * Rincon Research, 101 N. Wilmot, Suite 101, Tucson, AZ 85711.
> *
> * There is no warranty with this product, either expressed or implied.
> * Use at your own risk.  Rincon Research is not liable or responsible for
> * damage or loss incurred or resulting from the use or misuse of this
> software.
> */
>
> /*
> * Flash Information
> * ST M25P80 Flash on Telos Tmote Sky
> * 16 Sectors total (can only erase an entire sector at a time)
> * 256 pages/sector (4096 pages total)
> * 256 bytes/page
> * Total of 1048576 bytes (1 MB, minus overhead)
> */
>
> enum {
>   FLASH_FIRST_BLACKBOOK_SECTOR = 0,
>   FLASH_LAST_BLACKBOOK_SECTOR = 15,
>
>   FLASH_PAGE_LENGTH = 0x100,
>   FLASH_SECTOR_LENGTH = 0x10000,
>   FLASH_SECTOR_SIZE_LOG2 = 16,
>   FLASH_TOTAL_SECTORS = 16,
>   FLASH_PAGES_PER_SECTOR = 0x100,
>   FLASH_PAGE_SIZE_LOG2 = 8,
> };
>
>
>
> --- NEW FILE: Makefile ---
> COMPONENT=../Format/BlackbookFormatC
> CFLAGS += -I../Format
> CFLAGS += -I../../../../tos/lib/State -I../../interfaces
>
> # If you are using Boomerang, uncomment the following line:
> #CFLAGS += -DSTM25P_BOOMERANG_VERSION
>
> include $(MAKERULES)
>
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 18 Jul 2006 09:25:27 -0700
> From: dmm <rincon at users.sourceforge.net>
> Subject: [Tinyos-contrib-commits]       CVS:
>         tinyos-1.x/contrib/rincon/apps/FlashBridge/interfaces
> FlashBridge.nc,
>         NONE, 1.1
> To: tinyos-contrib-commits at mail.millennium.berkeley.edu
> Message-ID: <E1G2sNz-0003Rr-5V at sc8-pr-cvs10.sourceforge.net>
>
> Update of /cvsroot/tinyos/tinyos-1.x
> /contrib/rincon/apps/FlashBridge/interfaces
> In directory
> sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13205/contrib/rincon/apps/FlashBridge/interfaces
>
> Added Files:
>         FlashBridge.nc
> Log Message:
> Extracted the FlashBridge component and test app from Blackbook5
>
> --- NEW FILE: FlashBridge.nc ---
> /*
> * Copyright (c) 2004-2006 Rincon Research Corporation.
> * All rights reserved.
> *
> * Rincon Research will permit distribution and use by others subject to
> * the restrictions of a licensing agreement which contains (among other
> things)
> * the following restrictions:
> *
> *  1. No credit will be taken for the Work of others.
> *  2. It will not be resold for a price in excess of reproduction and
> *      distribution costs.
> *  3. Others are not restricted from copying it or using it except as
> *      set forward in the licensing agreement.
> *  4. Commented source code of any modifications or additions will be
> *      made available to Rincon Research on the same terms.
> *  5. This notice will remain intact and displayed prominently.
> *
> * Copies of the complete licensing agreement may be obtained by contacting
> * Rincon Research, 101 N. Wilmot, Suite 101, Tucson, AZ 85711.
> *
> * There is no warranty with this product, either expressed or implied.
> * Use at your own risk.  Rincon Research is not liable or responsible for
> * damage or loss incurred or resulting from the use or misuse of this
> software.
> */
>
> /**
> * Blackbook FlashBridge interface
> * Implement this interface with consistent behavior for any
> * flash type Blackbook should sit on top of
> */
>
> interface FlashBridge {
>
>   /**
>    * Read bytes from flash
>    * @param addr - the address to read from
>    * @param *buf - the buffer to read into
>    * @param len - the amount to read
>    * @return SUCCESS if the bytes will be read
>    */
>   command result_t read(uint32_t addr, void *buf, uint32_t len);
>
>   /**
>    * Write bytes to flash
>    * @param addr - the address to write to
>    * @param *buf - the buffer to write from
>    * @param len - the amount to write
>    * @return SUCCESS if the bytes will be written
>    */
>   command result_t write(uint32_t addr, void *buf, uint32_t len);
>
>   /**
>    * Erase a sector in flash
>    * Blackbook only erases in sector granularities, not pages.
>    * Sector 0 should be the first sector existing at FS_START_ADDRESS
>    * defined in FlashSettings.h
>    * @param sector - the sector id to erase
>    * @return SUCCESS if the sector will be erased
>    */
>   command result_t erase(uint16_t sector);
>
>   /**
>    * Flush written data to flash. This only applies to some flash
>    * chips.
>    * @return SUCCESS if the flash will be flushed
>    */
>   command result_t flush();
>
>   /**
>    * Obtain the CRC of a chunk of data sitting on flash.
>    * @param addr - the address to start the CRC computation
>    * @param len - the amount of data to obtain the CRC for
>    * @return SUCCESS if the CRC will be computed.
>    */
>   command result_t crc(uint32_t addr, uint32_t len);
>
>
>   /**
>    * Read is complete
>    * @param addr - the address to read from
>    * @param *buf - the buffer to read into
>    * @param len - the amount to read
>    * @return SUCCESS if the bytes will be read
>    */
>   event void readDone(uint32_t addr, void *buf, uint32_t len, result_t
> result);
>
>   /**
>    * Write is complete
>    * @param addr - the address to write to
>    * @param *buf - the buffer to write from
>    * @param len - the amount to write
>    * @return SUCCESS if the bytes will be written
>    */
>   event void writeDone(uint32_t addr, void *buf, uint32_t len, result_t
> result);
>
>   /**
>    * Erase is complete
>    * @param sector - the sector id to erase
>    * @return SUCCESS if the sector will be erased
>    */
>   event void eraseDone(uint16_t sector, result_t result);
>
>   /**
>    * Flush is complete
>    * @param result - SUCCESS if the flash was flushed
>    */
>   event void flushDone(result_t result);
>
>   /**
>    * CRC-16 is computed
>    * @param crc - the computed CRC.
>    * @param addr - the address to start the CRC computation
>    * @param len - the amount of data to obtain the CRC for
>    * @return SUCCESS if the CRC will be computed.
>    */
>   event void crcDone(uint16_t calculatedCrc, uint32_t addr, uint32_t len,
> result_t result);
>
>   /**
>    * Signaled when the flash is ready to be used
>    * @param result - SUCCESS if we can use the flash.
>    */
>   event void ready(result_t result);
> }
>
>
>
>
> ------------------------------
>
> _______________________________________________
> Tinyos-contrib-commits mailing list
> Tinyos-contrib-commits at Mail.Millennium.Berkeley.EDU
>
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-contrib-commits
>
>
> End of Tinyos-contrib-commits Digest, Vol 24, Issue 14
> ******************************************************
>



-- 
A professional coder.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-contrib-commits/attachments/20060723/66edf06b/attachment-0001.htm


More information about the Tinyos-contrib-commits mailing list