From 9c9c2573c32557d93fd105496d45dc0789e16cf5 Mon Sep 17 00:00:00 2001 From: nvt-se Date: Tue, 27 May 2008 13:03:19 +0000 Subject: [PATCH] lock UART for RS232 in putchar --- platform/msb430/dev/rs232.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/platform/msb430/dev/rs232.c b/platform/msb430/dev/rs232.c index 23c63ff6d..736a5663e 100644 --- a/platform/msb430/dev/rs232.c +++ b/platform/msb430/dev/rs232.c @@ -28,7 +28,7 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: rs232.c,v 1.4 2008/03/28 15:59:58 nvt-se Exp $ + * @(#)$Id: rs232.c,v 1.5 2008/05/27 13:03:19 nvt-se Exp $ */ /** \addtogroup esbrs232 @@ -79,11 +79,12 @@ rs232_send(char c) int putchar(int c) { - if (uart_get_mode() == UART_MODE_RS232) { + if (uart_lock(UART_MODE_RS232)) { /* Loop until the transmission buffer is available. */ UART_WAIT_TX(); /* Transmit the data. */ UART_TX = c; + uart_unlock(UART_MODE_RS232); return c; } else { return -1; @@ -108,13 +109,9 @@ rs232_set_speed(enum rs232_speed speed) void rs232_print(char *cptr) { - // lock UART for print operation - if (uart_lock(UART_MODE_RS232)) { - while(*cptr != 0) { - rs232_send(*cptr); - ++cptr; - } - uart_unlock(UART_MODE_RS232); + while(*cptr != 0) { + rs232_send(*cptr); + ++cptr; } } /*---------------------------------------------------------------------------*/