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/*---------------------------------------------------------------------------*/
50int
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/*---------------------------------------------------------------------------*/
64unsigned int
65dbg_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/** @} */
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
unsigned int dbg_send_bytes(const unsigned char *s, unsigned int len)
Print a stream of bytes.
Definition: dbg-arch.c:53
int dbg_putchar(int c)
Print a character to debug output.
Definition: dbg-arch.c:61
Header file of UART driver for CC13xx/CC26xx.