FSM/test_on_28377/include/common/F2837xD_SWPrioritizedIsrLev...

351 lines
12 KiB
C
Raw Normal View History

//###########################################################################
//
// FILE: F2837xD_SWPrioritizedIsrLevels.h
//
// TITLE: F28 Devices Software Prioritized Interrupt Service Routine
// Level definitions.
//
//###########################################################################
//
// $Release Date: $
// $Copyright:
// Copyright (C) 2013-2022 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_SW_PRIORITZIED_ISR_H
#define F2837xD_SW_PRIORITZIED_ISR_H
#ifdef __cplusplus
extern "C" {
#endif
//
// Interrupt Enable Register Allocation For F2837xD Devices:
//
// Interrupts can be enabled/disabled using the CPU interrupt enable register
// (IER) and the PIE interrupt enable registers (PIEIER1 to PIEIER12).
//
//
// Set "Global" Interrupt Priority Level (IER register):
//
// The user must set the appropriate priority level for each of the CPU
// interrupts. This is termed as the "global" priority. The priority level
// must be a number between 1 (highest) to 16 (lowest). A value of 0 must
// be entered for reserved interrupts or interrupts that are not used. This
// will also reduce code size by not including ISR's that are not used.
//
// Note: The priority levels below are used to calculate the IER register
// interrupt masks MINT1 to MINT16.
//
//
// Note: The priority levels shown here may not make sense in a
// real application. This is for demonstration purposes only!!!
//
// The user should change these to values that make sense for
// their application.
//
// 0 = not used
// 1 = highest priority
// ...
// 16 = lowest priority
//
#define INT1PL 2 // Group1 Interrupts (PIEIER1)
#define INT2PL 1 // Group2 Interrupts (PIEIER2)
#define INT3PL 4 // Group3 Interrupts (PIEIER3)
#define INT4PL 2 // Group4 Interrupts (PIEIER4)
#define INT5PL 2 // Group5 Interrupts (PIEIER5)
#define INT6PL 3 // Group6 Interrupts (PIEIER6)
#define INT7PL 5 // Group7 Interrupts (PIEIER6)
#define INT8PL 5 // Group8 Interrupts (PIEIER6)
#define INT9PL 3 // Group9 Interrupts (PIEIER9)
#define INT10PL 6 // Group10 Interrupts (PIEIER6)
#define INT11PL 6 // Group11 Interrupts (PIEIER6)
#define INT12PL 8 // Group12 Interrupts (PIEIER6)
#define INT13PL 4 // XINT13
#define INT14PL 4 // INT14 (TINT2)
#define INT15PL 4 // DATALOG
#define INT16PL 4 // RTOSINT
//
// Set "Group" Interrupt Priority Level (PIEIER1 to PIEIER12 registers):
//
// The user must set the appropriate priority level for each of the PIE
// interrupts. This is termed as the "group" priority. The priority level
// must be a number between 1 (highest) to 16 (lowest). A value of 0 must
// be entered for reserved interrupts or interrupts that are not used. This
// will also reduce code size by not including ISR's that are not used:
//
// Note: The priority levels below are used to calculate the following
// PIEIER register interrupt masks:
// MG1_1 to MG1_16
// MG2_1 to MG2_16
// MG3_1 to MG3_16
// MG4_1 to MG4_16
// MG5_1 to MG5_16
// MG6_1 to MG6_16
// MG7_1 to MG7_16
// MG8_1 to MG8_16
// MG9_1 to MG9_16
// MG10_1 to MG10_16
// MG11_1 to MG11_16
// MG12_1 to MG12_16
//
// Note: The priority levels shown here may not make sense in a
// real application. This is for demonstration purposes only!!!
//
// The user should change these to values that make sense for
// their application.
//
// 0 = not used
// 1 = highest priority
// ...
// 16 = lowest priority
//
#define G1_1PL 5 // ADCA1_INT
#define G1_2PL 3 // ADCB1_INT
#define G1_3PL 1 // ADCC1_INT
#define G1_4PL 4 // XINT1_INT
#define G1_5PL 4 // XINT2_INT
#define G1_6PL 1 // ADCD1_INT
#define G1_7PL 12 // TIMER0_INT
#define G1_8PL 5 // WAKE_INT
#define G1_9PL 0 // Reserved
#define G1_10PL 0 // Reserved
#define G1_11PL 0 // Reserved
#define G1_12PL 0 // Reserved
#define G1_13PL 8 // IPC1_INT
#define G1_14PL 13 // IPC2_INT
#define G1_15PL 15 // IPC3_INT
#define G1_16PL 9 // IPC4_INT
#define G2_1PL 13 // EPWM1_TZ_INT
#define G2_2PL 1 // EPWM2_TZ_INT
#define G2_3PL 1 // EPWM3_TZ_INT
#define G2_4PL 9 // EPWM4_TZ_INT
#define G2_5PL 3 // EPWM5_TZ_INT
#define G2_6PL 13 // EPWM6_TZ_INT
#define G2_7PL 9 // EPWM7_TZ_INT
#define G2_8PL 13 // EPWM8_TZ_INT
#define G2_9PL 15 // EPWM9_TZ_INT
#define G2_10PL 11 // EPWM10_TZ_INT
#define G2_11PL 7 // EPWM11_TZ_INT
#define G2_12PL 10 // EPWM12_TZ_INT
#define G2_13PL 0 // Reserved
#define G2_14PL 0 // Reserved
#define G2_15PL 0 // Reserved
#define G2_16PL 0 // Reserved
#define G3_1PL 5 // EPWM1_INT
#define G3_2PL 9 // EPWM2_INT
#define G3_3PL 5 // EPWM3_INT
#define G3_4PL 2 // EPWM4_INT
#define G3_5PL 12 // EPWM5_INT
#define G3_6PL 4 // EPWM6_INT
#define G3_7PL 2 // EPWM7_INT
#define G3_8PL 13 // EPWM8_INT
#define G3_9PL 4 // EPWM9_INT
#define G3_10PL 12 // EPWM10_INT
#define G3_11PL 4 // EPWM11_INT
#define G3_12PL 14 // EPWM12_INT
#define G3_13PL 0 // Reserved
#define G3_14PL 0 // Reserved
#define G3_15PL 0 // Reserved
#define G3_16PL 0 // Reserved
#define G4_1PL 3 // ECAP1_INT
#define G4_2PL 3 // ECAP2_INT
#define G4_3PL 3 // ECAP3_INT
#define G4_4PL 6 // ECAP4_INT
#define G4_5PL 7 // ECAP5_INT
#define G4_6PL 7 // ECAP6_INT
#define G4_7PL 0 // Reserved
#define G4_8PL 0 // Reserved
#define G4_9PL 0 // Reserved
#define G4_10PL 0 // Reserved
#define G4_11PL 0 // Reserved
#define G4_12PL 0 // Reserved
#define G4_13PL 0 // Reserved
#define G4_14PL 0 // Reserved
#define G4_15PL 0 // Reserved
#define G4_16PL 0 // Reserved
#define G5_1PL 6 // EQEP1_INT
#define G5_2PL 5 // EQEP2_INT
#define G5_3PL 5 // EQEP3_INT
#define G5_4PL 1 // Reserved
#define G5_5PL 9 // CLB1_INT
#define G5_6PL 10 // CLB2_INT
#define G5_7PL 15 // CLB3_INT
#define G5_8PL 13 // CLB4_INT
#define G5_9PL 12 // SD1_INT
#define G5_10PL 9 // SD2_INT
#define G5_11PL 0 // Reserved
#define G5_12PL 0 // Reserved
#define G5_13PL 0 // Reserved
#define G5_14PL 0 // Reserved
#define G5_15PL 0 // Reserved
#define G5_16PL 0 // Reserved
#define G6_1PL 1 // SPIA_RX_INT
#define G6_2PL 7 // SPIA_TX_INT
#define G6_3PL 3 // SPIB_RX_INT
#define G6_4PL 3 // SPIB_TX_INT
#define G6_5PL 10 // MCBSPA_RX_INT
#define G6_6PL 7 // MCBSPA_TX_INT
#define G6_7PL 6 // MCBSPB_RX_INT
#define G6_8PL 13 // MCBSPB_TX_INT
#define G6_9PL 14 // SPIC_RX_INT
#define G6_10PL 3 // SPIC_TX_INT
#define G6_11PL 0 // Reserved
#define G6_12PL 0 // Reserved
#define G6_13PL 0 // Reserved
#define G6_14PL 0 // Reserved
#define G6_15PL 0 // Reserved
#define G6_16PL 0 // Reserved
#define G7_1PL 1 // DMA_CH1_INT
#define G7_2PL 11 // DMA_CH2_INT
#define G7_3PL 14 // DMA_CH3_INT
#define G7_4PL 3 // DMA_CH4_INT
#define G7_5PL 13 // DMA_CH5_INT
#define G7_6PL 14 // DMA_CH6_INT
#define G7_7PL 0 // Reserved
#define G7_8PL 0 // Reserved
#define G7_9PL 0 // Reserved
#define G7_10PL 0 // Reserved
#define G7_11PL 0 // Reserved
#define G7_12PL 0 // Reserved
#define G7_13PL 0 // Reserved
#define G7_14PL 0 // Reserved
#define G7_15PL 0 // Reserved
#define G7_16PL 0 // Reserved
#define G8_1PL 14 // I2CA_INT
#define G8_2PL 10 // I2CA_FIFO_INT
#define G8_3PL 11 // I2CB_INT
#define G8_4PL 9 // I2CB_FIFO_INT
#define G8_5PL 12 // SCIC_RX_INT
#define G8_6PL 2 // SCIC_TX_INT
#define G8_7PL 8 // SCID_RX_INT
#define G8_8PL 7 // SCID_TX_INT
#define G8_9PL 0 // Reserved
#define G8_10PL 0 // Reserved
#define G8_11PL 0 // Reserved
#define G8_12PL 0 // Reserved
#define G8_13PL 0 // Reserved
#define G8_14PL 0 // Reserved
#define G8_15PL 1 // UPPA_INT
#define G8_16PL 0 // Reserved
#define G9_1PL 12 // SCIA_RX_INT
#define G9_2PL 14 // SCIA_TX_INT
#define G9_3PL 11 // SCIB_RX_INT
#define G9_4PL 6 // SCIB_TX_INT
#define G9_5PL 14 // CANA0_INT
#define G9_6PL 10 // CANA1_INT
#define G9_7PL 10 // CANB0_INT
#define G9_8PL 5 // CANB1_INT
#define G9_9PL 0 // Reserved
#define G9_10PL 0 // Reserved
#define G9_11PL 0 // Reserved
#define G9_12PL 0 // Reserved
#define G9_13PL 0 // Reserved
#define G9_14PL 0 // Reserved
#define G9_15PL 12 // USBA_INT
#define G9_16PL 0 // Reserved
#define G10_1PL 14 // ADCA_EVT_INT
#define G10_2PL 3 // ADCA2_INT
#define G10_3PL 1 // ADCA3_INT
#define G10_4PL 12 // ADCA4_INT
#define G10_5PL 5 // ADCB_EVT_INT
#define G10_6PL 11 // ADCB2_INT
#define G10_7PL 12 // ADCB3_INT
#define G10_8PL 13 // ADCB4_INT
#define G10_9PL 7 // ADCC_EVT_INT
#define G10_10PL 8 // ADCC2_INT
#define G10_11PL 4 // ADCC3_INT
#define G10_12PL 9 // ADCC4_INT
#define G10_13PL 2 // ADCD_EVT_INT
#define G10_14PL 10 // ADCD2_INT
#define G10_15PL 11 // ADCD3_INT
#define G10_16PL 5 // ADCD4_INT
#define G11_1PL 9 // CLA1_1_INT
#define G11_2PL 6 // CLA1_2_INT
#define G11_3PL 9 // CLA1_3_INT
#define G11_4PL 9 // CLA1_4_INT
#define G11_5PL 6 // CLA1_5_INT
#define G11_6PL 13 // CLA1_6_INT
#define G11_7PL 10 // CLA1_7_INT
#define G11_8PL 15 // CLA1_8_INT
#define G11_9PL 0 // Reserved
#define G11_10PL 0 // Reserved
#define G11_11PL 0 // Reserved
#define G11_12PL 0 // Reserved
#define G11_13PL 0 // Reserved
#define G11_14PL 0 // Reserved
#define G11_15PL 0 // Reserved
#define G11_16PL 0 // Reserved
#define G12_1PL 3 // XINT3_INT
#define G12_2PL 6 // XINT4_INT
#define G12_3PL 10 // XINT5_INT
#define G12_4PL 5 // Reserved
#define G12_5PL 2 // FMC_INT
#define G12_6PL 11 // VCU_INT
#define G12_7PL 14 // FPU_OVERFLOW_ISR
#define G12_8PL 14 // FPU_UNDERFLOW_ISR
#define G12_9PL 6 // EMIF_ERROR_ISR
#define G12_10PL 5 // RAM_CORRECTABLE_ERROR_ISR
#define G12_11PL 4 // FLASH_CORRECTABLE_ERROR_ISR
#define G12_12PL 12 // RAM_ACCESS_VIOLATION_INT
#define G12_13PL 8 // SYS_PLL_SLIP_INT
#define G12_14PL 2 // AUX_PLL_SLIP_INT
#define G12_15PL 12 // CLA_UNDERFLOW_INT
#define G12_16PL 2 // CLA_OVERFLOW_INT
//
// Include the header file with software interrupt prioritization logic
//
#include "sw_interrupt_prioritization_logic.h"
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif // eof
//
// End of file
//