From 6bf01651eec66014a40a9064adc9afabc9889063 Mon Sep 17 00:00:00 2001 From: prabal Date: Mon, 2 Apr 2007 06:49:32 +0000 Subject: [PATCH] Port to T2 --- tos/interfaces/Crc.nc | 42 +++++++++++++++++++++++ tos/interfaces/InternalFlash.nc | 61 +++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 tos/interfaces/Crc.nc create mode 100644 tos/interfaces/InternalFlash.nc diff --git a/tos/interfaces/Crc.nc b/tos/interfaces/Crc.nc new file mode 100644 index 00000000..4ecf0db0 --- /dev/null +++ b/tos/interfaces/Crc.nc @@ -0,0 +1,42 @@ +/* tab:2 + * + * "Copyright (c) 2000-2007 The Regents of the University of + * California. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without written + * agreement is hereby granted, provided that the above copyright + * notice, the following two paragraphs and the author appear in all + * copies of this software. + * + * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, + * UPDATES, ENHANCEMENTS, OR MODIFICATIONS." + * + */ + +/** + * Compute the CRC-16 value of a byte array. + * + * @author Jonathan Hui + */ +interface Crc { + + /** + * Compute the CRC-16 value of a byte array. + * + * @param buf A pointer to the buffer over which to compute CRC. + * @param len The length of the buffer over which to compute CRC. + * @return The CRC-16 value. + */ + command uint16_t crc16(void* buf, uint8_t len); +} diff --git a/tos/interfaces/InternalFlash.nc b/tos/interfaces/InternalFlash.nc new file mode 100644 index 00000000..56a19360 --- /dev/null +++ b/tos/interfaces/InternalFlash.nc @@ -0,0 +1,61 @@ +/* tab:2 + * + * "Copyright (c) 2000-2007 The Regents of the University of + * California. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without written + * agreement is hereby granted, provided that the above copyright + * notice, the following two paragraphs and the author appear in all + * copies of this software. + * + * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, + * UPDATES, ENHANCEMENTS, OR MODIFICATIONS." + * + */ + + +/** + * A generic interface to read from and write to the internal flash of + * a microcontroller. + * + * @author Jonathan Hui + * @author Prabal Dutta (Port to T2) + */ +interface InternalFlash { + + /** + * Read size bytes starting from addr and + * return them in buf. + * + * @param addr A pointer to the starting address from which to read. + * @param buf A pointer to the buffer into which read bytes are + * placed. + * @param size The number of bytes to read. + * @return SUCCESS if the bytes were successfully read. + * FAIL if the call could not be completed. + */ + command error_t read(void* addr, void* buf, uint16_t size); + + /** + * Write size bytes from buf into internal + * flash starting at addr. + * + * @param addr A pointer to the starting address to which to write. + * @param buf A pointer to the buffer from which bytes are read. + * @param size The number of bytes to write. + * @return SUCCESS if the bytes were successfully written. + * FAIL if the call could not be completed. + */ + command error_t write(void* addr, void* buf, uint16_t size); +} -- 2.39.2