slip_uart1.c

00001 /*
00002  * Copyright (c) 2006, Swedish Institute of Computer Science
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 3. Neither the name of the Institute nor the names of its contributors
00014  *    may be used to endorse or promote products derived from this software
00015  *    without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
00018  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
00021  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00023  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00024  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00025  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00026  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00027  * SUCH DAMAGE.
00028  *
00029  * @(#)$Id: slip_uart1.c,v 1.8 2008/02/03 20:59:35 adamdunkels Exp $
00030  */
00031 
00032 /*
00033  * Machine dependent MSP430 SLIP routines for UART1.
00034  */
00035 
00036 #include <io.h>
00037 #include <signal.h>
00038 
00039 #include "contiki.h"
00040 
00041 #include "dev/slip.h"
00042 #include "dev/uart1.h"
00043 /*---------------------------------------------------------------------------*/
00044 void
00045 slip_arch_writeb(unsigned char c)
00046 {
00047   uart1_writeb(c);
00048 }
00049 /*---------------------------------------------------------------------------*/
00050 /*
00051  * The serial line is used to transfer IP packets using slip. To make
00052  * it possible to send debug output over the same line we send debug
00053  * output as slip frames (i.e delimeted by SLIP_END).
00054  *
00055  */
00056 /*---------------------------------------------------------------------------*/
00057 #if WITH_UIP
00058 int
00059 putchar(int c)
00060 {
00061 #define SLIP_END 0300
00062   static char debug_frame = 0;
00063 
00064   if (!debug_frame) {           /* Start of debug output */
00065     slip_arch_writeb(SLIP_END);
00066     slip_arch_writeb('\r');     /* Type debug line == '\r' */
00067     debug_frame = 1;
00068   }
00069 
00070   slip_arch_writeb((char)c);
00071   
00072   /*
00073    * Line buffered output, a newline marks the end of debug output and
00074    * implicitly flushes debug output.
00075    */
00076   if (c == '\n') {
00077     slip_arch_writeb(SLIP_END);
00078     debug_frame = 0;
00079   }
00080 
00081   return c;
00082 }
00083 #endif
00084 /*---------------------------------------------------------------------------*/
00085 /**
00086  * Initalize the RS232 port and the SLIP driver.
00087  *
00088  */
00089 void
00090 slip_arch_init(unsigned long ubr)
00091 {
00092   uart1_set_input(slip_input_byte);
00093 }
00094 /*---------------------------------------------------------------------------*/

Generated on Mon Apr 11 14:23:37 2011 for Contiki 2.5 by  doxygen 1.6.1