123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- //###########################################################################
- //
- // 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.
- //
|