Contiki 3.x
Retarget.c
1 /**
2  * Copyright (c) 2014, Analog Devices, Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted (subject to the limitations in the
6  * disclaimer below) provided that the following conditions are met:
7  *
8  * - Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * - Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * - Neither the name of Analog Devices, Inc. nor the names of its
17  * contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
21  * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
22  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
23  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
31  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
32  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
34 /**
35  Module : Retarget.c
36  Description : uart interface
37  Date : December 2012
38  Version : v2.00
39  Changelog : v1.00 Initial
40  v2.00 use of UrtLib functions
41 */
42 #include <include.h>
43 #include "UrtLib.h"
44 #include <stdio.h>
45 #include <string.h>
46 #include <stddef.h>
47 
48 #define CR 0x0D
49 
50 
51 
52 /*************************************************************************/
53 /* size_t __read(int handle,unsigned char *buf,size_t bufSize) */
54 /* Write data to a stream */
55 /* Needed for retargetting the IAR DLIB library for the ADUCRF101 */
56 /*************************************************************************/
57 size_t __read(int handle,unsigned char *buf,size_t bufSize)
58 {
59  size_t i;
60  for (i=0x0; i<bufSize;i++)
61  {
62  // Wait for character available
63  while(!(COMLSR_DR==(pADI_UART->COMLSR & COMLSR_DR)));
64  buf[i] = pADI_UART->COMRX;
65  }
66  return i;
67 }
68 
69 /*************************************************************************/
70 /* __write(int handle,const unsigned char *buf,size_t bufSize) */
71 /* Read data from a stream */
72 /* Needed for retargetting the IAR DLIB library for the ADUCRF101 */
73 /*************************************************************************/
74 size_t __write(int handle,const unsigned char *buf,size_t bufSize)
75 {
76  size_t i;
77  for (i=0x0; i<bufSize;i++)
78  {
79  if (buf[i] == '\n')
80  {
81  while(!(COMLSR_THRE==(UrtLinSta(0) & COMLSR_THRE)));
82  UrtTx(0, 0x0D);
83  }
84  while(!(COMLSR_THRE==(UrtLinSta(0) & COMLSR_THRE)));
85  UrtTx(0, buf[i]);
86  }
87  return i;
88 }
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99