]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/msp430/usart/Msp430Uart1C.nc
Update to include paramaterization of the UartStream interface as well as push Resour...
[tinyos-2.x.git] / tos / chips / msp430 / usart / Msp430Uart1C.nc
index ec5d6e6d33172957349e68a66f8cbadf458f8a3a..a824fd3570fe12e2bf122492e22c5c8645f07bd6 100644 (file)
@@ -1,52 +1,69 @@
-/*
- * "Copyright (c) 2000-2005 The Regents of the University  of California.
+/**
+ * Copyright (c) 2005-2006 Arched Rock Corporation
  * 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.
+ * 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 Arched 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.
  *
- * 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."
+ * 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
  */
 
 /**
- * @author Joe Polastre
+ * An implementation of the UART on USART1 for the MSP430.
+ * @author Vlado Handziski <handzisk@tkn.tu-berlin.de>
+ * @author Jonathan Hui <jhui@archedrock.com>
+ * @author Eric B. Decker <cire81@gmail.com>
+ * @version $Revision$ $Date$
  */
 
-configuration Msp430Uart1C {
-  provides interface Init;
-  provides interface Resource[ uint8_t id ];
-  provides interface ArbiterInfo;
-  provides interface StdControl;
-  provides interface SerialByteComm;
+#include "msp430usart.h"
+
+generic configuration Msp430Uart1C() {
+
+  provides interface Resource;
+  provides interface ResourceRequested;
+  provides interface UartStream;
+  provides interface UartByte;
+
+  uses interface Msp430UartConfigure;
 }
+
 implementation {
-#ifndef DEFAULT_BAUDRATE
-#define DEFAULT_BAUDRATE (115200ul)
-#endif
-  components new Msp430UartP(DEFAULT_BAUDRATE) as UartP;
-  Init = UartP;
-  StdControl = UartP;
-  SerialByteComm = UartP;
-
-  components HplMsp430Usart1C as HplUsartC;
-  Init = HplUsartC;
-  Resource = HplUsartC;
-  ArbiterInfo = HplUsartC;
-  UartP.HplUsart -> HplUsartC;
-  UartP.HplUsartInterrupts -> HplUsartC;
-}
 
+  enum {
+    CLIENT_ID = unique( MSP430_UART1_BUS ),
+  };
+
+  components Msp430Uart1P as UartP;
+  Resource = UartP.Resource[ CLIENT_ID ];
+  UartStream = UartP.UartStream[ CLIENT_ID ];
+  UartByte = UartP.UartByte[ CLIENT_ID ];;
+  Msp430UartConfigure = UartP.Msp430UartConfigure[ CLIENT_ID ];
+
+  components new Msp430Usart1C() as UsartC;
+  ResourceRequested = UsartC;
+  UartP.ResourceConfigure[ CLIENT_ID ] <- UsartC.ResourceConfigure;
+  UartP.UsartResource[ CLIENT_ID ] -> UsartC.Resource;
+  UartP.UsartInterrupts[ CLIENT_ID ] -> UsartC.HplMsp430UsartInterrupts;
+}