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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
|
//###########################################################################
//
// FILE: F2837xD_Ipc_drivers.h
//
// TITLE: Defines and Macros for the IPC Controller
//
//###########################################################################
// $TI Release: F2837xD Support Library v3.05.00.00 $
// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
// $Copyright:
// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
//
// 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.
// $
//###########################################################################
//
//! \addtogroup ipc_driver_api
//! @{
//
#ifndef F2837xD_IPC_DRIVERS_H
#define F2837xD_IPC_DRIVERS_H
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
#ifdef __cplusplus
extern "C" {
#endif
//
// Included Files
//
#include "F2837xD_device.h"
//
// Defines
//
//
// The following are values that are used to define the maximum size of the
// global circular buffer variables g_asIPCCPU1toCPU2Buffers and
// g_asIPCCPU2toCPU1Buffers. They are also used in the IpcPut() and IpcGet()
// functions. IPC_BUFFER_SIZE and NUM_IPC_INTERRUPTS are user-configurable.
//
#define IPC_BUFFER_SIZE 4 // # of tIpcMessage messages in
// circular buffer
// (must be interval of 2)
#define NUM_IPC_INTERRUPTS 4 // # of IPC interrupts using circular
// buffer
// (must be same number on both CPUs
#define MAX_BUFFER_INDEX IPC_BUFFER_SIZE - 1
//
// The following are values that can be passed to IPCInitialize()
// as the usCPU1IpcInterrupt and usCPU2IpcInterrupt parameters
//
#define IPC_INT0 0x0001
#define IPC_INT1 0x0002
#define IPC_INT2 0x0003
#define IPC_INT3 0x0004
//
// The following are values that are returned from all of the IPCCtoM command
// functions to determine whether the command was successfully sent or not.
//
#define STATUS_FAIL 0x0001
#define STATUS_PASS 0x0000
//
// The following are values that can be passed to IPCReqMemAccess() as
// usMaster parameter to determine which processor to give master access to
// GSx blocks.
//
#define IPC_GSX_CPU1_MASTER 0x0001
#define IPC_GSX_CPU2_MASTER 0x0000
//
// The following are values that can be passed to all IPC CPU1 to CPU2 or
// CPU2 to CPU1 command functions as bBlock parameter to determine whether to
// wait/block until a slot in PutBuffer is available if it is full, or to exit
// with a failure status.
//
#define ENABLE_BLOCKING 0x0001
#define DISABLE_BLOCKING 0x0000
//
// The following are values that can be passed to IPCCtoMDataRead(),
// IPCCCtoMSetBits(),IPCCCtoMSetBits_Protected(), IPCCCtoMClearBits(),
// IPCCCtoMClearBits_Protected(), IPCCCtoMDataWrite(),
// IPCCtoMDataWrite_Protected()
// as usLength parameter to determine whether command applies to 16- or 32-bit
// data word.
//
#define IPC_LENGTH_16_BITS 0x00000001
#define IPC_LENGTH_32_BITS 0x00000002
//
// The following are values that can be passed to IPCReqMemAccess() as
// ulMask parameter to configure GSxMSEL_REG register for master access to Sx
// RAM block.
//
#define GS0_ACCESS 0x00000001 // Master Access to GS0
#define GS1_ACCESS 0x00000002 // Master Access to GS1
#define GS2_ACCESS 0x00000004 // Master Access to GS2
#define GS3_ACCESS 0x00000008 // Master Access to GS3
#define GS4_ACCESS 0x00000010 // Master Access to GS4
#define GS5_ACCESS 0x00000020 // Master Access to GS5
#define GS6_ACCESS 0x00000040 // Master Access to GS6
#define GS7_ACCESS 0x00000080 // Master Access to GS7
#define GS8_ACCESS 0x00000100 // Master Access to GS8
#define GS9_ACCESS 0x00000200 // Master Access to GS9
#define GS10_ACCESS 0x00000400 // Master Access to GS10
#define GS11_ACCESS 0x00000800 // Master Access to GS11
#define GS12_ACCESS 0x00001000 // Master Access to GS12
#define GS13_ACCESS 0x00002000 // Master Access to GS13
#define GS14_ACCESS 0x00004000 // Master Access to GS14
#define GS15_ACCESS 0x00008000 // Master Access to GS15
//
// The following are values that can be passed to IPCCtoMTaskBusy() as the
// ulFlags parameter.
// IPC_FLAG17 - IPC_FLAG32 can also be passed to IPCtoMDataRead() and
// IPCCtoMReadBlock() as the ulResponseFlag parameter.
//
#define NO_FLAG 0x00000000 // NO FLAG
#define IPC_FLAG0 0x00000001 // IPC FLAG 0
#define IPC_FLAG1 0x00000002 // IPC FLAG 1
#define IPC_FLAG2 0x00000004 // IPC FLAG 2
#define IPC_FLAG3 0x00000008 // IPC FLAG 3
#define IPC_FLAG4 0x00000010 // IPC FLAG 4
#define IPC_FLAG5 0x00000020 // IPC FLAG 5
#define IPC_FLAG6 0x00000040 // IPC FLAG 6
#define IPC_FLAG7 0x00000080 // IPC FLAG 7
#define IPC_FLAG8 0x00000100 // IPC FLAG 8
#define IPC_FLAG9 0x00000200 // IPC FLAG 9
#define IPC_FLAG10 0x00000400 // IPC FLAG 10
#define IPC_FLAG11 0x00000800 // IPC FLAG 11
#define IPC_FLAG12 0x00001000 // IPC FLAG 12
#define IPC_FLAG13 0x00002000 // IPC FLAG 13
#define IPC_FLAG14 0x00004000 // IPC FLAG 14
#define IPC_FLAG15 0x00008000 // IPC FLAG 15
#define IPC_FLAG16 0x00010000 // IPC FLAG 16
#define IPC_FLAG17 0x00020000 // IPC FLAG 17
#define IPC_FLAG18 0x00040000 // IPC FLAG 18
#define IPC_FLAG19 0x00080000 // IPC FLAG 19
#define IPC_FLAG20 0x00100000 // IPC FLAG 20
#define IPC_FLAG21 0x00200000 // IPC FLAG 21
#define IPC_FLAG22 0x00400000 // IPC FLAG 22
#define IPC_FLAG23 0x00800000 // IPC FLAG 23
#define IPC_FLAG24 0x01000000 // IPC FLAG 24
#define IPC_FLAG25 0x02000000 // IPC FLAG 25
#define IPC_FLAG26 0x04000000 // IPC FLAG 26
#define IPC_FLAG27 0x08000000 // IPC FLAG 27
#define IPC_FLAG28 0x10000000 // IPC FLAG 28
#define IPC_FLAG29 0x20000000 // IPC FLAG 29
#define IPC_FLAG30 0x40000000 // IPC FLAG 30
#define IPC_FLAG31 0x80000000 // IPC FLAG 31
//
// The following are values that are used by all command functions and passed
// between processors in tIpcMessage.ulmessage or in the xTOyIPCCOM register
// to determine what command is requested by the sending processor.
//
#define IPC_SET_BITS_16 0x00000001 // Used for IPC-Lite
#define IPC_SET_BITS_32 0x00000002 // Used for IPC-Lite
#define IPC_CLEAR_BITS_16 0x00000003 // Used for IPC-Lite
#define IPC_CLEAR_BITS_32 0x00000004 // Used for IPC-Lite
#define IPC_DATA_WRITE_16 0x00000005 // Used for IPC-Lite
#define IPC_DATA_WRITE_32 0x00000006 // Used for IPC-Lite
#define IPC_DATA_READ_16 0x00000007 // Used for Boot ROM
#define IPC_DATA_READ_32 0x00000008 // Used for Boot ROM
#define IPC_DATA_READ 0x00000008
#define IPC_SET_BITS_16_PROTECTED 0x00000009 // Used for IPC-Lite
#define IPC_SET_BITS_32_PROTECTED 0x0000000A // Used for IPC-Lite
#define IPC_CLEAR_BITS_16_PROTECTED 0x0000000B // Used for IPC-Lite
#define IPC_CLEAR_BITS_32_PROTECTED 0x0000000C // Used for IPC-Lite
#define IPC_DATA_WRITE_16_PROTECTED 0x0000000D // Used for IPC-Lite
#define IPC_DATA_WRITE_32_PROTECTED 0x0000000E // Used for IPC-Lite
//
// 0x0000000F and 0x0000010 are reserved by boot ROM
//
#define IPC_BRANCH 0x00000011
#define IPC_FUNC_CALL 0x00000012
#define IPC_MTOC_EXECUTE_BOOTMODE_CMD 0x00000013
#define IPC_SET_BITS 0x00010001
#define IPC_CLEAR_BITS 0x00010002
#define IPC_DATA_WRITE 0x00010003
#define IPC_BLOCK_READ 0x00010004
#define IPC_BLOCK_WRITE 0x00010005
#define IPC_DATA_READ_PROTECTED 0x00010007
#define IPC_SET_BITS_PROTECTED 0x00010008
#define IPC_CLEAR_BITS_PROTECTED 0x00010009
#define IPC_DATA_WRITE_PROTECTED 0x0001000A
#define IPC_BLOCK_WRITE_PROTECTED 0x0001000B
//
// The following are values that can be passed into the
// IPCBootControlSystem() function in the ulBootMode parameter.
//
#define BROM_IPC_EXECUTE_BOOTMODE_CMD 0x00000013
//
// Below are the values programmed into IPCBOOTMODE register
//
#define C1C2_BROM_BOOTMODE_BOOT_FROM_PARALLEL 0x00000000
#define C1C2_BROM_BOOTMODE_BOOT_FROM_SCI 0x00000001
#define C1C2_BROM_BOOTMODE_BOOT_FROM_SPI 0x00000004
#define C1C2_BROM_BOOTMODE_BOOT_FROM_I2C 0x00000005
#define C1C2_BROM_BOOTMODE_BOOT_FROM_CAN 0x00000007
#define C1C2_BROM_BOOTMODE_BOOT_FROM_RAM 0x0000000A
#define C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH 0x0000000B
//
// The following value is used by the
// IPCBootControlSystem() function to limit the allowed boot mode values.
//
#define C1C2_BROM_BOOTMODE_BOOT_COMMAND_MAX_SUPPORT_VALUE 0x0000000C
//
// The following values report on the CPU02 boot ROM status at all times while
// the CPU02 is booting, and will reside in IPCBOOTSTS[11:0].
//
//
// CPU02 has not filled in a valid value yet
//
#define C2_BOOTROM_BOOTSTS_C2TOC1_IGNORE 0x00000000
//
// CPU02 has started to boot, but not completed
// the boot process yet
//
#define C2_BOOTROM_BOOTSTS_SYSTEM_START_BOOT 0x00000001
//
// CPU02 has completed the boot and is ready for
// CPU01 TO CPU02 IPC commands
//
#define C2_BOOTROM_BOOTSTS_SYSTEM_READY 0x00000002
//
// CPU02 ACKs the command in CPU01 TO CPU01
// BOOTMODE register
//
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_ACK 0x00000003
//
// CPU02 un-supported command in CPU01 TO CPU01
// BOOTMODE register
//
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_NAK_STATUS_NOT_SUPPORTED 0x00000004
//
// CPU2 NAKs the current boot command in
// CPU01 TO CPU01 BOOTMODE register
//
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_NAK_STATUS_BUSY_WITH_BOOT 0x00000005
//
//! A structure that defines an IPC message. These fields are used by the
//! IPC drivers to determine handling of data passed between processors.
//! Although they have a defined naming scheme, they can also be used
//! generically
//! to pass 32-bit data words between processors.
//
typedef struct
{
//! The command passed between processor systems.
uint32_t ulcommand;
//! The receiving processor address the command is requesting action on.
uint32_t uladdress;
//! A 32-bit variable, the usage of which is determined by ulcommand.
//! The most common usage is to pass length requirements
//! with the upper 16-bits storing a Response Flag for read commands.
uint32_t uldataw1;
//! A 32-bit variable, the usage of which is determined by ulcommand.
//! For block transfers, this variable is generally the address in
//! shared memory used to pass data between processors.
uint32_t uldataw2;
} tIpcMessage;
//
//! A structure that defines an IPC control instance. These
//! fields are used by the IPC drivers, and normally it is not necessary for
//! user software to directly read or write fields in the table.
//
typedef struct
{
//! The address of the PutBuffer IPC message (in MSGRAM)
tIpcMessage *psPutBuffer;
//! The IPC INT flag to set when sending messages
//! for this IPC controller instance.
uint32_t ulPutFlag;
//! The address of the PutBuffer Write index (in MSGRAM)
uint16_t *pusPutWriteIndex;
//! The address of the PutBuffer Read index (in MSGRAM)
uint16_t *pusPutReadIndex;
//! The address of the GetBuffer IPC message(in MSGRAM)
tIpcMessage *psGetBuffer;
//! The address of the GetBuffer Write Index (in MSGRAM)
uint16_t *pusGetWriteIndex;
//! The address of the GetBuffer Read Index (in MSGRAM)
uint16_t *pusGetReadIndex;
} tIpcController;
//
// A type definition for the IPC function call command.
//
typedef uint32_t (*tfIpcFuncCall)(uint32_t ulParam);
//
// Prototypes for Circular Buffers
//
extern tIpcMessage g_asIPCCPU1toCPU2Buffers[NUM_IPC_INTERRUPTS][IPC_BUFFER_SIZE];
extern tIpcMessage g_asIPCCPU2toCPU1Buffers[NUM_IPC_INTERRUPTS][IPC_BUFFER_SIZE];
//
// Function Prototypes
//
extern void IPCInitialize (volatile tIpcController *psController,
uint16_t usCPU2IpcInterrupt,
uint16_t usCPU1IpcInterrupt);
extern uint16_t IpcPut (volatile tIpcController *psController,
tIpcMessage *psMessage,
uint16_t bBlock);
extern uint16_t IpcGet (volatile tIpcController *psController,
tIpcMessage *psMessage,
uint16_t bBlock);
extern uint16_t IPCLtoRDataRead (volatile tIpcController *psController,
uint32_t ulAddress, void *pvData,
uint16_t usLength, uint16_t bBlock,
uint32_t ulResponseFlag);
extern uint16_t IPCLtoRDataRead_Protected (volatile tIpcController *psController,
uint32_t ulAddress, void *pvData,
uint16_t usLength, uint16_t bBlock,
uint32_t ulResponseFlag);
extern uint16_t IPCLtoRSetBits(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulMask,
uint16_t usLength,uint16_t bBlock);
extern uint16_t IPCLtoRSetBits_Protected(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulMask,
uint16_t usLength, uint16_t bBlock);
extern uint16_t IPCLtoRClearBits(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulMask,
uint16_t usLength,uint16_t bBlock);
extern uint16_t IPCLtoRClearBits_Protected(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulMask,
uint16_t usLength, uint16_t bBlock);
extern uint16_t IPCLtoRDataWrite(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulData,
uint16_t usLength, uint16_t bBlock,
uint32_t ulResponseFlag);
extern uint16_t IPCLtoRDataWrite_Protected(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulData,
uint16_t usLength, uint16_t bBlock,
uint32_t ulResponseFlag);
extern uint16_t IPCLtoRBlockRead(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulShareAddress,
uint16_t usLength, uint16_t bBlock,
uint32_t ulResponseFlag);
extern uint16_t IPCLtoRBlockWrite(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulShareAddress,
uint16_t usLength, uint16_t usWordLength,
uint16_t bBlock);
extern uint16_t IPCLtoRBlockWrite_Protected(volatile tIpcController *psController,
uint32_t ulAddress,
uint32_t ulShareAddress,
uint16_t usLength,
uint16_t usWordLength,
uint16_t bBlock);
extern uint16_t IPCLtoRFunctionCall(volatile tIpcController *psController,
uint32_t ulAddress, uint32_t ulParam,
uint16_t bBlock);
extern uint16_t IPCLtoRSendMessage(volatile tIpcController *psController,
uint32_t ulCommand, uint32_t ulAddress,
uint32_t ulDataW1, uint32_t ulDataW2,
uint16_t bBlock);
#if defined (CPU2)
uint16_t
IPCReqMemAccess (volatile tIpcController *psController, uint32_t ulMask,
uint16_t usMaster, uint16_t bBlock);
#endif
extern void IPCRtoLDataWrite(tIpcMessage *psMessage);
extern void IPCRtoLDataWrite_Protected(tIpcMessage *psMessage);
extern void IPCRtoLDataRead(volatile tIpcController *psController,
tIpcMessage *psMessage, uint16_t bBlock);
extern void IPCRtoLDataRead_Protected(volatile tIpcController *psController,
tIpcMessage *psMessage,uint16_t bBlock);
extern void IPCRtoLSetBits(tIpcMessage *psMessage);
extern void IPCRtoLSetBits_Protected(tIpcMessage *psMessage);
extern void IPCRtoLClearBits(tIpcMessage *psMessage);
extern void IPCRtoLClearBits_Protected(tIpcMessage *psMessage);
extern void IPCRtoLBlockRead(tIpcMessage *psMessage);
extern void IPCRtoLBlockWrite(tIpcMessage *psMessage);
extern void IPCRtoLBlockWrite_Protected(tIpcMessage *psMessage);
extern void IPCRtoLFunctionCall(tIpcMessage *psMessage);
//
// IPC Lite Driver Prototype Definitions
//
extern uint16_t IPCLiteLtoRGetResult (void *pvData, uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRDataRead(uint32_t ulFlag, uint32_t ulAddress,
uint16_t usLength, uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRSetBits(uint32_t ulFlag, uint32_t ulAddress,
uint32_t ulMask, uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRSetBits_Protected (uint32_t ulFlag,
uint32_t ulAddress,
uint32_t ulMask,
uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRClearBits(uint32_t ulFlag, uint32_t ulAddress,
uint32_t ulMask, uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRClearBits_Protected (uint32_t ulFlag,
uint32_t ulAddress,
uint32_t ulMask,
uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRDataWrite(uint32_t ulFlag, uint32_t ulAddress,
uint32_t ulData, uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRDataWrite_Protected(uint32_t ulFlag,
uint32_t ulAddress,
uint32_t ulData,
uint16_t usLength,
uint32_t ulStatusFlag);
extern uint16_t IPCLiteLtoRFunctionCall(uint32_t ulFlag, uint32_t ulAddress,
uint32_t ulParam, uint32_t ulStatusFlag);
extern uint16_t IPCLiteReqMemAccess (uint32_t ulFlag, uint32_t ulMask,
uint16_t ulMaster, uint32_t ulStatusFlag);
extern void IPCLiteRtoLDataRead(uint32_t ulFlag, uint32_t ulStatusFlag);
extern void IPCLiteRtoLSetBits(uint32_t ulFlag, uint32_t ulStatusFlag);
extern void IPCLiteRtoLSetBits_Protected (uint32_t ulFlag, uint32_t ulStatusFlag);
extern void IPCLiteRtoLClearBits(uint32_t ulFlag, uint32_t ulStatusFlag);
extern void IPCLiteRtoLClearBits_Protected (uint32_t ulFlag,
uint32_t ulStatusFlag);
extern void IPCLiteRtoLDataWrite(uint32_t ulFlag, uint32_t ulStatusFlag);
extern void IPCLiteRtoLDataWrite_Protected(uint32_t ulFlag,
uint32_t ulStatusFlag);
extern void IPCLiteRtoLFunctionCall(uint32_t ulFlag, uint32_t ulStatusFlag);
//
// IPC Utility Driver Prototype Definitions
//
extern void IPCRtoLFlagAcknowledge (uint32_t ulFlags);
extern Uint16 IPCRtoLFlagBusy (uint32_t ulFlags);
extern Uint16 IPCLtoRFlagBusy (uint32_t ulFlags);
extern void IPCLtoRFlagSet (uint32_t ulFlags);
extern void IPCLtoRFlagClear (uint32_t ulFlags);
extern uint32_t IPCGetBootStatus (void);
extern uint16_t IPCBootCPU2(uint32_t ulBootMode);
#ifdef __cplusplus
}
#endif /* extern "C" */
//
// Close the Doxygen group.
//! @}
//
#endif // end of F2837xD_IPC_DRIVERS_H definition
//
// End of file
//
|