346 lines
8.1 KiB
C
346 lines
8.1 KiB
C
//###########################################################################
|
|
//
|
|
// 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.
|
|
//
|