]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
tmicore and tmirws platforms -> tmimsp family
authorR. Steve McKown <rsmckown@gmail.com>
Thu, 4 Oct 2012 15:16:13 +0000 (09:16 -0600)
committerR. Steve McKown <rsmckown@gmail.com>
Thu, 4 Oct 2012 16:25:39 +0000 (10:25 -0600)
83 files changed:
support/make/tmicore.target
support/make/tmirws.target
tos/platforms/tmicore/.platform [deleted file]
tos/platforms/tmicore/DemoSensorC.nc [deleted file]
tos/platforms/tmicore/DemoSensorNowC.nc [deleted file]
tos/platforms/tmicore/DemoSensorStreamC.nc [deleted file]
tos/platforms/tmicore/HplUserButtonC.nc [deleted file]
tos/platforms/tmicore/MoteClockC.nc [deleted file]
tos/platforms/tmicore/MoteClockP.nc [deleted file]
tos/platforms/tmicore/MotePlatformC.nc [deleted file]
tos/platforms/tmicore/PlatformLedsC.nc [deleted file]
tos/platforms/tmicore/PlatformSerialC.nc [deleted file]
tos/platforms/tmicore/PlatformSerialP.nc [deleted file]
tos/platforms/tmicore/PlatformUartC.nc [deleted file]
tos/platforms/tmicore/SwitchToggleC.nc [deleted file]
tos/platforms/tmicore/UserButton.h [deleted file]
tos/platforms/tmicore/UserButtonC.nc [deleted file]
tos/platforms/tmicore/UserButtonP.nc [deleted file]
tos/platforms/tmicore/VoltageC.nc [deleted file]
tos/platforms/tmicore/VoltageStreamC.nc [deleted file]
tos/platforms/tmicore/chips/at25df/At25dfSpiConfigP.nc [deleted file]
tos/platforms/tmicore/chips/at25df/HplStm25pPinsC.nc [deleted file]
tos/platforms/tmicore/chips/at25df/HplStm25pSpiC.nc [deleted file]
tos/platforms/tmicore/chips/at25df/NoMsp430GpioC.nc [deleted file]
tos/platforms/tmicore/chips/bq2403x/BQ2403XPinsC.nc [deleted file]
tos/platforms/tmicore/chips/cp210x/CP210XPinsC.nc [deleted file]
tos/platforms/tmicore/hardware.h [deleted file]
tos/platforms/tmicore/platform.h [deleted file]
tos/platforms/tmimsp/.family [new file with mode: 0644]
tos/platforms/tmimsp/common/DemoSensorC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/DemoSensorNowC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/DemoSensorStreamC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/HplUserButtonC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/MoteClockC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/MoteClockP.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/MotePlatformC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/PlatformLedsC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/PlatformSerialC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/PlatformSerialP.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/PlatformUartC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/SwitchToggleC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/UserButton.h [new file with mode: 0644]
tos/platforms/tmimsp/common/UserButtonC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/UserButtonP.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/VoltageC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/VoltageStreamC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/at25df/At25dfSpiConfigP.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/at25df/HplStm25pPinsC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/at25df/HplStm25pSpiC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/at25df/NoMsp430GpioC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/bq2403x/BQ2403XPinsC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/chips/cp210x/CP210XPinsC.nc [new file with mode: 0644]
tos/platforms/tmimsp/common/hardware.h [new file with mode: 0644]
tos/platforms/tmimsp/common/platform.h [new file with mode: 0644]
tos/platforms/tmimsp/tmicore/.platform [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/.platform [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/MotePlatformC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsP.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiConfigC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/HalSensirionSht11C.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11C.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11P.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainP.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainC.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainP.nc [new file with mode: 0644]
tos/platforms/tmimsp/tmirws/chips/sht11/SensirionSht11C.nc [new file with mode: 0644]
tos/platforms/tmirws/.platform [deleted file]
tos/platforms/tmirws/MotePlatformC.nc [deleted file]
tos/platforms/tmirws/chips/scp1000/Scp1000PinsC.nc [deleted file]
tos/platforms/tmirws/chips/scp1000/Scp1000PinsP.nc [deleted file]
tos/platforms/tmirws/chips/scp1000/Scp1000SpiC.nc [deleted file]
tos/platforms/tmirws/chips/scp1000/Scp1000SpiConfigC.nc [deleted file]
tos/platforms/tmirws/chips/sht11/HalSensirionSht11C.nc [deleted file]
tos/platforms/tmirws/chips/sht11/HplSensirionSht11C.nc [deleted file]
tos/platforms/tmirws/chips/sht11/HplSensirionSht11P.nc [deleted file]
tos/platforms/tmirws/chips/sht11/Msp430OpenDrainC.nc [deleted file]
tos/platforms/tmirws/chips/sht11/Msp430OpenDrainP.nc [deleted file]
tos/platforms/tmirws/chips/sht11/OpenDrainC.nc [deleted file]
tos/platforms/tmirws/chips/sht11/OpenDrainP.nc [deleted file]
tos/platforms/tmirws/chips/sht11/SensirionSht11C.nc [deleted file]

index b0b63d61653f2987f5a78a3caef92df2351ff641..ce13879647aab1017bd02926b9d808a4a345534e 100644 (file)
@@ -12,8 +12,11 @@ OPTFLAGS += -O
 MSP_BSL ?= tos-bsl
 MSP_BSL_FLAGS = --device=cp2103
 
-#VOLUME_FILE = volumes-stm25p.xml
-#VOLUME_ALLOCATOR ?= tos-storage-stm25p
+PLATFORMDIR = $(TOSDIR)/platforms/tmimsp/$(PLATFORM)
+PFLAGS += -I$(PLATFORMDIR)
+
+VOLUME_FILE = volumes-at25df041a.xml
+VOLUME_ALLOCATOR ?= tos-storage-stm25p
 
 ifdef CC2420_CHANNEL
 PFLAGS += -DCC2420_DEF_CHANNEL=$(CC2420_CHANNEL)
index 578ec1f9be74458e3135905b8e669d8aab297007..cfea045bfecbf70520f4a7c0645d3b50e52f18d5 100644 (file)
@@ -12,8 +12,11 @@ OPTFLAGS += -O
 MSP_BSL ?= tos-bsl
 MSP_BSL_FLAGS = --device=cp2103
 
-#VOLUME_FILE = volumes-stm25p.xml
-#VOLUME_ALLOCATOR ?= tos-storage-stm25p
+PLATFORMDIR = $(TOSDIR)/platforms/tmimsp/$(PLATFORM)
+PFLAGS += -I$(PLATFORMDIR)
+
+VOLUME_FILE = volumes-at25df041a.xml
+VOLUME_ALLOCATOR ?= tos-storage-stm25p
 
 ifdef CC2420_CHANNEL
 PFLAGS += -DCC2420_DEF_CHANNEL=$(CC2420_CHANNEL)
diff --git a/tos/platforms/tmicore/.platform b/tos/platforms/tmicore/.platform
deleted file mode 100644 (file)
index f80694a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Includes that should take precedence come first.  Platforms come before
-# chips because they may override files.  These must be specified as
-# @includes instead of -I's to @opts, otherwise the %T won't be processed
-# by ncc.
-
-push( @includes, qw(
-  %T/platforms/tmicore
-  %T/platforms/tmicore/chips/bq2403x
-  %T/platforms/tmicore/chips/cp210x
-  %T/platforms/telosa
-  %T/chips/msp430
-  %T/chips/msp430/adc12
-  %T/chips/msp430/dma
-  %T/chips/msp430/pins
-  %T/chips/msp430/timer
-  %T/chips/msp430/usci
-  %T/chips/msp430/sensors
-  %T/chips/bq2403x
-  %T/chips/cp210x
-  %T/lib/timer
-  %T/lib/serial
-  %T/lib/adc
-  %T/lib/power
-) );
-
-@opts = qw(
-  -gcc=msp430-gcc
-  -mmcu=msp430x2417
-  -fnesc-target=msp430
-  -fnesc-no-debug
-);
-
-push @opts, "-fnesc-scheduler=TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" if !$with_scheduler_flag;
-push @opts, "-mingw-gcc" if $cygwin;
-
-$ENV{'CIL_MACHINE'} =
-    "version_major=3 " .
-    "version_minor=2 " .
-    "version=msp430-3.2.3 " .
-    "short=2,2 " .
-    "int=2,2 " .
-    "long=4,2 " .
-    "long_long=8,2 " .
-    "pointer=2,2 " .
-    "enum=2,2 " .
-    "float=4,2 " .
-    "double=4,2 " .
-    "long_double=4,2 " .
-    "void=1,1 " .
-    "fun=1,2 " .
-    "wchar_size_size=2,2 " .
-    "alignof_string=1 " .
-    "max_alignment=1 " .
-    "char_wchar_signed=true,true " .
-    "const_string_literals=true " .
-    "big_endian=false " .
-    "underscore_name=false " .
-    "__builtin_va_list=true " .
-    "__thread_is_keyword=true";
-
diff --git a/tos/platforms/tmicore/DemoSensorC.nc b/tos/platforms/tmicore/DemoSensorC.nc
deleted file mode 100644 (file)
index 4788625..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * DemoSensorC is a generic sensor device that provides a 16-bit
- * value. The platform author chooses which sensor actually sits
- * behind DemoSensorC, and though it's probably Voltage, Light, or
- * Temperature, there are no guarantees.
- *
- * This particular DemoSensorC on the telosb platform provides a
- * voltage reading, using VoltageC.
- *
- * To convert from ADC counts to actual voltage, divide this reading
- * by 4096 and multiply by 3.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- *
- */
-
-generic configuration DemoSensorC()
-{
-  provides interface Read<uint16_t>;
-}
-implementation
-{
-  components new VoltageC() as DemoSensor;
-  Read = DemoSensor;
-}
diff --git a/tos/platforms/tmicore/DemoSensorNowC.nc b/tos/platforms/tmicore/DemoSensorNowC.nc
deleted file mode 100644 (file)
index da4c4f4..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * DemoSensorNowC is a generic sensor device that provides a 16-bit
- * value that can be read from async context. The platform author
- * chooses which sensor actually sits behind DemoSensorNowC, and
- * though it's probably Voltage, Light, or Temperature, there are no
- * guarantees.
- *
- * This particular DemoSensorNowC on the telosb platform provides a
- * voltage reading, using VoltageC.
- *
- * To convert from ADC counts to actual voltage, divide this reading
- * by 4096 and multiply by 3.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- *
- */
-
-generic configuration DemoSensorNowC()
-{
-  provides interface Resource;
-  provides interface ReadNow<uint16_t>;
-}
-implementation
-{
-  components new Msp430InternalVoltageC() as DemoSensorNow;
-
-  Resource = DemoSensorNow;
-  ReadNow = DemoSensorNow;
-}
diff --git a/tos/platforms/tmicore/DemoSensorStreamC.nc b/tos/platforms/tmicore/DemoSensorStreamC.nc
deleted file mode 100644 (file)
index 08d40d5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * DemoSensorStreamC is a generic sensor device that provides a 16-bit
- * value. The platform author chooses which sensor actually sits
- * behind DemoSensorStreamC, and though it's probably Voltage, Light, or
- * Temperature, there are no guarantees.
- *
- * This particular DemoSensorStreamC on the telosb platform provides a
- * voltage reading, using VoltageStreamC.
- *
- * To convert from ADC counts to actual voltage, divide this reading
- * by 4096 and multiply by 3.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- *
- */
-
-generic configuration DemoSensorStreamC()
-{
-  provides interface ReadStream<uint16_t>;
-}
-implementation
-{
-  components new VoltageStreamC() as DemoSensor;
-  ReadStream = DemoSensor;
-}
diff --git a/tos/platforms/tmicore/HplUserButtonC.nc b/tos/platforms/tmicore/HplUserButtonC.nc
deleted file mode 100644 (file)
index 9963c60..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration HplUserButtonC {
-  provides interface GeneralIO;
-  provides interface GpioInterrupt;
-}
-implementation {
-  components HplMsp430GeneralIOC as GeneralIOC;
-  components HplMsp430InterruptC as InterruptC;
-
-  components new Msp430GpioC() as UserButtonC;
-  UserButtonC -> GeneralIOC.Port25;
-  GeneralIO = UserButtonC;
-
-  components new Msp430InterruptC() as InterruptUserButtonC;
-  InterruptUserButtonC.HplInterrupt -> InterruptC.Port25;
-  GpioInterrupt = InterruptUserButtonC.Interrupt;
-}
diff --git a/tos/platforms/tmicore/MoteClockC.nc b/tos/platforms/tmicore/MoteClockC.nc
deleted file mode 100644 (file)
index 4665609..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Set the DCO and ACLK specs here, effectively overriding those in
- * $TOSDIR/tos/chips/msp430/timer/Msp430DcoSpec.h  This is a little hokey.
- * I think I'd rather do it using a generic interface.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration MoteClockC {
-  provides interface Init as MoteClockInit;
-}
-implementation {
-  components MoteClockP;
-  MoteClockInit = MoteClockP.Init;
-
-  components new Msp430ClockC(8192, 32);
-  MoteClockP.SubInit -> Msp430ClockC.Init;
-}
diff --git a/tos/platforms/tmicore/MoteClockP.nc b/tos/platforms/tmicore/MoteClockP.nc
deleted file mode 100644 (file)
index a335397..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#include "Msp430Timer.h"
-
-module MoteClockP {
-  provides interface Init;
-  uses interface Init as SubInit;
-}
-
-implementation {
-  MSP430REG_NORACE(TAIV);
-  MSP430REG_NORACE(TBIV);
-
-  command error_t Init.init()
-  {
-    volatile uint16_t i;
-
-#if defined (CALDCO_8MHZ_) && !defined(__DisableCalData)
-    if (CALBC1_8MHZ != 0xff || CALDCO_8MHZ != 0xff) {
-      /* Use built-in constant */
-      atomic {
-       /* Initialize timers */
-       TACTL = TASSEL_2 | TACLR | TAIE;
-       TAIV = 0;
-       TBCTL = TBSSEL_1 | TBCLR | TBIE;
-       TBIV = 0;
-
-       /* Initialize DCO from calibrated data.  DCO = 8MHz.  SMCLK = DCO/8 */
-       BCSCTL1 = CALBC1_8MHZ;
-       BCSCTL2 = SELM_0 | DIVM_0 | DIVS_3;
-       DCOCTL = CALDCO_8MHZ;
-
-       /* Turn on timers A and B */
-       TACTL |= MC_2;
-       TBCTL |= MC_2;
-      }
-      return SUCCESS;
-    }
-#endif
-
-    /* Calibrate DCOCLK to ACLK when calibration data are disabled or erased */
-    for (i = 0; i < 0xfffe; i++); /* ensure LFXT1 is stable */
-    return call SubInit.init();
-  }
-}
diff --git a/tos/platforms/tmicore/MotePlatformC.nc b/tos/platforms/tmicore/MotePlatformC.nc
deleted file mode 100644 (file)
index 2199adf..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-module MotePlatformC @safe() {
-  provides interface Init;
-}
-implementation {
-  command error_t Init.init() {
-    /* reset all of the ports to be input and using i/o functionality */
-    atomic
-      {
-       /* Port 1: 7:BQSTAT2, 6:BQSTAT1, 5:-, 4:-, 3:CP_CTS, 2:CP_RTS,
-        * 1:BSL_TX, 0:-
-        */
-       P1SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P1OUT = 0x31;   /* 0 0 1 1 0 0 0 1 */
-       P1DIR = 0x08;   /* 0 0 0 0 1 0 0 0 */
-       P1REN = 0x35;   /* 0 0 1 1 0 1 0 1 */
-
-       /* Port 2:
-        * 7:-, 6:-, 5:BUTTONn, 4:USB_SUSPENDn, 3:-, 2:BSL_RX, 1:USBPGn,
-        * 0:SOLARPGn
-        */
-       P2SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P2OUT = 0xc8;   /* 1 1 0 0 1 0 0 0 */
-       P2DIR = 0x00;   /* 0 0 0 0 0 0 0 0 */
-       P2REN = 0xc8;   /* 1 1 0 0 1 0 0 0 */
-
-       /* Port 3:
-        * 7:UC_RX, 6:UC_TX, 5:-, 4:-, 3:UC_SCK, 2:UC_SOMI, 1:UC_SIMO, 0:-
-        */
-       P3SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P3OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
-       P3DIR = 0x4a;   /* 0 1 0 0 1 0 1 0 */
-       P3REN = 0xb5;   /* 1 0 1 1 0 1 0 1 */
-
-       /* Port 4:
-        * 7:-, 6:LED2n, 5:LED1n, 4:-, 3:-, 2:-, 1:-, 0:-
-        */
-       P4SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P4OUT = 0xff;   /* 1 1 1 1 1 1 1 1 */
-       P4DIR = 0x60;   /* 0 1 1 0 0 0 0 0 */
-       P4REN = 0x9f;   /* 1 0 0 1 1 1 1 1 */
-
-       /* Port 5:
-        * 7:-, 6:-, 5:-, 4:-, 3:-, 2:-, 1:-, 0:-
-        */
-       P5SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P5OUT = 0xff;   /* 1 1 1 1 1 1 1 1 */
-       P5DIR = 0;      /* 0 0 0 0 0 0 0 0 */
-       P5REN = 0xff;   /* 1 1 1 1 1 1 1 1 */
-
-       /* Port 6:
-        * 7:-, 6:-, 5:-, 4:-, 3:-, 2:-, 1:-, 0:ADC_VBATT
-        */
-       P6SEL = 0x01;   /* 0 0 0 0 0 0 0 1 */
-       P6OUT = 0;      /* 0 0 0 0 0 0 0 0 */
-       P6DIR = 0;      /* 0 0 0 0 0 0 0 0 */
-       P6REN = 0xfe;   /* 1 1 1 1 1 1 1 0 */
-
-       P1IE = 0;
-       P2IE = 0;
-      }
-    return SUCCESS;
-  }
-}
diff --git a/tos/platforms/tmicore/PlatformLedsC.nc b/tos/platforms/tmicore/PlatformLedsC.nc
deleted file mode 100644 (file)
index 05b7804..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#include "hardware.h"
-
-configuration PlatformLedsC {
-  provides {
-    interface GeneralIO as Led0;
-    interface GeneralIO as Led1;
-    interface GeneralIO as Led2;
-  }
-  uses interface Init;
-}
-implementation
-{
-  components PlatformP;
-  Init = PlatformP.LedsInit;
-
-  components HplMsp430GeneralIOC as GeneralIOC;
-
-  components new Msp430GpioC() as Led0Impl;
-  Led0 = Led0Impl;
-  Led0Impl -> GeneralIOC.Port45;
-
-  components new Msp430GpioC() as Led1Impl;
-  Led1 = Led1Impl;
-  Led1Impl -> GeneralIOC.Port46;
-
-  components new NoPinC() as Led2Impl;
-  Led2 = Led2Impl;
-}
-
diff --git a/tos/platforms/tmicore/PlatformSerialC.nc b/tos/platforms/tmicore/PlatformSerialC.nc
deleted file mode 100644 (file)
index a32ffa0..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2008-2010, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration PlatformSerialC {
-  provides interface StdControl;
-  provides interface UartStream;
-  provides interface UartByte;
-}
-implementation {
-  components PlatformUartC as UartC;
-  UartStream = UartC;
-  UartByte = UartC;
-
-  components PlatformSerialP;
-  StdControl = PlatformSerialP;
-  PlatformSerialP.Resource -> UartC;
-}
diff --git a/tos/platforms/tmicore/PlatformSerialP.nc b/tos/platforms/tmicore/PlatformSerialP.nc
deleted file mode 100644 (file)
index ae0fb9f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2010, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-module PlatformSerialP {
-  provides interface StdControl;
-  uses interface Resource;
-}
-implementation {
-  command error_t StdControl.start()
-  {
-    return call Resource.immediateRequest();
-  }
-
-  command error_t StdControl.stop()
-  {
-    call Resource.release();
-    return SUCCESS;
-  }
-
-  event void Resource.granted() {}
-}
diff --git a/tos/platforms/tmicore/PlatformUartC.nc b/tos/platforms/tmicore/PlatformUartC.nc
deleted file mode 100644 (file)
index 10a7cec..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2008-2010, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration PlatformUartC {
-  provides {
-    interface Resource;
-    interface UartStream;
-    interface UartByte;
-  }
-}
-implementation {
-  components new Msp430UartA1C() as UartC;
-  Resource = UartC;
-  UartStream = UartC;
-  UartByte = UartC;
-
-#if 0 /* If you want to change the Uart's configuration... */
-  components SomeConfigurationComponentC as ConfigC;
-  UartC.AsyncConfigure -> ConfigC;
-#endif
-}
diff --git a/tos/platforms/tmicore/SwitchToggleC.nc b/tos/platforms/tmicore/SwitchToggleC.nc
deleted file mode 100644 (file)
index 25ef1b9..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Copyright (c) 2007 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * Generic layer to translate a GIO into a toggle switch
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.1 $
- */
-
-#include <UserButton.h>
-
-generic module SwitchToggleC() {
-  provides interface Get<bool>;
-  provides interface Notify<bool>;
-
-  uses interface GeneralIO;
-  uses interface GpioInterrupt;
-}
-implementation {
-  norace bool m_pinHigh;
-
-  task void sendEvent();
-
-  command bool Get.get() { return call GeneralIO.get(); }
-
-  command error_t Notify.enable() {
-    call GeneralIO.makeInput();
-
-    if ( call GeneralIO.get() ) {
-      m_pinHigh = TRUE;
-      return call GpioInterrupt.enableFallingEdge();
-    } else {
-      m_pinHigh = FALSE;
-      return call GpioInterrupt.enableRisingEdge();
-    }
-  }
-
-  command error_t Notify.disable() {
-    return call GpioInterrupt.disable();
-  }
-
-  async event void GpioInterrupt.fired() {
-    call GpioInterrupt.disable();
-
-    m_pinHigh = !m_pinHigh;
-
-    post sendEvent();
-  }
-
-  task void sendEvent() {
-    bool pinHigh;
-    pinHigh = m_pinHigh;
-
-    signal Notify.notify( pinHigh );
-
-    if ( pinHigh ) {
-      call GpioInterrupt.enableFallingEdge();
-    } else {
-      call GpioInterrupt.enableRisingEdge();
-    }
-  }
-}
diff --git a/tos/platforms/tmicore/UserButton.h b/tos/platforms/tmicore/UserButton.h
deleted file mode 100644 (file)
index 97f124e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#ifndef USERBUTTON_H
-#define USERBUTTON_H
-
-typedef enum { BUTTON_RELEASED = 0, BUTTON_PRESSED = 1 } button_state_t;
-
-#endif
diff --git a/tos/platforms/tmicore/UserButtonC.nc b/tos/platforms/tmicore/UserButtonC.nc
deleted file mode 100644 (file)
index ff374ce..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#include <UserButton.h>
-
-configuration UserButtonC {
-  provides interface Get<button_state_t>;
-  provides interface Notify<button_state_t>;
-}
-implementation {
-  components HplUserButtonC;
-  components new SwitchToggleC();
-  SwitchToggleC.GpioInterrupt -> HplUserButtonC.GpioInterrupt;
-  SwitchToggleC.GeneralIO -> HplUserButtonC.GeneralIO;
-
-  components UserButtonP;
-  Get = UserButtonP;
-  Notify = UserButtonP;
-
-  UserButtonP.GetLower -> SwitchToggleC.Get;
-  UserButtonP.NotifyLower -> SwitchToggleC.Notify;
-}
diff --git a/tos/platforms/tmicore/UserButtonP.nc b/tos/platforms/tmicore/UserButtonP.nc
deleted file mode 100644 (file)
index 42e817e..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#include <UserButton.h>
-
-module UserButtonP {
-  provides interface Get<button_state_t>;
-  provides interface Notify<button_state_t>;
-
-  uses interface Get<bool> as GetLower;
-  uses interface Notify<bool> as NotifyLower;
-}
-implementation {
-
-  command button_state_t Get.get() {
-    /* tmirws user button pin is high when released - active low */
-    if ( call GetLower.get() ) {
-      return BUTTON_RELEASED;
-    } else {
-      return BUTTON_PRESSED;
-    }
-  }
-
-  command error_t Notify.enable() {
-    return call NotifyLower.enable();
-  }
-
-  command error_t Notify.disable() {
-    return call NotifyLower.disable();
-  }
-
-  event void NotifyLower.notify( bool val ) {
-    /* tmirws user button pin is high when released - active low */
-    if ( val ) {
-      signal Notify.notify( BUTTON_RELEASED );
-    } else {
-      signal Notify.notify( BUTTON_PRESSED );
-    }
-  }
-
-  default event void Notify.notify( button_state_t val ) { }
-}
diff --git a/tos/platforms/tmicore/VoltageC.nc b/tos/platforms/tmicore/VoltageC.nc
deleted file mode 100644 (file)
index d916c19..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * VoltageC is a common name for the Msp430InternalVoltageC voltage
- * sensor available on the telosb platform.
- *
- * To convert from ADC counts to actual voltage, divide by 4096 and
- * multiply by 3.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-generic configuration VoltageC() {
-  provides interface Read<uint16_t>;
-}
-implementation {
-  components new Msp430InternalVoltageC();
-  Read = Msp430InternalVoltageC.Read;
-}
-
diff --git a/tos/platforms/tmicore/VoltageStreamC.nc b/tos/platforms/tmicore/VoltageStreamC.nc
deleted file mode 100644 (file)
index afbcd6c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * VoltageC is a common name for the Msp430InternalVoltageC voltage
- * sensor available on the telosb platform.
- *
- * To convert from ADC counts to actual voltage, divide by 4096 and
- * multiply by 3.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-generic configuration VoltageStreamC() {
-  provides interface ReadStream<uint16_t>;
-}
-implementation {
-  components new Msp430InternalVoltageC();
-  ReadStream = Msp430InternalVoltageC.ReadStream;
-}
-
diff --git a/tos/platforms/tmicore/chips/at25df/At25dfSpiConfigP.nc b/tos/platforms/tmicore/chips/at25df/At25dfSpiConfigP.nc
deleted file mode 100644 (file)
index dd7d59b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * USCI Spi test program runs the peripheral in loopback mode.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-module At25dfSpiConfigP {
-  provides interface AsyncConfigure<const msp430_usci_spi_t*> as Configure;
-}
-implementation {
-  const static msp430_usci_spi_t def = {
-    ctl0: UCSYNC | UCMODE_0 | UCMST | UCMSB | UCCKPL, /* SPI mode0 master, MSB first */
-    ctl1: UCSWRST | UCSSEL_3,  /* clock spi from SMCLK */
-    brx: 1,
-    uclisten: FALSE,
-    ren: USCI_REN_NONE
-  };
-
-  async command const msp430_usci_spi_t* Configure.get()
-  {
-    return &def;
-  }
-}
diff --git a/tos/platforms/tmicore/chips/at25df/HplStm25pPinsC.nc b/tos/platforms/tmicore/chips/at25df/HplStm25pPinsC.nc
deleted file mode 100644 (file)
index fc3bb41..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * HPL implementation of general-purpose I/O for a ST M25P chip
- * connected to a TI MSP430.
- *
- * @author Jonathan Hui <jhui@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-configuration HplStm25pPinsC {
-  provides {
-    interface GeneralIO as CSN;
-    interface GeneralIO as Hold;
-  }
-}
-implementation {
-  components new Msp430GpioC() as CSNM;
-  CSN = CSNM;
-
-  components new NoMsp430GpioC() as HoldM;
-  Hold = HoldM;
-
-  components HplMsp430GeneralIOC as HplGeneralIOC;
-  CSNM -> HplGeneralIOC.Port44;
-}
diff --git a/tos/platforms/tmicore/chips/at25df/HplStm25pSpiC.nc b/tos/platforms/tmicore/chips/at25df/HplStm25pSpiC.nc
deleted file mode 100644 (file)
index e17579d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * HPL implementation of the Spi bus for a ST M25P chip connected to a
- * TI MSP430.
- *
- * @author Jonathan Hui <jhui@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-configuration HplStm25pSpiC {
-  provides {
-    interface Resource;
-    interface SpiByte;
-    interface SpiPacket;
-  }
-}
-implementation {
-  components new Msp430SpiB0C(0) as SpiC;
-  Resource = SpiC;
-  SpiByte = SpiC;
-  SpiPacket = SpiC;
-
-  components At25dfSpiConfigP;
-  SpiC.Configure -> At25dfSpiConfigP;
-}
diff --git a/tos/platforms/tmicore/chips/at25df/NoMsp430GpioC.nc b/tos/platforms/tmicore/chips/at25df/NoMsp430GpioC.nc
deleted file mode 100644 (file)
index 57b0e25..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-/* "Copyright (c) 2000-2003 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 noop version of Msp430GpioC.
- *
- * @author Joe Polastre
- * @see  Please refer to TEP 117 for more information about this component and its
- *          intended use.
- */
-
-generic module NoMsp430GpioC() @safe() {
-  provides interface GeneralIO;
-}
-implementation {
-
-  async command void GeneralIO.set() {}
-  async command void GeneralIO.clr() {}
-  async command void GeneralIO.toggle() {}
-  async command bool GeneralIO.get() { return FALSE; }
-  async command void GeneralIO.makeInput() {}
-  async command bool GeneralIO.isInput() { return TRUE; }
-  async command void GeneralIO.makeOutput() {}
-  async command bool GeneralIO.isOutput() { return FALSE; }
-
-}
diff --git a/tos/platforms/tmicore/chips/bq2403x/BQ2403XPinsC.nc b/tos/platforms/tmicore/chips/bq2403x/BQ2403XPinsC.nc
deleted file mode 100644 (file)
index 23cd698..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Pin assignments for the bq24032 on the tmicore.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration BQ2403XPinsC {
-  provides {
-    interface GeneralIO as BQstat1;
-    interface GeneralIO as BQstat2;
-    interface GeneralIO as ACPGn;
-    interface GeneralIO as USBPGn;
-
-    interface GpioInterrupt as IntBQstat1;
-    interface GpioInterrupt as IntBQstat2;
-    interface GpioInterrupt as IntACPGn;
-    interface GpioInterrupt as IntUSBPGn;
-  }
-}
-implementation {
-  components new Msp430GpioC() as BQstat1C;
-  BQstat1 = BQstat1C;
-
-  components new Msp430GpioC() as BQstat2C;
-  BQstat2 = BQstat2C;
-
-  components new Msp430GpioC() as ACPGnC;
-  ACPGn = ACPGnC;
-
-  components new Msp430GpioC() as USBPGnC;
-  USBPGn = USBPGnC;
-
-  components new Msp430InterruptC() as IntBQstat1C;
-  IntBQstat1 = IntBQstat1C;
-
-  components new Msp430InterruptC() as IntBQstat2C;
-  IntBQstat2 = IntBQstat2C;
-
-  components new Msp430InterruptC() as IntACPGnC;
-  IntACPGn = IntACPGnC;
-
-  components new Msp430InterruptC() as IntUSBPGnC;
-  IntUSBPGn = IntUSBPGnC;
-
-  components HplMsp430GeneralIOC as IOC;
-  BQstat1C.HplGeneralIO -> IOC.Port16;
-  BQstat2C.HplGeneralIO -> IOC.Port17;
-  ACPGnC.HplGeneralIO -> IOC.Port20;
-  USBPGnC.HplGeneralIO -> IOC.Port21;
-
-  components HplMsp430InterruptC as IntC;
-  IntBQstat1C.HplInterrupt -> IntC.Port16;
-  IntBQstat2C.HplInterrupt -> IntC.Port17;
-  IntACPGnC.HplInterrupt -> IntC.Port20;
-  IntUSBPGnC.HplInterrupt -> IntC.Port21;
-}
diff --git a/tos/platforms/tmicore/chips/cp210x/CP210XPinsC.nc b/tos/platforms/tmicore/chips/cp210x/CP210XPinsC.nc
deleted file mode 100644 (file)
index e4a4b2f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Pin assignments for the cp2103 on the tmicore.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration CP210XPinsC {
-  provides {
-    interface GeneralIO as USB_SUSPENDn;
-    interface GpioInterrupt as IntUSB_SUSPENDn;
-  }
-}
-implementation {
-  components new Msp430GpioC() as USB_SUSPENDnC;
-  USB_SUSPENDn = USB_SUSPENDnC;
-
-  components new Msp430InterruptC() as IntUSB_SUSPENDnC;
-  IntUSB_SUSPENDn = IntUSB_SUSPENDnC;
-
-  components HplMsp430GeneralIOC as IOC;
-  USB_SUSPENDnC.HplGeneralIO -> IOC.Port24;
-
-  components HplMsp430InterruptC as IntC;
-  IntUSB_SUSPENDnC.HplInterrupt -> IntC.Port24;
-}
diff --git a/tos/platforms/tmicore/hardware.h b/tos/platforms/tmicore/hardware.h
deleted file mode 100644 (file)
index c556ef0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef _H_hardware_h
-#define _H_hardware_h
-
-#include "msp430hardware.h"
-//#include "MSP430ADC12.h"
-//#include "CC2420Const.h"
-//#include "AM.h"
-
-// need to undef atomic inside header files or nesC ignores the directive
-#undef atomic
-
-#endif // _H_hardware_h
diff --git a/tos/platforms/tmicore/platform.h b/tos/platforms/tmicore/platform.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/tos/platforms/tmimsp/.family b/tos/platforms/tmimsp/.family
new file mode 100644 (file)
index 0000000..bda9749
--- /dev/null
@@ -0,0 +1,62 @@
+# tmimsp .family
+#
+# Includes that should take precedence come first.  Platforms come before
+# chips because they may override files.  These must be specified as
+# @includes instead of -I's to @opts, otherwise the %T won't be processed
+# by ncc.
+
+push( @includes, qw(
+  %F/common
+  %F/common/chips/bq2403x
+  %F/common/chips/cp210x
+  %T/platforms/telosa
+  %T/chips/msp430
+  %T/chips/msp430/adc12
+  %T/chips/msp430/dma
+  %T/chips/msp430/pins
+  %T/chips/msp430/timer
+  %T/chips/msp430/usci
+  %T/chips/msp430/sensors
+  %T/chips/bq2403x
+  %T/chips/cp210x
+  %T/lib/timer
+  %T/lib/serial
+  %T/lib/adc
+  %T/lib/power
+) );
+
+@opts = qw(
+  -gcc=msp430-gcc
+  -mmcu=msp430x2417
+  -fnesc-target=msp430
+  -fnesc-no-debug
+);
+
+push @opts, "-fnesc-scheduler=TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" if !$with_scheduler_flag;
+push @opts, "-mingw-gcc" if $cygwin;
+
+$ENV{'CIL_MACHINE'} =
+    "version_major=3 " .
+    "version_minor=2 " .
+    "version=msp430-3.2.3 " .
+    "short=2,2 " .
+    "int=2,2 " .
+    "long=4,2 " .
+    "long_long=8,2 " .
+    "pointer=2,2 " .
+    "enum=2,2 " .
+    "float=4,2 " .
+    "double=4,2 " .
+    "long_double=4,2 " .
+    "void=1,1 " .
+    "fun=1,2 " .
+    "wchar_size_size=2,2 " .
+    "alignof_string=1 " .
+    "max_alignment=1 " .
+    "char_wchar_signed=true,true " .
+    "const_string_literals=true " .
+    "big_endian=false " .
+    "underscore_name=false " .
+    "__builtin_va_list=true " .
+    "__thread_is_keyword=true";
+
diff --git a/tos/platforms/tmimsp/common/DemoSensorC.nc b/tos/platforms/tmimsp/common/DemoSensorC.nc
new file mode 100644 (file)
index 0000000..4788625
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * DemoSensorC is a generic sensor device that provides a 16-bit
+ * value. The platform author chooses which sensor actually sits
+ * behind DemoSensorC, and though it's probably Voltage, Light, or
+ * Temperature, there are no guarantees.
+ *
+ * This particular DemoSensorC on the telosb platform provides a
+ * voltage reading, using VoltageC.
+ *
+ * To convert from ADC counts to actual voltage, divide this reading
+ * by 4096 and multiply by 3.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ *
+ */
+
+generic configuration DemoSensorC()
+{
+  provides interface Read<uint16_t>;
+}
+implementation
+{
+  components new VoltageC() as DemoSensor;
+  Read = DemoSensor;
+}
diff --git a/tos/platforms/tmimsp/common/DemoSensorNowC.nc b/tos/platforms/tmimsp/common/DemoSensorNowC.nc
new file mode 100644 (file)
index 0000000..da4c4f4
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * DemoSensorNowC is a generic sensor device that provides a 16-bit
+ * value that can be read from async context. The platform author
+ * chooses which sensor actually sits behind DemoSensorNowC, and
+ * though it's probably Voltage, Light, or Temperature, there are no
+ * guarantees.
+ *
+ * This particular DemoSensorNowC on the telosb platform provides a
+ * voltage reading, using VoltageC.
+ *
+ * To convert from ADC counts to actual voltage, divide this reading
+ * by 4096 and multiply by 3.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ *
+ */
+
+generic configuration DemoSensorNowC()
+{
+  provides interface Resource;
+  provides interface ReadNow<uint16_t>;
+}
+implementation
+{
+  components new Msp430InternalVoltageC() as DemoSensorNow;
+
+  Resource = DemoSensorNow;
+  ReadNow = DemoSensorNow;
+}
diff --git a/tos/platforms/tmimsp/common/DemoSensorStreamC.nc b/tos/platforms/tmimsp/common/DemoSensorStreamC.nc
new file mode 100644 (file)
index 0000000..08d40d5
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * DemoSensorStreamC is a generic sensor device that provides a 16-bit
+ * value. The platform author chooses which sensor actually sits
+ * behind DemoSensorStreamC, and though it's probably Voltage, Light, or
+ * Temperature, there are no guarantees.
+ *
+ * This particular DemoSensorStreamC on the telosb platform provides a
+ * voltage reading, using VoltageStreamC.
+ *
+ * To convert from ADC counts to actual voltage, divide this reading
+ * by 4096 and multiply by 3.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ *
+ */
+
+generic configuration DemoSensorStreamC()
+{
+  provides interface ReadStream<uint16_t>;
+}
+implementation
+{
+  components new VoltageStreamC() as DemoSensor;
+  ReadStream = DemoSensor;
+}
diff --git a/tos/platforms/tmimsp/common/HplUserButtonC.nc b/tos/platforms/tmimsp/common/HplUserButtonC.nc
new file mode 100644 (file)
index 0000000..9963c60
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration HplUserButtonC {
+  provides interface GeneralIO;
+  provides interface GpioInterrupt;
+}
+implementation {
+  components HplMsp430GeneralIOC as GeneralIOC;
+  components HplMsp430InterruptC as InterruptC;
+
+  components new Msp430GpioC() as UserButtonC;
+  UserButtonC -> GeneralIOC.Port25;
+  GeneralIO = UserButtonC;
+
+  components new Msp430InterruptC() as InterruptUserButtonC;
+  InterruptUserButtonC.HplInterrupt -> InterruptC.Port25;
+  GpioInterrupt = InterruptUserButtonC.Interrupt;
+}
diff --git a/tos/platforms/tmimsp/common/MoteClockC.nc b/tos/platforms/tmimsp/common/MoteClockC.nc
new file mode 100644 (file)
index 0000000..4665609
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Set the DCO and ACLK specs here, effectively overriding those in
+ * $TOSDIR/tos/chips/msp430/timer/Msp430DcoSpec.h  This is a little hokey.
+ * I think I'd rather do it using a generic interface.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration MoteClockC {
+  provides interface Init as MoteClockInit;
+}
+implementation {
+  components MoteClockP;
+  MoteClockInit = MoteClockP.Init;
+
+  components new Msp430ClockC(8192, 32);
+  MoteClockP.SubInit -> Msp430ClockC.Init;
+}
diff --git a/tos/platforms/tmimsp/common/MoteClockP.nc b/tos/platforms/tmimsp/common/MoteClockP.nc
new file mode 100644 (file)
index 0000000..a335397
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#include "Msp430Timer.h"
+
+module MoteClockP {
+  provides interface Init;
+  uses interface Init as SubInit;
+}
+
+implementation {
+  MSP430REG_NORACE(TAIV);
+  MSP430REG_NORACE(TBIV);
+
+  command error_t Init.init()
+  {
+    volatile uint16_t i;
+
+#if defined (CALDCO_8MHZ_) && !defined(__DisableCalData)
+    if (CALBC1_8MHZ != 0xff || CALDCO_8MHZ != 0xff) {
+      /* Use built-in constant */
+      atomic {
+       /* Initialize timers */
+       TACTL = TASSEL_2 | TACLR | TAIE;
+       TAIV = 0;
+       TBCTL = TBSSEL_1 | TBCLR | TBIE;
+       TBIV = 0;
+
+       /* Initialize DCO from calibrated data.  DCO = 8MHz.  SMCLK = DCO/8 */
+       BCSCTL1 = CALBC1_8MHZ;
+       BCSCTL2 = SELM_0 | DIVM_0 | DIVS_3;
+       DCOCTL = CALDCO_8MHZ;
+
+       /* Turn on timers A and B */
+       TACTL |= MC_2;
+       TBCTL |= MC_2;
+      }
+      return SUCCESS;
+    }
+#endif
+
+    /* Calibrate DCOCLK to ACLK when calibration data are disabled or erased */
+    for (i = 0; i < 0xfffe; i++); /* ensure LFXT1 is stable */
+    return call SubInit.init();
+  }
+}
diff --git a/tos/platforms/tmimsp/common/MotePlatformC.nc b/tos/platforms/tmimsp/common/MotePlatformC.nc
new file mode 100644 (file)
index 0000000..2199adf
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+module MotePlatformC @safe() {
+  provides interface Init;
+}
+implementation {
+  command error_t Init.init() {
+    /* reset all of the ports to be input and using i/o functionality */
+    atomic
+      {
+       /* Port 1: 7:BQSTAT2, 6:BQSTAT1, 5:-, 4:-, 3:CP_CTS, 2:CP_RTS,
+        * 1:BSL_TX, 0:-
+        */
+       P1SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P1OUT = 0x31;   /* 0 0 1 1 0 0 0 1 */
+       P1DIR = 0x08;   /* 0 0 0 0 1 0 0 0 */
+       P1REN = 0x35;   /* 0 0 1 1 0 1 0 1 */
+
+       /* Port 2:
+        * 7:-, 6:-, 5:BUTTONn, 4:USB_SUSPENDn, 3:-, 2:BSL_RX, 1:USBPGn,
+        * 0:SOLARPGn
+        */
+       P2SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P2OUT = 0xc8;   /* 1 1 0 0 1 0 0 0 */
+       P2DIR = 0x00;   /* 0 0 0 0 0 0 0 0 */
+       P2REN = 0xc8;   /* 1 1 0 0 1 0 0 0 */
+
+       /* Port 3:
+        * 7:UC_RX, 6:UC_TX, 5:-, 4:-, 3:UC_SCK, 2:UC_SOMI, 1:UC_SIMO, 0:-
+        */
+       P3SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P3OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
+       P3DIR = 0x4a;   /* 0 1 0 0 1 0 1 0 */
+       P3REN = 0xb5;   /* 1 0 1 1 0 1 0 1 */
+
+       /* Port 4:
+        * 7:-, 6:LED2n, 5:LED1n, 4:-, 3:-, 2:-, 1:-, 0:-
+        */
+       P4SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P4OUT = 0xff;   /* 1 1 1 1 1 1 1 1 */
+       P4DIR = 0x60;   /* 0 1 1 0 0 0 0 0 */
+       P4REN = 0x9f;   /* 1 0 0 1 1 1 1 1 */
+
+       /* Port 5:
+        * 7:-, 6:-, 5:-, 4:-, 3:-, 2:-, 1:-, 0:-
+        */
+       P5SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P5OUT = 0xff;   /* 1 1 1 1 1 1 1 1 */
+       P5DIR = 0;      /* 0 0 0 0 0 0 0 0 */
+       P5REN = 0xff;   /* 1 1 1 1 1 1 1 1 */
+
+       /* Port 6:
+        * 7:-, 6:-, 5:-, 4:-, 3:-, 2:-, 1:-, 0:ADC_VBATT
+        */
+       P6SEL = 0x01;   /* 0 0 0 0 0 0 0 1 */
+       P6OUT = 0;      /* 0 0 0 0 0 0 0 0 */
+       P6DIR = 0;      /* 0 0 0 0 0 0 0 0 */
+       P6REN = 0xfe;   /* 1 1 1 1 1 1 1 0 */
+
+       P1IE = 0;
+       P2IE = 0;
+      }
+    return SUCCESS;
+  }
+}
diff --git a/tos/platforms/tmimsp/common/PlatformLedsC.nc b/tos/platforms/tmimsp/common/PlatformLedsC.nc
new file mode 100644 (file)
index 0000000..05b7804
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#include "hardware.h"
+
+configuration PlatformLedsC {
+  provides {
+    interface GeneralIO as Led0;
+    interface GeneralIO as Led1;
+    interface GeneralIO as Led2;
+  }
+  uses interface Init;
+}
+implementation
+{
+  components PlatformP;
+  Init = PlatformP.LedsInit;
+
+  components HplMsp430GeneralIOC as GeneralIOC;
+
+  components new Msp430GpioC() as Led0Impl;
+  Led0 = Led0Impl;
+  Led0Impl -> GeneralIOC.Port45;
+
+  components new Msp430GpioC() as Led1Impl;
+  Led1 = Led1Impl;
+  Led1Impl -> GeneralIOC.Port46;
+
+  components new NoPinC() as Led2Impl;
+  Led2 = Led2Impl;
+}
+
diff --git a/tos/platforms/tmimsp/common/PlatformSerialC.nc b/tos/platforms/tmimsp/common/PlatformSerialC.nc
new file mode 100644 (file)
index 0000000..a32ffa0
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2008-2010, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration PlatformSerialC {
+  provides interface StdControl;
+  provides interface UartStream;
+  provides interface UartByte;
+}
+implementation {
+  components PlatformUartC as UartC;
+  UartStream = UartC;
+  UartByte = UartC;
+
+  components PlatformSerialP;
+  StdControl = PlatformSerialP;
+  PlatformSerialP.Resource -> UartC;
+}
diff --git a/tos/platforms/tmimsp/common/PlatformSerialP.nc b/tos/platforms/tmimsp/common/PlatformSerialP.nc
new file mode 100644 (file)
index 0000000..ae0fb9f
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+module PlatformSerialP {
+  provides interface StdControl;
+  uses interface Resource;
+}
+implementation {
+  command error_t StdControl.start()
+  {
+    return call Resource.immediateRequest();
+  }
+
+  command error_t StdControl.stop()
+  {
+    call Resource.release();
+    return SUCCESS;
+  }
+
+  event void Resource.granted() {}
+}
diff --git a/tos/platforms/tmimsp/common/PlatformUartC.nc b/tos/platforms/tmimsp/common/PlatformUartC.nc
new file mode 100644 (file)
index 0000000..10a7cec
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2008-2010, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration PlatformUartC {
+  provides {
+    interface Resource;
+    interface UartStream;
+    interface UartByte;
+  }
+}
+implementation {
+  components new Msp430UartA1C() as UartC;
+  Resource = UartC;
+  UartStream = UartC;
+  UartByte = UartC;
+
+#if 0 /* If you want to change the Uart's configuration... */
+  components SomeConfigurationComponentC as ConfigC;
+  UartC.AsyncConfigure -> ConfigC;
+#endif
+}
diff --git a/tos/platforms/tmimsp/common/SwitchToggleC.nc b/tos/platforms/tmimsp/common/SwitchToggleC.nc
new file mode 100644 (file)
index 0000000..25ef1b9
--- /dev/null
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2007 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * Generic layer to translate a GIO into a toggle switch
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.1 $
+ */
+
+#include <UserButton.h>
+
+generic module SwitchToggleC() {
+  provides interface Get<bool>;
+  provides interface Notify<bool>;
+
+  uses interface GeneralIO;
+  uses interface GpioInterrupt;
+}
+implementation {
+  norace bool m_pinHigh;
+
+  task void sendEvent();
+
+  command bool Get.get() { return call GeneralIO.get(); }
+
+  command error_t Notify.enable() {
+    call GeneralIO.makeInput();
+
+    if ( call GeneralIO.get() ) {
+      m_pinHigh = TRUE;
+      return call GpioInterrupt.enableFallingEdge();
+    } else {
+      m_pinHigh = FALSE;
+      return call GpioInterrupt.enableRisingEdge();
+    }
+  }
+
+  command error_t Notify.disable() {
+    return call GpioInterrupt.disable();
+  }
+
+  async event void GpioInterrupt.fired() {
+    call GpioInterrupt.disable();
+
+    m_pinHigh = !m_pinHigh;
+
+    post sendEvent();
+  }
+
+  task void sendEvent() {
+    bool pinHigh;
+    pinHigh = m_pinHigh;
+
+    signal Notify.notify( pinHigh );
+
+    if ( pinHigh ) {
+      call GpioInterrupt.enableFallingEdge();
+    } else {
+      call GpioInterrupt.enableRisingEdge();
+    }
+  }
+}
diff --git a/tos/platforms/tmimsp/common/UserButton.h b/tos/platforms/tmimsp/common/UserButton.h
new file mode 100644 (file)
index 0000000..97f124e
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#ifndef USERBUTTON_H
+#define USERBUTTON_H
+
+typedef enum { BUTTON_RELEASED = 0, BUTTON_PRESSED = 1 } button_state_t;
+
+#endif
diff --git a/tos/platforms/tmimsp/common/UserButtonC.nc b/tos/platforms/tmimsp/common/UserButtonC.nc
new file mode 100644 (file)
index 0000000..ff374ce
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#include <UserButton.h>
+
+configuration UserButtonC {
+  provides interface Get<button_state_t>;
+  provides interface Notify<button_state_t>;
+}
+implementation {
+  components HplUserButtonC;
+  components new SwitchToggleC();
+  SwitchToggleC.GpioInterrupt -> HplUserButtonC.GpioInterrupt;
+  SwitchToggleC.GeneralIO -> HplUserButtonC.GeneralIO;
+
+  components UserButtonP;
+  Get = UserButtonP;
+  Notify = UserButtonP;
+
+  UserButtonP.GetLower -> SwitchToggleC.Get;
+  UserButtonP.NotifyLower -> SwitchToggleC.Notify;
+}
diff --git a/tos/platforms/tmimsp/common/UserButtonP.nc b/tos/platforms/tmimsp/common/UserButtonP.nc
new file mode 100644 (file)
index 0000000..42e817e
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#include <UserButton.h>
+
+module UserButtonP {
+  provides interface Get<button_state_t>;
+  provides interface Notify<button_state_t>;
+
+  uses interface Get<bool> as GetLower;
+  uses interface Notify<bool> as NotifyLower;
+}
+implementation {
+
+  command button_state_t Get.get() {
+    /* tmirws user button pin is high when released - active low */
+    if ( call GetLower.get() ) {
+      return BUTTON_RELEASED;
+    } else {
+      return BUTTON_PRESSED;
+    }
+  }
+
+  command error_t Notify.enable() {
+    return call NotifyLower.enable();
+  }
+
+  command error_t Notify.disable() {
+    return call NotifyLower.disable();
+  }
+
+  event void NotifyLower.notify( bool val ) {
+    /* tmirws user button pin is high when released - active low */
+    if ( val ) {
+      signal Notify.notify( BUTTON_RELEASED );
+    } else {
+      signal Notify.notify( BUTTON_PRESSED );
+    }
+  }
+
+  default event void Notify.notify( button_state_t val ) { }
+}
diff --git a/tos/platforms/tmimsp/common/VoltageC.nc b/tos/platforms/tmimsp/common/VoltageC.nc
new file mode 100644 (file)
index 0000000..d916c19
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * VoltageC is a common name for the Msp430InternalVoltageC voltage
+ * sensor available on the telosb platform.
+ *
+ * To convert from ADC counts to actual voltage, divide by 4096 and
+ * multiply by 3.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+generic configuration VoltageC() {
+  provides interface Read<uint16_t>;
+}
+implementation {
+  components new Msp430InternalVoltageC();
+  Read = Msp430InternalVoltageC.Read;
+}
+
diff --git a/tos/platforms/tmimsp/common/VoltageStreamC.nc b/tos/platforms/tmimsp/common/VoltageStreamC.nc
new file mode 100644 (file)
index 0000000..afbcd6c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * VoltageC is a common name for the Msp430InternalVoltageC voltage
+ * sensor available on the telosb platform.
+ *
+ * To convert from ADC counts to actual voltage, divide by 4096 and
+ * multiply by 3.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+generic configuration VoltageStreamC() {
+  provides interface ReadStream<uint16_t>;
+}
+implementation {
+  components new Msp430InternalVoltageC();
+  ReadStream = Msp430InternalVoltageC.ReadStream;
+}
+
diff --git a/tos/platforms/tmimsp/common/chips/at25df/At25dfSpiConfigP.nc b/tos/platforms/tmimsp/common/chips/at25df/At25dfSpiConfigP.nc
new file mode 100644 (file)
index 0000000..dd7d59b
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * USCI Spi test program runs the peripheral in loopback mode.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+module At25dfSpiConfigP {
+  provides interface AsyncConfigure<const msp430_usci_spi_t*> as Configure;
+}
+implementation {
+  const static msp430_usci_spi_t def = {
+    ctl0: UCSYNC | UCMODE_0 | UCMST | UCMSB | UCCKPL, /* SPI mode0 master, MSB first */
+    ctl1: UCSWRST | UCSSEL_3,  /* clock spi from SMCLK */
+    brx: 1,
+    uclisten: FALSE,
+    ren: USCI_REN_NONE
+  };
+
+  async command const msp430_usci_spi_t* Configure.get()
+  {
+    return &def;
+  }
+}
diff --git a/tos/platforms/tmimsp/common/chips/at25df/HplStm25pPinsC.nc b/tos/platforms/tmimsp/common/chips/at25df/HplStm25pPinsC.nc
new file mode 100644 (file)
index 0000000..fc3bb41
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * HPL implementation of general-purpose I/O for a ST M25P chip
+ * connected to a TI MSP430.
+ *
+ * @author Jonathan Hui <jhui@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+configuration HplStm25pPinsC {
+  provides {
+    interface GeneralIO as CSN;
+    interface GeneralIO as Hold;
+  }
+}
+implementation {
+  components new Msp430GpioC() as CSNM;
+  CSN = CSNM;
+
+  components new NoMsp430GpioC() as HoldM;
+  Hold = HoldM;
+
+  components HplMsp430GeneralIOC as HplGeneralIOC;
+  CSNM -> HplGeneralIOC.Port44;
+}
diff --git a/tos/platforms/tmimsp/common/chips/at25df/HplStm25pSpiC.nc b/tos/platforms/tmimsp/common/chips/at25df/HplStm25pSpiC.nc
new file mode 100644 (file)
index 0000000..e17579d
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * HPL implementation of the Spi bus for a ST M25P chip connected to a
+ * TI MSP430.
+ *
+ * @author Jonathan Hui <jhui@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+configuration HplStm25pSpiC {
+  provides {
+    interface Resource;
+    interface SpiByte;
+    interface SpiPacket;
+  }
+}
+implementation {
+  components new Msp430SpiB0C(0) as SpiC;
+  Resource = SpiC;
+  SpiByte = SpiC;
+  SpiPacket = SpiC;
+
+  components At25dfSpiConfigP;
+  SpiC.Configure -> At25dfSpiConfigP;
+}
diff --git a/tos/platforms/tmimsp/common/chips/at25df/NoMsp430GpioC.nc b/tos/platforms/tmimsp/common/chips/at25df/NoMsp430GpioC.nc
new file mode 100644 (file)
index 0000000..57b0e25
--- /dev/null
@@ -0,0 +1,44 @@
+
+/* "Copyright (c) 2000-2003 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 noop version of Msp430GpioC.
+ *
+ * @author Joe Polastre
+ * @see  Please refer to TEP 117 for more information about this component and its
+ *          intended use.
+ */
+
+generic module NoMsp430GpioC() @safe() {
+  provides interface GeneralIO;
+}
+implementation {
+
+  async command void GeneralIO.set() {}
+  async command void GeneralIO.clr() {}
+  async command void GeneralIO.toggle() {}
+  async command bool GeneralIO.get() { return FALSE; }
+  async command void GeneralIO.makeInput() {}
+  async command bool GeneralIO.isInput() { return TRUE; }
+  async command void GeneralIO.makeOutput() {}
+  async command bool GeneralIO.isOutput() { return FALSE; }
+
+}
diff --git a/tos/platforms/tmimsp/common/chips/bq2403x/BQ2403XPinsC.nc b/tos/platforms/tmimsp/common/chips/bq2403x/BQ2403XPinsC.nc
new file mode 100644 (file)
index 0000000..23cd698
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Pin assignments for the bq24032 on the tmicore.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration BQ2403XPinsC {
+  provides {
+    interface GeneralIO as BQstat1;
+    interface GeneralIO as BQstat2;
+    interface GeneralIO as ACPGn;
+    interface GeneralIO as USBPGn;
+
+    interface GpioInterrupt as IntBQstat1;
+    interface GpioInterrupt as IntBQstat2;
+    interface GpioInterrupt as IntACPGn;
+    interface GpioInterrupt as IntUSBPGn;
+  }
+}
+implementation {
+  components new Msp430GpioC() as BQstat1C;
+  BQstat1 = BQstat1C;
+
+  components new Msp430GpioC() as BQstat2C;
+  BQstat2 = BQstat2C;
+
+  components new Msp430GpioC() as ACPGnC;
+  ACPGn = ACPGnC;
+
+  components new Msp430GpioC() as USBPGnC;
+  USBPGn = USBPGnC;
+
+  components new Msp430InterruptC() as IntBQstat1C;
+  IntBQstat1 = IntBQstat1C;
+
+  components new Msp430InterruptC() as IntBQstat2C;
+  IntBQstat2 = IntBQstat2C;
+
+  components new Msp430InterruptC() as IntACPGnC;
+  IntACPGn = IntACPGnC;
+
+  components new Msp430InterruptC() as IntUSBPGnC;
+  IntUSBPGn = IntUSBPGnC;
+
+  components HplMsp430GeneralIOC as IOC;
+  BQstat1C.HplGeneralIO -> IOC.Port16;
+  BQstat2C.HplGeneralIO -> IOC.Port17;
+  ACPGnC.HplGeneralIO -> IOC.Port20;
+  USBPGnC.HplGeneralIO -> IOC.Port21;
+
+  components HplMsp430InterruptC as IntC;
+  IntBQstat1C.HplInterrupt -> IntC.Port16;
+  IntBQstat2C.HplInterrupt -> IntC.Port17;
+  IntACPGnC.HplInterrupt -> IntC.Port20;
+  IntUSBPGnC.HplInterrupt -> IntC.Port21;
+}
diff --git a/tos/platforms/tmimsp/common/chips/cp210x/CP210XPinsC.nc b/tos/platforms/tmimsp/common/chips/cp210x/CP210XPinsC.nc
new file mode 100644 (file)
index 0000000..e4a4b2f
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Pin assignments for the cp2103 on the tmicore.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration CP210XPinsC {
+  provides {
+    interface GeneralIO as USB_SUSPENDn;
+    interface GpioInterrupt as IntUSB_SUSPENDn;
+  }
+}
+implementation {
+  components new Msp430GpioC() as USB_SUSPENDnC;
+  USB_SUSPENDn = USB_SUSPENDnC;
+
+  components new Msp430InterruptC() as IntUSB_SUSPENDnC;
+  IntUSB_SUSPENDn = IntUSB_SUSPENDnC;
+
+  components HplMsp430GeneralIOC as IOC;
+  USB_SUSPENDnC.HplGeneralIO -> IOC.Port24;
+
+  components HplMsp430InterruptC as IntC;
+  IntUSB_SUSPENDnC.HplInterrupt -> IntC.Port24;
+}
diff --git a/tos/platforms/tmimsp/common/hardware.h b/tos/platforms/tmimsp/common/hardware.h
new file mode 100644 (file)
index 0000000..c556ef0
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef _H_hardware_h
+#define _H_hardware_h
+
+#include "msp430hardware.h"
+//#include "MSP430ADC12.h"
+//#include "CC2420Const.h"
+//#include "AM.h"
+
+// need to undef atomic inside header files or nesC ignores the directive
+#undef atomic
+
+#endif // _H_hardware_h
diff --git a/tos/platforms/tmimsp/common/platform.h b/tos/platforms/tmimsp/common/platform.h
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tos/platforms/tmimsp/tmicore/.platform b/tos/platforms/tmimsp/tmicore/.platform
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tos/platforms/tmimsp/tmirws/.platform b/tos/platforms/tmimsp/tmirws/.platform
new file mode 100644 (file)
index 0000000..7f3278d
--- /dev/null
@@ -0,0 +1,14 @@
+# tmirws .platform
+#
+# Includes that should take precedence come first.  Platforms come before
+# chips because they may override files.  These must be specified as
+# @includes instead of -I's to @opts, otherwise the %T won't be processed
+# by ncc.
+
+push( @includes, qw(
+  %P
+  %P/chips/scp1000
+  %P/chips/sht11
+  %T/chips/scp1000
+  %T/chips/sht11
+) );
diff --git a/tos/platforms/tmimsp/tmirws/MotePlatformC.nc b/tos/platforms/tmimsp/tmirws/MotePlatformC.nc
new file mode 100644 (file)
index 0000000..39b45c9
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ /**
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+module MotePlatformC @safe() {
+  provides interface Init;
+}
+implementation {
+  command error_t Init.init() {
+    /* reset all of the ports to be input and using i/o functionality */
+    atomic
+      {
+       /* Port 1: 7:BQSTAT2, 6:BQSTAT1, 5:RAIN, 4:-, 3:CP_CTS, 2:CP_RTS,
+        * 1:BSL_TX, 0:WSPEED
+        */
+       P1SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P1OUT = 0x10;   /* 0 0 0 1 0 0 0 0 */
+       P1DIR = 0x08;   /* 0 0 0 0 1 0 0 0 */
+       P1REN = 0x14;   /* 0 0 0 1 0 1 0 0 */
+
+       /* Port 2:
+        * 7:SHT_DATA, 6:SCP_DRDY, 5:BUTTONn, 4:USB_SUSPENDn, 3:GM_PWRMON,
+        * 2:BSL_RX, 1:USBPGn, 0:SOLARPGn
+        */
+       P2SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P2OUT = 0x88;   /* 1 0 0 0 1 0 0 0 */
+       P2DIR = 0x00;   /* 0 0 0 0 0 0 0 0 */
+       P2REN = 0x88;   /* 1 0 0 0 1 0 0 0 */
+
+       /* Port 3:
+        * 7:UC_RX, 6:UC_TX, 5:GM_RXD, 4:GM_TXD, 3:UC_SCK, 2:UC_SOMI, 1:UC_SIMO,
+        * 0:SHT_SCK
+        */
+       P3SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P3OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
+       P3DIR = 0x4b;   /* 0 1 0 0 1 0 1 1 */
+       P3REN = 0xb4;   /* 1 0 1 1 0 1 0 0 */
+
+       /* Port 4:
+        * 7:GM_RTS, 6:LED2n, 5:LED1n, 4:FLH_CSn, 3:SCP_CSn, 2:SCP_PD, 1:GM_ONn,
+        * 0:GM_VGM_EN
+        */
+       P4SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P4OUT = 0xfe;   /* 1 1 1 1 1 1 1 0 */
+       P4DIR = 0x7c;   /* 0 1 1 1 1 1 0 0 */
+       P4REN = 0x83;   /* 1 0 0 0 0 0 1 1 */
+
+       /* Port 5:
+        * 7:WPOWER, 6:WDEAD, 5:-, 4:-, 3:-, 2:-, 1:-, 0:-
+        */
+       P5SEL = 0;      /* 0 0 0 0 0 0 0 0 */
+       P5OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
+       P5DIR = 0x80;   /* 1 0 0 0 0 0 0 0 */
+       P5REN = 0x3f;   /* 0 0 1 1 1 1 1 1 */
+
+       /* Port 6:
+        * 7:TEMP_PWR, 6:TEMP3, 5:TEMP2, 4:TEMP1, 3:PHOTO, 2:ADC_WIND, 1:-,
+        * 0:ADC_VBATT
+        */
+       P6SEL = 0x7d;   /* 0 1 1 1 1 1 0 1 */
+       P6OUT = 0;      /* 0 0 0 0 0 0 0 0 */
+       P6DIR = 0x80;   /* 1 0 0 0 0 0 0 0 */
+       P6REN = 0x02;   /* 0 0 0 0 0 0 1 0 */
+
+       P1IE = 0;
+       P2IE = 0;
+      }
+    return SUCCESS;
+  }
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsC.nc b/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsC.nc
new file mode 100644 (file)
index 0000000..525955e
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Platform specific pin mapping for the Scp1000.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration Scp1000PinsC {
+  provides {
+    interface GeneralIO as CSn;
+    interface GeneralIO as PD;
+    interface GeneralIO as DRDY;
+    interface GpioInterrupt as IntDRDY;
+  }
+}
+implementation {
+  components new Msp430GpioC() as CSn_;
+  CSn = CSn_.GeneralIO;
+
+  components new Msp430GpioC() as DRDY_;
+  DRDY = DRDY_.GeneralIO;
+
+  components new Msp430InterruptC() as IntDRDY_;
+  IntDRDY = IntDRDY_.Interrupt;
+
+  components HplMsp430GeneralIOC as IOC;
+  CSn_.HplGeneralIO -> IOC.Port43;
+  DRDY_.HplGeneralIO -> IOC.Port26;
+
+  components HplMsp430InterruptC as IntC;
+  IntDRDY_.HplInterrupt -> IntC.Port26;
+
+  components new Scp1000PinsP() as PinsP;
+  PD = PinsP.PD;
+  PinsP.CSn -> IOC.Port43;
+  PinsP._PD -> IOC.Port42;
+  PinsP.DRDY -> IOC.Port26;
+
+  components MainC;
+  MainC.SoftwareInit -> PinsP;
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsP.nc b/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000PinsP.nc
new file mode 100644 (file)
index 0000000..7fc01fa
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Platform dependent scp1000 pin initialization.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+#include "Scp1000.h"
+
+generic module Scp1000PinsP() @safe()
+{
+  provides {
+    interface Init;
+    interface GeneralIO as PD;
+  }
+  uses {
+    interface HplMsp430GeneralIO as CSn;
+    interface HplMsp430GeneralIO as _PD;
+    interface HplMsp430GeneralIO as DRDY;
+  }
+}
+implementation
+{
+  command error_t Init.init()
+  {
+    call CSn.selectIOFunc();
+    call CSn.disableRen();
+    call CSn.set();
+    call CSn.makeOutput();
+    call _PD.selectIOFunc();
+    call _PD.disableRen();
+    call _PD.set();
+    call _PD.makeOutput();
+    call DRDY.selectIOFunc();
+    call DRDY.enableRen();
+    call DRDY.makeInput();
+    return SUCCESS;
+  }
+
+  async command void PD.set()
+  {
+    /* When we turn off the device we need to enable the pull-up so the pin
+     * doesn't float and cause unwanted current consumption.
+     */
+    call DRDY.enableRen();
+    call _PD.set();
+  }
+
+  async command void PD.clr()
+  {
+    /* When the device is powered up, we no longer need the pull-up.  This is
+     * a little bit pedantic, as the unit won't be on that long, but having
+     * the pull-up on does increase power consumption while DRDY is low during
+     * the process of taking a reading.  On the order of 2.5/35K = 71uA.
+     */
+    call _PD.clr();
+    call DRDY.disableRen();
+  }
+
+  async command void PD.toggle()
+  {
+  }
+
+  async command bool PD.get()
+  {
+    return call _PD.get();
+  }
+
+  async command void PD.makeInput()
+  {
+  }
+
+  async command bool PD.isInput()
+  {
+    return FALSE;
+  }
+
+  async command void PD.makeOutput()
+  {
+  }
+
+  async command bool PD.isOutput()
+  {
+    return TRUE;
+  }
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiC.nc b/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiC.nc
new file mode 100644 (file)
index 0000000..5a220df
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Platform dependent SPI mapping for Scp1000.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+configuration Scp1000SpiC {
+  provides {
+    interface Resource;
+    interface SpiByte;
+    interface SpiPacket;
+  }
+}
+implementation {
+  components new Msp430SpiB0C(0) as SpiC;
+  Resource = SpiC;
+  SpiByte = SpiC;
+  SpiPacket = SpiC;
+
+  components Scp1000SpiConfigC;
+  SpiC.Configure -> Scp1000SpiConfigC;
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiConfigC.nc b/tos/platforms/tmimsp/tmirws/chips/scp1000/Scp1000SpiConfigC.nc
new file mode 100644 (file)
index 0000000..91314a6
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * SPI configuration for Scp1000.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+module Scp1000SpiConfigC {
+  provides interface AsyncConfigure<const msp430_usci_spi_t*> as Configure;
+}
+implementation {
+  const static msp430_usci_spi_t def = {
+    ctl0: UCSYNC | UCMODE_0 | UCMST | UCMSB | UCCKPL, /* SPI mode0 master, MSB first */
+    ctl1: UCSWRST | UCSSEL_3,  /* clock spi from SMCLK */
+    brx: 2,                    /* part says max 500KHz; this is 524288Hz */
+    uclisten: FALSE,
+    ren: USCI_REN_NONE
+  };
+
+  async command const msp430_usci_spi_t* Configure.get()
+  {
+    return &def;
+  }
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/HalSensirionSht11C.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/HalSensirionSht11C.nc
new file mode 100644 (file)
index 0000000..60a96c6
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * HalSensirionSht11C is an advanced access component for the
+ * Sensirion SHT11 model humidity and temperature sensor, available on
+ * the telosb platform. This component provides the SensirionSht11
+ * interface, which offers full control over the device. Please
+ * acquire the Resource before using it.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+configuration HalSensirionSht11C {
+  provides interface Resource[ uint8_t client ];
+  provides interface SensirionSht11[ uint8_t client ];
+}
+implementation {
+  components new SensirionSht11LogicP();
+  SensirionSht11 = SensirionSht11LogicP;
+
+  components HplSensirionSht11C;
+  Resource = HplSensirionSht11C.Resource;
+  SensirionSht11LogicP.DATA -> HplSensirionSht11C.DATA;
+  SensirionSht11LogicP.CLOCK -> HplSensirionSht11C.SCK;
+  SensirionSht11LogicP.InterruptDATA -> HplSensirionSht11C.InterruptDATA;
+
+  components SensirionBusyWaitC;
+  SensirionSht11LogicP.BusyWait -> SensirionBusyWaitC;
+
+  components new TimerMilliC();
+  SensirionSht11LogicP.Timer -> TimerMilliC;
+
+  components LedsC;
+  SensirionSht11LogicP.Leds -> LedsC;
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11C.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11C.nc
new file mode 100644 (file)
index 0000000..cb71514
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * HplSensirionSht11C is a low-level component, intended to provide
+ * the physical resources used by the Sensirion SHT11 sensor on the
+ * telosb platform so that the chip driver can make use of them. You
+ * really shouldn't be wiring to this, unless you're writing a new
+ * Sensirion SHT11 driver.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.6 $ $Date: 2007/02/04 19:56:29 $
+ */
+
+configuration HplSensirionSht11C {
+  provides interface Resource[ uint8_t id ];
+  provides interface GeneralIO as DATA;
+  provides interface GeneralIO as SCK;
+  provides interface GpioInterrupt as InterruptDATA;
+}
+implementation {
+  components new Msp430OpenDrainC() as DATAM;
+  DATA = DATAM;
+
+  components new Msp430GpioC() as SCKM;
+  SCK = SCKM;
+
+  components HplMsp430GeneralIOC;
+  DATAM -> HplMsp430GeneralIOC.Port27;
+  SCKM -> HplMsp430GeneralIOC.Port30;
+
+  components new NoPinC() as PWRM;
+  components HplSensirionSht11P;
+  HplSensirionSht11P.PWR -> PWRM;
+  HplSensirionSht11P.DATA -> DATAM;
+  HplSensirionSht11P.SCK -> SCKM;
+
+  components new TimerMilliC();
+  HplSensirionSht11P.Timer -> TimerMilliC;
+
+  components HplMsp430InterruptC;
+  components new Msp430InterruptC() as InterruptDATAC;
+  InterruptDATAC.HplInterrupt -> HplMsp430InterruptC.Port27;
+  InterruptDATA = InterruptDATAC.Interrupt;
+
+  components new FcfsArbiterC( "Sht11.Resource" ) as Arbiter;
+  Resource = Arbiter;
+
+  components new SplitControlPowerManagerC();
+  SplitControlPowerManagerC.SplitControl -> HplSensirionSht11P;
+  SplitControlPowerManagerC.ArbiterInfo -> Arbiter.ArbiterInfo;
+  SplitControlPowerManagerC.ResourceDefaultOwner -> Arbiter.ResourceDefaultOwner;
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11P.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/HplSensirionSht11P.nc
new file mode 100644 (file)
index 0000000..47b7569
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+#include "Timer.h"
+
+/**
+ * HplSensirionSht11P is a low-level component that controls power for
+ * the Sensirion SHT11 sensor on the telosb platform.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
+ */
+
+module HplSensirionSht11P {
+  provides interface SplitControl;
+  uses interface Timer<TMilli>;
+  uses interface GeneralIO as PWR;
+  uses interface GeneralIO as DATA;
+  uses interface GeneralIO as SCK;
+}
+implementation {
+  task void stopTask();
+
+  command error_t SplitControl.start() {
+    call PWR.makeOutput();
+    call PWR.set();
+    call Timer.startOneShot( 11 );
+    return SUCCESS;
+  }
+
+  event void Timer.fired() {
+    signal SplitControl.startDone( SUCCESS );
+  }
+
+  command error_t SplitControl.stop() {
+    call SCK.makeOutput();
+    call SCK.clr();
+    call DATA.makeInput();
+    call DATA.set();
+    call PWR.clr();
+    post stopTask();
+    return SUCCESS;
+  }
+
+  task void stopTask() {
+    signal SplitControl.stopDone( SUCCESS );
+  }
+}
+
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainC.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainC.nc
new file mode 100644 (file)
index 0000000..177a040
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Implement an open drain output using an HplMsp430GeneralIO, represented as
+ * a GeneralIO.  This component uses the Msp430's internal pull up/down
+ * capability, present on only some devices.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+generic configuration Msp430OpenDrainC()
+{
+  provides interface GeneralIO;
+  uses interface HplMsp430GeneralIO as HplGeneralIO;
+}
+implementation
+{
+  components new Msp430OpenDrainP();
+  GeneralIO = Msp430OpenDrainP;
+  HplGeneralIO = Msp430OpenDrainP;
+
+  components MainC;
+  MainC.SoftwareInit -> Msp430OpenDrainP;
+}
+
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainP.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/Msp430OpenDrainP.nc
new file mode 100644 (file)
index 0000000..d34be3d
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Implement an open drain output using an HplMsp430GeneralIO, represented as
+ * a GeneralIO.  Uses the pull-up resistor built into the msp430 for each io
+ * pin to deliver the pull-up necessary.  set() is pin in input with pull-up,
+ * clr() is in output with no pull-up.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+generic module Msp430OpenDrainP()
+{
+  provides {
+    interface Init;
+    interface GeneralIO;
+  }
+  uses interface HplMsp430GeneralIO as HplGeneralIO;
+}
+implementation
+{
+  command error_t Init.init()
+  {
+    call HplGeneralIO.makeInput();
+    call HplGeneralIO.set();
+    call HplGeneralIO.enableRen(); /* this is the important bit */
+    return SUCCESS;
+  }
+
+  async command void GeneralIO.set() { call HplGeneralIO.set(); }
+  async command void GeneralIO.clr() { call HplGeneralIO.clr(); }
+  async command void GeneralIO.toggle() { call HplGeneralIO.toggle(); }
+  //async command uint8_t GeneralIO.getOutRaw() { call HplGeneralIO.getOutRaw(); }
+  //async command bool GeneralIO.getOut() { return call HplGeneralIO.getOut(); }
+  //async command uint8_t GeneralIO.getRaw() { call HplGeneralIO.getRaw(); }
+  async command bool GeneralIO.get() { return call HplGeneralIO.get(); }
+  async command void GeneralIO.makeInput() {} // call HplGeneralIO.makeInput(); }
+  async command bool GeneralIO.isInput() { return TRUE; } //call HplGeneralIO.isInput(); }
+  async command void GeneralIO.makeOutput() {} // call HplGeneralIO.makeOutput(); }
+  async command bool GeneralIO.isOutput() { return TRUE; } //call HplGeneralIO.isOutput(); }
+  //async command void GeneralIO.selectModuleFunc() { call HplGeneralIO.selectModuleFunc(); }
+  //async command bool GeneralIO.isModuleFunc() { return call HplGeneralIO.isModuleFunc(); }
+  //async command void GeneralIO.selectIOFunc() { call HplGeneralIO.selectIOFunc(); }
+  //async command bool GeneralIO.isIOFunc() { return call HplGeneralIO.isIOFunc(); }
+  //async command void GeneralIO.enableRen() { call HplGeneralIO.enableRen(); }
+  //async command void GeneralIO.disableRen() { call HplGeneralIO.disableRen(); }
+  //async command bool GeneralIO.isRen() { return call HplGeneralIO.isRen(); }
+}
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainC.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainC.nc
new file mode 100644 (file)
index 0000000..e89e26f
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Implement an open drain output using a GeneralIO, represented as a
+ * GeneralIO.  Requires an external pull-up for proper operation.
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+generic configuration OpenDrainC()
+{
+  provides interface GeneralIO;
+  uses interface GeneralIO as RawIO;
+}
+implementation
+{
+  components new OpenDrainP();
+  GeneralIO = OpenDrainP;
+  RawIO = OpenDrainP;
+
+  components MainC;
+  MainC.SoftwareInit -> OpenDrainP;
+}
+
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainP.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/OpenDrainP.nc
new file mode 100644 (file)
index 0000000..9cc2246
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2008, Titanium Mirror, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - Neither the name of the Technische Universität Berlin nor the names
+ *   of its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Implement an open drain output using a GeneralIO, represented as a
+ * GeneralIO.  clr() puts the pin in input mode, simulating open drain and
+ * therefore requiring a pull-up on the net.  set() puts the pin in output
+ * mode and sinks current by outputting a logic zero.  By definition, the
+ * pin wrapped by this component can only be used as an output.
+ *
+ * TODO: there could be a version of this component that uses the msp430's
+ * built-in pull-up resistor...
+ *
+ * @author R. Steve McKown <rsmckown@gmail.com>
+ */
+
+generic module OpenDrainP()
+{
+  provides {
+    interface Init;
+    interface GeneralIO;
+  }
+  uses interface GeneralIO as RawIO;
+}
+implementation
+{
+  command error_t Init.init()
+  {
+    call RawIO.clr();
+    call RawIO.makeInput();
+    return SUCCESS;
+  }
+
+  async command bool GeneralIO.get()
+  {
+    return call RawIO.get();
+  }
+
+  async command void GeneralIO.set()
+  {
+    call RawIO.makeInput();
+  }
+
+  async command void GeneralIO.clr()
+  {
+    call RawIO.makeOutput();
+  }
+
+  async command void GeneralIO.toggle()
+  {
+    if (call RawIO.isInput())
+      call RawIO.makeOutput();
+    else
+      call RawIO.makeInput();
+  }
+
+  async command void GeneralIO.makeInput() {}
+
+  async command void GeneralIO.makeOutput() {}
+
+  async command bool GeneralIO.isInput()
+  {
+    return FALSE;
+  }
+
+  async command bool GeneralIO.isOutput()
+  {
+    return TRUE;
+  }
+}
+
diff --git a/tos/platforms/tmimsp/tmirws/chips/sht11/SensirionSht11C.nc b/tos/platforms/tmimsp/tmirws/chips/sht11/SensirionSht11C.nc
new file mode 100644 (file)
index 0000000..d12ab24
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2005-2006 Arch Rock Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Arch Rock Corporation nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
+ * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE
+ */
+
+/**
+ * SensirionSht11C is a top-level access component for the Sensirion
+ * SHT11 model humidity and temperature sensor, available on the
+ * telosb platform. Because this component represents one physical
+ * device, simultaneous calls to read temperature and humidity will be
+ * arbitrated and executed in sequential order. Feel free to read both
+ * at the same time, just be aware that they'll come back
+ * sequentially.
+ *
+ * @author Gilman Tolle <gtolle@archrock.com>
+ * @version $Revision: 1.5 $ $Date: 2007/04/13 21:46:18 $
+ */
+
+generic configuration SensirionSht11C() {
+  provides interface Read<uint16_t> as Temperature;
+  provides interface DeviceMetadata as TemperatureMetadata;
+  provides interface Read<uint16_t> as Humidity;
+  provides interface DeviceMetadata as HumidityMetadata;
+}
+implementation {
+  components new SensirionSht11ReaderP();
+
+  Temperature = SensirionSht11ReaderP.Temperature;
+  TemperatureMetadata = SensirionSht11ReaderP.TemperatureMetadata;
+  Humidity = SensirionSht11ReaderP.Humidity;
+  HumidityMetadata = SensirionSht11ReaderP.HumidityMetadata;
+
+  components HalSensirionSht11C;
+
+  enum { TEMP_KEY = unique("Sht11.Resource") };
+  enum { HUM_KEY = unique("Sht11.Resource") };
+
+  SensirionSht11ReaderP.TempResource -> HalSensirionSht11C.Resource[ TEMP_KEY ];
+  SensirionSht11ReaderP.Sht11Temp -> HalSensirionSht11C.SensirionSht11[ TEMP_KEY ];
+  SensirionSht11ReaderP.HumResource -> HalSensirionSht11C.Resource[ HUM_KEY ];
+  SensirionSht11ReaderP.Sht11Hum -> HalSensirionSht11C.SensirionSht11[ HUM_KEY ];
+}
diff --git a/tos/platforms/tmirws/.platform b/tos/platforms/tmirws/.platform
deleted file mode 100644 (file)
index af2b475..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# Includes that should take precedence come first.  Platforms come before
-# chips because they may override files.  These must be specified as
-# @includes instead of -I's to @opts, otherwise the %T won't be processed
-# by ncc.
-
-push( @includes, qw(
-  %T/platforms/tmirws
-  %T/platforms/tmirws/chips/scp1000
-  %T/platforms/tmirws/chips/sht11
-  %T/platforms/tmicore
-  %T/platforms/tmicore/chips/bq2403x
-  %T/platforms/tmicore/chips/cp210x
-  %T/platforms/telosa
-  %T/chips/msp430
-  %T/chips/msp430/adc12
-  %T/chips/msp430/dma
-  %T/chips/msp430/pins
-  %T/chips/msp430/timer
-  %T/chips/msp430/usci
-  %T/chips/msp430/sensors
-  %T/chips/bq2403x
-  %T/chips/cp210x
-  %T/chips/scp1000
-  %T/chips/sht11
-  %T/lib/timer
-  %T/lib/serial
-  %T/lib/adc
-  %T/lib/power
-) );
-
-@opts = qw(
-  -gcc=msp430-gcc
-  -mmcu=msp430x2417
-  -fnesc-target=msp430
-  -fnesc-no-debug
-);
-
-push @opts, "-fnesc-scheduler=TinySchedulerC,TinySchedulerC.TaskBasic,TaskBasic,TaskBasic,runTask,postTask" if !$with_scheduler_flag;
-push @opts, "-mingw-gcc" if $cygwin;
-
-$ENV{'CIL_MACHINE'} =
-    "version_major=3 " .
-    "version_minor=2 " .
-    "version=msp430-3.2.3 " .
-    "short=2,2 " .
-    "int=2,2 " .
-    "long=4,2 " .
-    "long_long=8,2 " .
-    "pointer=2,2 " .
-    "enum=2,2 " .
-    "float=4,2 " .
-    "double=4,2 " .
-    "long_double=4,2 " .
-    "void=1,1 " .
-    "fun=1,2 " .
-    "wchar_size_size=2,2 " .
-    "alignof_string=1 " .
-    "max_alignment=1 " .
-    "char_wchar_signed=true,true " .
-    "const_string_literals=true " .
-    "big_endian=false " .
-    "underscore_name=false " .
-    "__builtin_va_list=true " .
-    "__thread_is_keyword=true";
-
diff --git a/tos/platforms/tmirws/MotePlatformC.nc b/tos/platforms/tmirws/MotePlatformC.nc
deleted file mode 100644 (file)
index 39b45c9..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- /**
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-module MotePlatformC @safe() {
-  provides interface Init;
-}
-implementation {
-  command error_t Init.init() {
-    /* reset all of the ports to be input and using i/o functionality */
-    atomic
-      {
-       /* Port 1: 7:BQSTAT2, 6:BQSTAT1, 5:RAIN, 4:-, 3:CP_CTS, 2:CP_RTS,
-        * 1:BSL_TX, 0:WSPEED
-        */
-       P1SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P1OUT = 0x10;   /* 0 0 0 1 0 0 0 0 */
-       P1DIR = 0x08;   /* 0 0 0 0 1 0 0 0 */
-       P1REN = 0x14;   /* 0 0 0 1 0 1 0 0 */
-
-       /* Port 2:
-        * 7:SHT_DATA, 6:SCP_DRDY, 5:BUTTONn, 4:USB_SUSPENDn, 3:GM_PWRMON,
-        * 2:BSL_RX, 1:USBPGn, 0:SOLARPGn
-        */
-       P2SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P2OUT = 0x88;   /* 1 0 0 0 1 0 0 0 */
-       P2DIR = 0x00;   /* 0 0 0 0 0 0 0 0 */
-       P2REN = 0x88;   /* 1 0 0 0 1 0 0 0 */
-
-       /* Port 3:
-        * 7:UC_RX, 6:UC_TX, 5:GM_RXD, 4:GM_TXD, 3:UC_SCK, 2:UC_SOMI, 1:UC_SIMO,
-        * 0:SHT_SCK
-        */
-       P3SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P3OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
-       P3DIR = 0x4b;   /* 0 1 0 0 1 0 1 1 */
-       P3REN = 0xb4;   /* 1 0 1 1 0 1 0 0 */
-
-       /* Port 4:
-        * 7:GM_RTS, 6:LED2n, 5:LED1n, 4:FLH_CSn, 3:SCP_CSn, 2:SCP_PD, 1:GM_ONn,
-        * 0:GM_VGM_EN
-        */
-       P4SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P4OUT = 0xfe;   /* 1 1 1 1 1 1 1 0 */
-       P4DIR = 0x7c;   /* 0 1 1 1 1 1 0 0 */
-       P4REN = 0x83;   /* 1 0 0 0 0 0 1 1 */
-
-       /* Port 5:
-        * 7:WPOWER, 6:WDEAD, 5:-, 4:-, 3:-, 2:-, 1:-, 0:-
-        */
-       P5SEL = 0;      /* 0 0 0 0 0 0 0 0 */
-       P5OUT = 0x3f;   /* 0 0 1 1 1 1 1 1 */
-       P5DIR = 0x80;   /* 1 0 0 0 0 0 0 0 */
-       P5REN = 0x3f;   /* 0 0 1 1 1 1 1 1 */
-
-       /* Port 6:
-        * 7:TEMP_PWR, 6:TEMP3, 5:TEMP2, 4:TEMP1, 3:PHOTO, 2:ADC_WIND, 1:-,
-        * 0:ADC_VBATT
-        */
-       P6SEL = 0x7d;   /* 0 1 1 1 1 1 0 1 */
-       P6OUT = 0;      /* 0 0 0 0 0 0 0 0 */
-       P6DIR = 0x80;   /* 1 0 0 0 0 0 0 0 */
-       P6REN = 0x02;   /* 0 0 0 0 0 0 1 0 */
-
-       P1IE = 0;
-       P2IE = 0;
-      }
-    return SUCCESS;
-  }
-}
diff --git a/tos/platforms/tmirws/chips/scp1000/Scp1000PinsC.nc b/tos/platforms/tmirws/chips/scp1000/Scp1000PinsC.nc
deleted file mode 100644 (file)
index 525955e..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Platform specific pin mapping for the Scp1000.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration Scp1000PinsC {
-  provides {
-    interface GeneralIO as CSn;
-    interface GeneralIO as PD;
-    interface GeneralIO as DRDY;
-    interface GpioInterrupt as IntDRDY;
-  }
-}
-implementation {
-  components new Msp430GpioC() as CSn_;
-  CSn = CSn_.GeneralIO;
-
-  components new Msp430GpioC() as DRDY_;
-  DRDY = DRDY_.GeneralIO;
-
-  components new Msp430InterruptC() as IntDRDY_;
-  IntDRDY = IntDRDY_.Interrupt;
-
-  components HplMsp430GeneralIOC as IOC;
-  CSn_.HplGeneralIO -> IOC.Port43;
-  DRDY_.HplGeneralIO -> IOC.Port26;
-
-  components HplMsp430InterruptC as IntC;
-  IntDRDY_.HplInterrupt -> IntC.Port26;
-
-  components new Scp1000PinsP() as PinsP;
-  PD = PinsP.PD;
-  PinsP.CSn -> IOC.Port43;
-  PinsP._PD -> IOC.Port42;
-  PinsP.DRDY -> IOC.Port26;
-
-  components MainC;
-  MainC.SoftwareInit -> PinsP;
-}
diff --git a/tos/platforms/tmirws/chips/scp1000/Scp1000PinsP.nc b/tos/platforms/tmirws/chips/scp1000/Scp1000PinsP.nc
deleted file mode 100644 (file)
index 7fc01fa..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Platform dependent scp1000 pin initialization.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-#include "Scp1000.h"
-
-generic module Scp1000PinsP() @safe()
-{
-  provides {
-    interface Init;
-    interface GeneralIO as PD;
-  }
-  uses {
-    interface HplMsp430GeneralIO as CSn;
-    interface HplMsp430GeneralIO as _PD;
-    interface HplMsp430GeneralIO as DRDY;
-  }
-}
-implementation
-{
-  command error_t Init.init()
-  {
-    call CSn.selectIOFunc();
-    call CSn.disableRen();
-    call CSn.set();
-    call CSn.makeOutput();
-    call _PD.selectIOFunc();
-    call _PD.disableRen();
-    call _PD.set();
-    call _PD.makeOutput();
-    call DRDY.selectIOFunc();
-    call DRDY.enableRen();
-    call DRDY.makeInput();
-    return SUCCESS;
-  }
-
-  async command void PD.set()
-  {
-    /* When we turn off the device we need to enable the pull-up so the pin
-     * doesn't float and cause unwanted current consumption.
-     */
-    call DRDY.enableRen();
-    call _PD.set();
-  }
-
-  async command void PD.clr()
-  {
-    /* When the device is powered up, we no longer need the pull-up.  This is
-     * a little bit pedantic, as the unit won't be on that long, but having
-     * the pull-up on does increase power consumption while DRDY is low during
-     * the process of taking a reading.  On the order of 2.5/35K = 71uA.
-     */
-    call _PD.clr();
-    call DRDY.disableRen();
-  }
-
-  async command void PD.toggle()
-  {
-  }
-
-  async command bool PD.get()
-  {
-    return call _PD.get();
-  }
-
-  async command void PD.makeInput()
-  {
-  }
-
-  async command bool PD.isInput()
-  {
-    return FALSE;
-  }
-
-  async command void PD.makeOutput()
-  {
-  }
-
-  async command bool PD.isOutput()
-  {
-    return TRUE;
-  }
-}
diff --git a/tos/platforms/tmirws/chips/scp1000/Scp1000SpiC.nc b/tos/platforms/tmirws/chips/scp1000/Scp1000SpiC.nc
deleted file mode 100644 (file)
index 5a220df..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Platform dependent SPI mapping for Scp1000.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-configuration Scp1000SpiC {
-  provides {
-    interface Resource;
-    interface SpiByte;
-    interface SpiPacket;
-  }
-}
-implementation {
-  components new Msp430SpiB0C(0) as SpiC;
-  Resource = SpiC;
-  SpiByte = SpiC;
-  SpiPacket = SpiC;
-
-  components Scp1000SpiConfigC;
-  SpiC.Configure -> Scp1000SpiConfigC;
-}
diff --git a/tos/platforms/tmirws/chips/scp1000/Scp1000SpiConfigC.nc b/tos/platforms/tmirws/chips/scp1000/Scp1000SpiConfigC.nc
deleted file mode 100644 (file)
index 91314a6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * SPI configuration for Scp1000.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-module Scp1000SpiConfigC {
-  provides interface AsyncConfigure<const msp430_usci_spi_t*> as Configure;
-}
-implementation {
-  const static msp430_usci_spi_t def = {
-    ctl0: UCSYNC | UCMODE_0 | UCMST | UCMSB | UCCKPL, /* SPI mode0 master, MSB first */
-    ctl1: UCSWRST | UCSSEL_3,  /* clock spi from SMCLK */
-    brx: 2,                    /* part says max 500KHz; this is 524288Hz */
-    uclisten: FALSE,
-    ren: USCI_REN_NONE
-  };
-
-  async command const msp430_usci_spi_t* Configure.get()
-  {
-    return &def;
-  }
-}
diff --git a/tos/platforms/tmirws/chips/sht11/HalSensirionSht11C.nc b/tos/platforms/tmirws/chips/sht11/HalSensirionSht11C.nc
deleted file mode 100644 (file)
index 60a96c6..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * HalSensirionSht11C is an advanced access component for the
- * Sensirion SHT11 model humidity and temperature sensor, available on
- * the telosb platform. This component provides the SensirionSht11
- * interface, which offers full control over the device. Please
- * acquire the Resource before using it.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-configuration HalSensirionSht11C {
-  provides interface Resource[ uint8_t client ];
-  provides interface SensirionSht11[ uint8_t client ];
-}
-implementation {
-  components new SensirionSht11LogicP();
-  SensirionSht11 = SensirionSht11LogicP;
-
-  components HplSensirionSht11C;
-  Resource = HplSensirionSht11C.Resource;
-  SensirionSht11LogicP.DATA -> HplSensirionSht11C.DATA;
-  SensirionSht11LogicP.CLOCK -> HplSensirionSht11C.SCK;
-  SensirionSht11LogicP.InterruptDATA -> HplSensirionSht11C.InterruptDATA;
-
-  components SensirionBusyWaitC;
-  SensirionSht11LogicP.BusyWait -> SensirionBusyWaitC;
-
-  components new TimerMilliC();
-  SensirionSht11LogicP.Timer -> TimerMilliC;
-
-  components LedsC;
-  SensirionSht11LogicP.Leds -> LedsC;
-}
diff --git a/tos/platforms/tmirws/chips/sht11/HplSensirionSht11C.nc b/tos/platforms/tmirws/chips/sht11/HplSensirionSht11C.nc
deleted file mode 100644 (file)
index cb71514..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * HplSensirionSht11C is a low-level component, intended to provide
- * the physical resources used by the Sensirion SHT11 sensor on the
- * telosb platform so that the chip driver can make use of them. You
- * really shouldn't be wiring to this, unless you're writing a new
- * Sensirion SHT11 driver.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.6 $ $Date: 2007/02/04 19:56:29 $
- */
-
-configuration HplSensirionSht11C {
-  provides interface Resource[ uint8_t id ];
-  provides interface GeneralIO as DATA;
-  provides interface GeneralIO as SCK;
-  provides interface GpioInterrupt as InterruptDATA;
-}
-implementation {
-  components new Msp430OpenDrainC() as DATAM;
-  DATA = DATAM;
-
-  components new Msp430GpioC() as SCKM;
-  SCK = SCKM;
-
-  components HplMsp430GeneralIOC;
-  DATAM -> HplMsp430GeneralIOC.Port27;
-  SCKM -> HplMsp430GeneralIOC.Port30;
-
-  components new NoPinC() as PWRM;
-  components HplSensirionSht11P;
-  HplSensirionSht11P.PWR -> PWRM;
-  HplSensirionSht11P.DATA -> DATAM;
-  HplSensirionSht11P.SCK -> SCKM;
-
-  components new TimerMilliC();
-  HplSensirionSht11P.Timer -> TimerMilliC;
-
-  components HplMsp430InterruptC;
-  components new Msp430InterruptC() as InterruptDATAC;
-  InterruptDATAC.HplInterrupt -> HplMsp430InterruptC.Port27;
-  InterruptDATA = InterruptDATAC.Interrupt;
-
-  components new FcfsArbiterC( "Sht11.Resource" ) as Arbiter;
-  Resource = Arbiter;
-
-  components new SplitControlPowerManagerC();
-  SplitControlPowerManagerC.SplitControl -> HplSensirionSht11P;
-  SplitControlPowerManagerC.ArbiterInfo -> Arbiter.ArbiterInfo;
-  SplitControlPowerManagerC.ResourceDefaultOwner -> Arbiter.ResourceDefaultOwner;
-}
diff --git a/tos/platforms/tmirws/chips/sht11/HplSensirionSht11P.nc b/tos/platforms/tmirws/chips/sht11/HplSensirionSht11P.nc
deleted file mode 100644 (file)
index 47b7569..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-#include "Timer.h"
-
-/**
- * HplSensirionSht11P is a low-level component that controls power for
- * the Sensirion SHT11 sensor on the telosb platform.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.4 $ $Date: 2006/12/12 18:23:45 $
- */
-
-module HplSensirionSht11P {
-  provides interface SplitControl;
-  uses interface Timer<TMilli>;
-  uses interface GeneralIO as PWR;
-  uses interface GeneralIO as DATA;
-  uses interface GeneralIO as SCK;
-}
-implementation {
-  task void stopTask();
-
-  command error_t SplitControl.start() {
-    call PWR.makeOutput();
-    call PWR.set();
-    call Timer.startOneShot( 11 );
-    return SUCCESS;
-  }
-
-  event void Timer.fired() {
-    signal SplitControl.startDone( SUCCESS );
-  }
-
-  command error_t SplitControl.stop() {
-    call SCK.makeOutput();
-    call SCK.clr();
-    call DATA.makeInput();
-    call DATA.set();
-    call PWR.clr();
-    post stopTask();
-    return SUCCESS;
-  }
-
-  task void stopTask() {
-    signal SplitControl.stopDone( SUCCESS );
-  }
-}
-
diff --git a/tos/platforms/tmirws/chips/sht11/Msp430OpenDrainC.nc b/tos/platforms/tmirws/chips/sht11/Msp430OpenDrainC.nc
deleted file mode 100644 (file)
index 177a040..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Implement an open drain output using an HplMsp430GeneralIO, represented as
- * a GeneralIO.  This component uses the Msp430's internal pull up/down
- * capability, present on only some devices.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-generic configuration Msp430OpenDrainC()
-{
-  provides interface GeneralIO;
-  uses interface HplMsp430GeneralIO as HplGeneralIO;
-}
-implementation
-{
-  components new Msp430OpenDrainP();
-  GeneralIO = Msp430OpenDrainP;
-  HplGeneralIO = Msp430OpenDrainP;
-
-  components MainC;
-  MainC.SoftwareInit -> Msp430OpenDrainP;
-}
-
diff --git a/tos/platforms/tmirws/chips/sht11/Msp430OpenDrainP.nc b/tos/platforms/tmirws/chips/sht11/Msp430OpenDrainP.nc
deleted file mode 100644 (file)
index d34be3d..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Implement an open drain output using an HplMsp430GeneralIO, represented as
- * a GeneralIO.  Uses the pull-up resistor built into the msp430 for each io
- * pin to deliver the pull-up necessary.  set() is pin in input with pull-up,
- * clr() is in output with no pull-up.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-generic module Msp430OpenDrainP()
-{
-  provides {
-    interface Init;
-    interface GeneralIO;
-  }
-  uses interface HplMsp430GeneralIO as HplGeneralIO;
-}
-implementation
-{
-  command error_t Init.init()
-  {
-    call HplGeneralIO.makeInput();
-    call HplGeneralIO.set();
-    call HplGeneralIO.enableRen(); /* this is the important bit */
-    return SUCCESS;
-  }
-
-  async command void GeneralIO.set() { call HplGeneralIO.set(); }
-  async command void GeneralIO.clr() { call HplGeneralIO.clr(); }
-  async command void GeneralIO.toggle() { call HplGeneralIO.toggle(); }
-  //async command uint8_t GeneralIO.getOutRaw() { call HplGeneralIO.getOutRaw(); }
-  //async command bool GeneralIO.getOut() { return call HplGeneralIO.getOut(); }
-  //async command uint8_t GeneralIO.getRaw() { call HplGeneralIO.getRaw(); }
-  async command bool GeneralIO.get() { return call HplGeneralIO.get(); }
-  async command void GeneralIO.makeInput() {} // call HplGeneralIO.makeInput(); }
-  async command bool GeneralIO.isInput() { return TRUE; } //call HplGeneralIO.isInput(); }
-  async command void GeneralIO.makeOutput() {} // call HplGeneralIO.makeOutput(); }
-  async command bool GeneralIO.isOutput() { return TRUE; } //call HplGeneralIO.isOutput(); }
-  //async command void GeneralIO.selectModuleFunc() { call HplGeneralIO.selectModuleFunc(); }
-  //async command bool GeneralIO.isModuleFunc() { return call HplGeneralIO.isModuleFunc(); }
-  //async command void GeneralIO.selectIOFunc() { call HplGeneralIO.selectIOFunc(); }
-  //async command bool GeneralIO.isIOFunc() { return call HplGeneralIO.isIOFunc(); }
-  //async command void GeneralIO.enableRen() { call HplGeneralIO.enableRen(); }
-  //async command void GeneralIO.disableRen() { call HplGeneralIO.disableRen(); }
-  //async command bool GeneralIO.isRen() { return call HplGeneralIO.isRen(); }
-}
diff --git a/tos/platforms/tmirws/chips/sht11/OpenDrainC.nc b/tos/platforms/tmirws/chips/sht11/OpenDrainC.nc
deleted file mode 100644 (file)
index e89e26f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Implement an open drain output using a GeneralIO, represented as a
- * GeneralIO.  Requires an external pull-up for proper operation.
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-generic configuration OpenDrainC()
-{
-  provides interface GeneralIO;
-  uses interface GeneralIO as RawIO;
-}
-implementation
-{
-  components new OpenDrainP();
-  GeneralIO = OpenDrainP;
-  RawIO = OpenDrainP;
-
-  components MainC;
-  MainC.SoftwareInit -> OpenDrainP;
-}
-
diff --git a/tos/platforms/tmirws/chips/sht11/OpenDrainP.nc b/tos/platforms/tmirws/chips/sht11/OpenDrainP.nc
deleted file mode 100644 (file)
index 9cc2246..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2008, Titanium Mirror, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright notice,
- *   this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - Neither the name of the Technische Universität Berlin nor the names
- *   of its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * Implement an open drain output using a GeneralIO, represented as a
- * GeneralIO.  clr() puts the pin in input mode, simulating open drain and
- * therefore requiring a pull-up on the net.  set() puts the pin in output
- * mode and sinks current by outputting a logic zero.  By definition, the
- * pin wrapped by this component can only be used as an output.
- *
- * TODO: there could be a version of this component that uses the msp430's
- * built-in pull-up resistor...
- *
- * @author R. Steve McKown <rsmckown@gmail.com>
- */
-
-generic module OpenDrainP()
-{
-  provides {
-    interface Init;
-    interface GeneralIO;
-  }
-  uses interface GeneralIO as RawIO;
-}
-implementation
-{
-  command error_t Init.init()
-  {
-    call RawIO.clr();
-    call RawIO.makeInput();
-    return SUCCESS;
-  }
-
-  async command bool GeneralIO.get()
-  {
-    return call RawIO.get();
-  }
-
-  async command void GeneralIO.set()
-  {
-    call RawIO.makeInput();
-  }
-
-  async command void GeneralIO.clr()
-  {
-    call RawIO.makeOutput();
-  }
-
-  async command void GeneralIO.toggle()
-  {
-    if (call RawIO.isInput())
-      call RawIO.makeOutput();
-    else
-      call RawIO.makeInput();
-  }
-
-  async command void GeneralIO.makeInput() {}
-
-  async command void GeneralIO.makeOutput() {}
-
-  async command bool GeneralIO.isInput()
-  {
-    return FALSE;
-  }
-
-  async command bool GeneralIO.isOutput()
-  {
-    return TRUE;
-  }
-}
-
diff --git a/tos/platforms/tmirws/chips/sht11/SensirionSht11C.nc b/tos/platforms/tmirws/chips/sht11/SensirionSht11C.nc
deleted file mode 100644 (file)
index d12ab24..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2005-2006 Arch Rock Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the
- *   distribution.
- * - Neither the name of the Arch Rock Corporation nor the names of
- *   its contributors may be used to endorse or promote products derived
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
- * ARCHED ROCK OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE
- */
-
-/**
- * SensirionSht11C is a top-level access component for the Sensirion
- * SHT11 model humidity and temperature sensor, available on the
- * telosb platform. Because this component represents one physical
- * device, simultaneous calls to read temperature and humidity will be
- * arbitrated and executed in sequential order. Feel free to read both
- * at the same time, just be aware that they'll come back
- * sequentially.
- *
- * @author Gilman Tolle <gtolle@archrock.com>
- * @version $Revision: 1.5 $ $Date: 2007/04/13 21:46:18 $
- */
-
-generic configuration SensirionSht11C() {
-  provides interface Read<uint16_t> as Temperature;
-  provides interface DeviceMetadata as TemperatureMetadata;
-  provides interface Read<uint16_t> as Humidity;
-  provides interface DeviceMetadata as HumidityMetadata;
-}
-implementation {
-  components new SensirionSht11ReaderP();
-
-  Temperature = SensirionSht11ReaderP.Temperature;
-  TemperatureMetadata = SensirionSht11ReaderP.TemperatureMetadata;
-  Humidity = SensirionSht11ReaderP.Humidity;
-  HumidityMetadata = SensirionSht11ReaderP.HumidityMetadata;
-
-  components HalSensirionSht11C;
-
-  enum { TEMP_KEY = unique("Sht11.Resource") };
-  enum { HUM_KEY = unique("Sht11.Resource") };
-
-  SensirionSht11ReaderP.TempResource -> HalSensirionSht11C.Resource[ TEMP_KEY ];
-  SensirionSht11ReaderP.Sht11Temp -> HalSensirionSht11C.SensirionSht11[ TEMP_KEY ];
-  SensirionSht11ReaderP.HumResource -> HalSensirionSht11C.Resource[ HUM_KEY ];
-  SensirionSht11ReaderP.Sht11Hum -> HalSensirionSht11C.SensirionSht11[ HUM_KEY ];
-}