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
|
//###########################################################################
//
// FILE: F2837xD_device.h
//
// TITLE: F2837xD Device Definitions.
//
//###########################################################################
// $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.
// $
//###########################################################################
#ifndef F2837xD_DEVICE_H
#define F2837xD_DEVICE_H
#if (!defined(CPU1) && !defined(CPU2))
#error "You must define CPU1 or CPU2 in your project properties. Otherwise, the offsets in your header files will be inaccurate."
#endif
#if (defined(CPU1) && defined(CPU2))
#error "You have defined both CPU1 and CPU2 in your project properties. Only a single CPU should be defined."
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define TARGET 1
//
// User To Select Target Device:
//
#define F28_2837xD TARGET
//
// Common CPU Definitions:
//
extern __cregister volatile unsigned int IFR;
extern __cregister volatile unsigned int IER;
#define EINT __asm(" clrc INTM")
#define DINT __asm(" setc INTM")
#define ERTM __asm(" clrc DBGM")
#define DRTM __asm(" setc DBGM")
#ifndef EALLOW
#define EALLOW __asm(" EALLOW")
#endif
#ifndef EDIS
#define EDIS __asm(" EDIS")
#endif
#define ESTOP0 __asm(" ESTOP0")
#define M_INT1 0x0001
#define M_INT2 0x0002
#define M_INT3 0x0004
#define M_INT4 0x0008
#define M_INT5 0x0010
#define M_INT6 0x0020
#define M_INT7 0x0040
#define M_INT8 0x0080
#define M_INT9 0x0100
#define M_INT10 0x0200
#define M_INT11 0x0400
#define M_INT12 0x0800
#define M_INT13 0x1000
#define M_INT14 0x2000
#define M_DLOG 0x4000
#define M_RTOS 0x8000
#ifndef C28X_BIT0
#define C28X_BIT0 0x00000001
#endif
#ifndef C28X_BIT1
#define C28X_BIT1 0x00000002
#endif
#ifndef C28X_BIT2
#define C28X_BIT2 0x00000004
#endif
#ifndef C28X_BIT3
#define C28X_BIT3 0x00000008
#endif
#ifndef C28X_BIT4
#define C28X_BIT4 0x00000010
#endif
#ifndef C28X_BIT5
#define C28X_BIT5 0x00000020
#endif
#ifndef C28X_BIT6
#define C28X_BIT6 0x00000040
#endif
#ifndef C28X_BIT7
#define C28X_BIT7 0x00000080
#endif
#ifndef C28X_BIT8
#define C28X_BIT8 0x00000100
#endif
#ifndef C28X_BIT9
#define C28X_BIT9 0x00000200
#endif
#ifndef C28X_BIT10
#define C28X_BIT10 0x00000400
#endif
#ifndef C28X_BIT11
#define C28X_BIT11 0x00000800
#endif
#ifndef C28X_BIT12
#define C28X_BIT12 0x00001000
#endif
#ifndef C28X_BIT13
#define C28X_BIT13 0x00002000
#endif
#ifndef C28X_BIT14
#define C28X_BIT14 0x00004000
#endif
#ifndef C28X_BIT15
#define C28X_BIT15 0x00008000
#endif
#ifndef C28X_BIT16
#define C28X_BIT16 0x00010000
#endif
#ifndef C28X_BIT17
#define C28X_BIT17 0x00020000
#endif
#ifndef C28X_BIT18
#define C28X_BIT18 0x00040000
#endif
#ifndef C28X_BIT19
#define C28X_BIT19 0x00080000
#endif
#ifndef C28X_BIT20
#define C28X_BIT20 0x00100000
#endif
#ifndef C28X_BIT21
#define C28X_BIT21 0x00200000
#endif
#ifndef C28X_BIT22
#define C28X_BIT22 0x00400000
#endif
#ifndef C28X_BIT23
#define C28X_BIT23 0x00800000
#endif
#ifndef C28X_BIT24
#define C28X_BIT24 0x01000000
#endif
#ifndef C28X_BIT25
#define C28X_BIT25 0x02000000
#endif
#ifndef C28X_BIT26
#define C28X_BIT26 0x04000000
#endif
#ifndef C28X_BIT27
#define C28X_BIT27 0x08000000
#endif
#ifndef C28X_BIT28
#define C28X_BIT28 0x10000000
#endif
#ifndef C28X_BIT29
#define C28X_BIT29 0x20000000
#endif
#ifndef C28X_BIT30
#define C28X_BIT30 0x40000000
#endif
#ifndef C28X_BIT31
#define C28X_BIT31 0x80000000
#endif
//
// For Portability, User Is Recommended To Use the C99 Standard integer types
//
#if !defined(__TMS320C28XX_CLA__)
#include <assert.h>
#include <stdarg.h>
#endif //__TMS320C28XX_CLA__
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
//
// C++ Bool Compatibility
//
#if defined(__cplusplus)
typedef bool _Bool;
#endif
//
// C99 defines boolean type to be _Bool, but this doesn't match the format of
// the other standard integer types. bool_t has been defined to fill this gap.
//
typedef _Bool bool_t;
//
//used for a bool function return status
//
typedef _Bool status_t;
#ifndef SUCCESS
#define SUCCESS true
#endif
#ifndef FAIL
#define FAIL false
#endif
//
// The following data types are included for compatibility with legacy code,
// they are not recommended for use in new software. Please use the C99
// types included above
//
#ifndef DSP28_DATA_TYPES
#define DSP28_DATA_TYPES
typedef int int16;
typedef long int32;
typedef long long int64;
typedef unsigned int Uint16;
typedef unsigned long Uint32;
typedef unsigned long long Uint64;
typedef float float32;
typedef long double float64;
#endif
//
// The following data types are for use with byte addressable peripherals.
// See compiler documentation on the byte_peripheral type attribute.
//
#ifndef __TMS320C28XX_CLA__
#if __TI_COMPILER_VERSION__ >= 16006000
typedef unsigned int bp_16 __attribute__((byte_peripheral));
typedef unsigned long bp_32 __attribute__((byte_peripheral));
#endif
#endif
//
// Include All Peripheral Header Files:
//
#include "F2837xD_adc.h"
#include "F2837xD_analogsubsys.h"
#include "F2837xD_cla.h"
#include "F2837xD_cmpss.h"
#include "F2837xD_cputimer.h"
#include "F2837xD_dac.h"
#include "F2837xD_dcsm.h"
#include "F2837xD_dma.h"
#include "F2837xD_ecap.h"
#include "F2837xD_emif.h"
#include "F2837xD_epwm.h" // Enhanced PWM
#include "F2837xD_epwm_xbar.h"
#include "F2837xD_eqep.h"
#include "F2837xD_flash.h"
#include "F2837xD_gpio.h" // General Purpose I/O Registers
#include "F2837xD_i2c.h"
#include "F2837xD_input_xbar.h"
#include "F2837xD_ipc.h"
#include "F2837xD_mcbsp.h"
#include "F2837xD_memconfig.h"
#include "F2837xD_nmiintrupt.h" // NMI Interrupt Registers
#include "F2837xD_output_xbar.h"
#include "F2837xD_piectrl.h" // PIE Control Registers
#include "F2837xD_pievect.h"
#include "F2837xD_sci.h"
#include "F2837xD_sdfm.h"
#include "F2837xD_spi.h"
#include "F2837xD_sysctrl.h" // System Control/Power Modes
#include "F2837xD_upp.h"
#include "F2837xD_xbar.h"
#include "F2837xD_xint.h" // External Interrupts
//
// byte_peripheral attribute is only supported on the C28
//
#ifndef __TMS320C28XX_CLA__
#if __TI_COMPILER_VERSION__ >= 16006000
#include "F2837xD_can.h"
#endif
#endif
#ifdef __cplusplus
}
#endif // extern "C"
#endif // end of F2837xD_DEVICE_H definition
//
// End of file.
//
|