Contiki-NG
dbg-arch.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018, Texas Instruments Incorporated - http://www.ti.com/
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. Neither the name of the copyright holder nor the names of its
14  * contributors may be used to endorse or promote products derived
15  * from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21  * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28  * OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 /**
31  * \addtogroup cc13xx-cc26xx-platform
32  * @{
33  *
34  * \file
35  * Implementation of the dbg module for CC13xx/CC26xx, used by stdio.
36  * The dbg module is implemented by writing to UART0.
37  * \author
38  * Edvard Pettersen <e.pettersen@ti.com>
39  */
40 /*---------------------------------------------------------------------------*/
41 #include "contiki.h"
42 #include "sys/cc.h"
43 /*---------------------------------------------------------------------------*/
44 #include "uart0-arch.h"
45 /*---------------------------------------------------------------------------*/
46 #include <stdio.h>
47 #include <stddef.h>
48 #include <string.h>
49 /*---------------------------------------------------------------------------*/
50 int
52 {
53  unsigned char ch;
54  int num_bytes;
55 
56  ch = (unsigned char)c;
57 
58  num_bytes = (int)uart0_write(&ch, 1);
59  return (num_bytes > 0)
60  ? num_bytes
61  : 0;
62 }
63 /*---------------------------------------------------------------------------*/
64 unsigned int
65 dbg_send_bytes(const unsigned char *seq, unsigned int len)
66 {
67  size_t seq_len;
68  size_t max_len;
69  int num_bytes;
70 
71  seq_len = strlen((const char *)seq);
72  max_len = MIN(seq_len, (size_t)len);
73 
74  if(max_len == 0) {
75  return 0;
76  }
77 
78  num_bytes = (int)uart0_write(seq, max_len);
79  return (num_bytes > 0)
80  ? num_bytes
81  : 0;
82 }
83 /*---------------------------------------------------------------------------*/
84 /** @} */
Header file of UART driver for CC13xx/CC26xx.
int dbg_putchar(int c)
Print a character to debug output.
Definition: dbg-arch.c:51
unsigned int dbg_send_bytes(const unsigned char *seq, unsigned int len)
Print a stream of bytes.
Definition: dbg-arch.c:65
Default definitions of C compiler quirk work-arounds.
int_fast32_t uart0_write(const void *buf, size_t buf_size)
Writes data from a memory buffer to the UART interface.
Definition: uart0-arch.c:106