-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathUARTUtils.h
176 lines (156 loc) · 5.32 KB
/
UARTUtils.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
/*
* Copyright (c) 2015, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** ============================================================================
* @file UARTUtils.h
*
* @brief UART related utilities
*
* The UARTUtils header file should be included in an application as follows:
* @code
* #include <UARTUtils.h>
* @endcode
*
* ============================================================================
*/
#ifndef __UARTUtils_H
#define __UARTUtils_H
#ifdef __cplusplus
extern "C" {
#endif
#include <xdc/std.h>
#include <stdio.h>
#if defined(__TI_COMPILER_VERSION__)
#include <file.h>
#endif
/*!
* @brief Open the UART to be used with LoggerIdle
*
* This function opens the UART to be used by the LoggerIdle plugged function.
*
* @param index UART to use for LoggerIdle's send function from the ports
* array. Matches the same number uart base (0 -> UART_BASE0).
*/
extern void UARTUtils_loggerIdleInit(unsigned int index);
/*!
* @brief Sends Log data out the UART
*
* This function should not be called directly, it will be called by the
* LoggerIdle module during Idle.
*
* @param a Pointer to unsigned char buffer
* @param len length of unsigned char buffer
* @return Number of bytes sent
*
* To configure LoggerIdle to upload via UART in the .cfg:
* @code
* var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
* LoggingSetup.loggerType = LoggingSetup.UploadMode_IDLE;
* var LoggerIdle = xdc.useModule('ti.uia.sysbios.LoggerIdle');
* LoggerIdle.transportFxn = "&UARTUtils_loggerIdleSend";
* LoggerIdle.transportType = LoggerIdle.TransportType_UART;
* @endcode
*
*/
extern Int UARTUtils_loggerIdleSend(UChar *a, Int len);
/*!
* @brief close function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_deviceclose(int fd);
/*!
* @brief seek function for add_device rts function
*
* This function should not be called directly
*/
extern off_t UARTUtils_devicelseek(int fd, off_t offset, int origin);
/*!
* @brief open function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_deviceopen(const char *path, unsigned flags, int mode);
/*!
* @brief read function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_deviceread(int fd, char *buffer, unsigned size);
/*!
* @brief rename function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_devicerename(const char *old_name, const char *new_name);
/*!
* @brief unlink function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_deviceunlink(const char *path);
/*!
* @brief write function for add_device rts function
*
* This function should not be called directly
*/
extern int UARTUtils_devicewrite(int fd, const char *buffer, unsigned size);
/*!
* @brief abort function called within System_abort
*
* This function should not be called directly
*/
extern Void UARTUtils_systemAbort(String str);
/*!
* @brief Opens the UART to be used with SysCallback
*
* This function opens the UART to be used by the SysCallback plugged functions.
*
* @param index UART to use for System output from ports array. Matches the
* same number uart base (0 -> UART_BASE0).
*/
extern void UARTUtils_systemInit(unsigned int index);
/*!
* @brief putch function for System_printf
*
* This function should not be called directly
*/
extern Void UARTUtils_systemPutch(Char a);
/*!
* @brief ready function for System module
*
* This function should not be called directly
*/
extern Bool UARTUtils_systemReady();
#ifdef __cplusplus
}
#endif
#endif /* __UARTUtils_H */