CC13xx Driver Library
event.h
Go to the documentation of this file.
1 /******************************************************************************
2 * Filename: event.h
3 * Revised: 2015-07-16 12:12:04 +0200 (Thu, 16 Jul 2015)
4 * Revision: 44151
5 *
6 * Description: Defines and prototypes for the Event Handler.
7 *
8 * Copyright (c) 2015, Texas Instruments Incorporated
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions are met:
13 *
14 * 1) Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 *
17 * 2) Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 *
21 * 3) Neither the name of the ORGANIZATION nor the names of its contributors may
22 * be used to endorse or promote products derived from this software without
23 * specific prior written permission.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 ******************************************************************************/
38 
39 //*****************************************************************************
40 //
45 //
46 //*****************************************************************************
47 
48 #ifndef __EVENT_H__
49 #define __EVENT_H__
50 
51 //*****************************************************************************
52 //
53 // If building with a C++ compiler, make all of the definitions in this header
54 // have a C binding.
55 //
56 //*****************************************************************************
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61 
62 #include <stdbool.h>
63 #include <stdint.h>
64 #include <inc/hw_types.h>
65 #include <inc/hw_memmap.h>
66 #include <inc/hw_event.h>
67 #include <driverlib/debug.h>
68 
69 
70 //*****************************************************************************
71 //
72 // API Functions and prototypes
73 //
74 //*****************************************************************************
75 
76 //*****************************************************************************
77 //
139 //
140 //*****************************************************************************
141 __STATIC_INLINE void
142 EventRegister(uint32_t ui32EventSubscriber, uint32_t ui32EventSource)
143 {
144  // Check the arguments.
145  ASSERT(( ui32EventSubscriber == EVENT_O_CPUIRQSEL30 ) ||
146  ( ui32EventSubscriber == EVENT_O_RFCSEL9 ) ||
147  ( ui32EventSubscriber == EVENT_O_GPT0ACAPTSEL ) ||
148  ( ui32EventSubscriber == EVENT_O_GPT0BCAPTSEL ) ||
149  ( ui32EventSubscriber == EVENT_O_GPT1ACAPTSEL ) ||
150  ( ui32EventSubscriber == EVENT_O_GPT1BCAPTSEL ) ||
151  ( ui32EventSubscriber == EVENT_O_GPT2ACAPTSEL ) ||
152  ( ui32EventSubscriber == EVENT_O_GPT2BCAPTSEL ) ||
153  ( ui32EventSubscriber == EVENT_O_GPT3ACAPTSEL ) ||
154  ( ui32EventSubscriber == EVENT_O_GPT3BCAPTSEL ) ||
155  ( ui32EventSubscriber == EVENT_O_UDMACH9SSEL ) ||
156  ( ui32EventSubscriber == EVENT_O_UDMACH9BSEL ) ||
157  ( ui32EventSubscriber == EVENT_O_UDMACH10SSEL ) ||
158  ( ui32EventSubscriber == EVENT_O_UDMACH10BSEL ) ||
159  ( ui32EventSubscriber == EVENT_O_UDMACH11SSEL ) ||
160  ( ui32EventSubscriber == EVENT_O_UDMACH11BSEL ) ||
161  ( ui32EventSubscriber == EVENT_O_UDMACH12SSEL ) ||
162  ( ui32EventSubscriber == EVENT_O_UDMACH12BSEL ) ||
163  ( ui32EventSubscriber == EVENT_O_UDMACH14BSEL ) ||
164  ( ui32EventSubscriber == EVENT_O_AUXSEL0 ) ||
165  ( ui32EventSubscriber == EVENT_O_I2SSTMPSEL0 ) ||
166  ( ui32EventSubscriber == EVENT_O_FRZSEL0 ) );
167 
168  // Map the event source to the event subscriber
169  HWREG(EVENT_BASE + ui32EventSubscriber) = ui32EventSource;
170 }
171 
172 //*****************************************************************************
173 //
190 //
191 //*****************************************************************************
192 __STATIC_INLINE void
193 EventSwEventSet(uint32_t ui32SwEvent)
194 {
195  // Check the arguments.
196  ASSERT( ui32SwEvent <= 3 );
197 
198  // Each software event is byte accessible
199  HWREGB(EVENT_BASE + EVENT_O_SWEV + ui32SwEvent) = 1;
200 }
201 
202 //*****************************************************************************
203 //
213 //
214 //*****************************************************************************
215 __STATIC_INLINE void
216 EventSwEventClear(uint32_t ui32SwEvent)
217 {
218  // Check the arguments.
219  ASSERT( ui32SwEvent <= 3 );
220 
221  // Each software event is byte accessible
222  HWREGB(EVENT_BASE + EVENT_O_SWEV + ui32SwEvent) = 0;
223 }
224 
225 //*****************************************************************************
226 //
238 //
239 //*****************************************************************************
240 __STATIC_INLINE uint32_t
241 EventSwEventGet(uint32_t ui32SwEvent)
242 {
243  // Check the arguments.
244  ASSERT( ui32SwEvent <= 3 );
245 
246  // Each software event is byte accessible
247  return( HWREGB(EVENT_BASE + EVENT_O_SWEV + ui32SwEvent));
248 }
249 
250 //*****************************************************************************
251 //
252 // Mark the end of the C bindings section for C++ compilers.
253 //
254 //*****************************************************************************
255 #ifdef __cplusplus
256 }
257 #endif
258 
259 #endif // __EVENT_H__
260 
261 //*****************************************************************************
262 //
266 //
267 //*****************************************************************************
static uint32_t EventSwEventGet(uint32_t ui32SwEvent)
Gets software event status.
Definition: event.h:241
static void EventSwEventClear(uint32_t ui32SwEvent)
Clears software event.
Definition: event.h:216
#define ASSERT(expr)
Definition: debug.h:74
static void EventRegister(uint32_t ui32EventSubscriber, uint32_t ui32EventSource)
Connects an event to an event subscriber via Event Fabric.
Definition: event.h:142
static void EventSwEventSet(uint32_t ui32SwEvent)
Sets software event.
Definition: event.h:193