46 #include "sw/modules/types/src/types.h"
70 #define PIE_BASE_ADDR (0x00000CE0)
75 #define PIE_DBGIER_INT1_BITS (1 << 0)
79 #define PIE_DBGIER_INT2_BITS (1 << 1)
83 #define PIE_DBGIER_INT3_BITS (1 << 2)
87 #define PIE_DBGIER_INT4_BITS (1 << 3)
91 #define PIE_DBGIER_INT5_BITS (1 << 4)
95 #define PIE_DBGIER_INT6_BITS (1 << 5)
99 #define PIE_DBGIER_INT7_BITS (1 << 6)
103 #define PIE_DBGIER_INT8_BITS (1 << 7)
107 #define PIE_DBGIER_INT9_BITS (1 << 8)
111 #define PIE_DBGIER_INT10_BITS (1 << 9)
115 #define PIE_DBGIER_INT11_BITS (1 << 10)
119 #define PIE_DBGIER_INT12_BITS (1 << 11)
123 #define PIE_DBGIER_INT13_BITS (1 << 12)
127 #define PIE_DBGIER_INT14_BITS (1 << 13)
131 #define PIE_DBGIER_DLOGINT_BITS (1 << 14)
135 #define PIE_DBGIER_RTOSINT_BITS (1 << 15)
141 #define PIE_IER_INT1_BITS (1 << 0)
145 #define PIE_IER_INT2_BITS (1 << 1)
149 #define PIE_IER_INT3_BITS (1 << 2)
153 #define PIE_IER_INT4_BITS (1 << 3)
157 #define PIE_IER_INT5_BITS (1 << 4)
161 #define PIE_IER_INT6_BITS (1 << 5)
165 #define PIE_IER_INT7_BITS (1 << 6)
169 #define PIE_IER_INT8_BITS (1 << 7)
173 #define PIE_IER_INT9_BITS (1 << 8)
177 #define PIE_IER_INT10_BITS (1 << 9)
181 #define PIE_IER_INT11_BITS (1 << 10)
185 #define PIE_IER_INT12_BITS (1 << 11)
189 #define PIE_IER_INT13_BITS (1 << 12)
193 #define PIE_IER_INT14_BITS (1 << 13)
197 #define PIE_IER_DLOGINT_BITS (1 << 14)
201 #define PIE_IER_RTOSINT_BITS (1 << 15)
206 #define PIE_IERx_INTx1_BITS (1 << 0)
210 #define PIE_IERx_INTx2_BITS (1 << 1)
214 #define PIE_IERx_INTx3_BITS (1 << 2)
218 #define PIE_IERx_INTx4_BITS (1 << 3)
222 #define PIE_IERx_INTx5_BITS (1 << 4)
226 #define PIE_IERx_INTx6_BITS (1 << 5)
230 #define PIE_IERx_INTx7_BITS (1 << 6)
234 #define PIE_IERx_INTx8_BITS (1 << 7)
239 #define PIE_IFR_INT1_BITS (1 << 0)
243 #define PIE_IFR_INT2_BITS (1 << 1)
247 #define PIE_IFR_INT3_BITS (1 << 2)
251 #define PIE_IFR_INT4_BITS (1 << 3)
255 #define PIE_IFR_INT5_BITS (1 << 4)
259 #define PIE_IFR_INT6_BITS (1 << 5)
263 #define PIE_IFR_INT7_BITS (1 << 6)
267 #define PIE_IFR_INT8_BITS (1 << 7)
271 #define PIE_IFR_INT9_BITS (1 << 8)
275 #define PIE_IFR_INT10_BITS (1 << 9)
279 #define PIE_IFR_INT11_BITS (1 << 10)
283 #define PIE_IFR_INT12_BITS (1 << 11)
287 #define PIE_IFR_INT13_BITS (1 << 12)
291 #define PIE_IFR_INT14_BITS (1 << 13)
295 #define PIE_IFR_DLOGINT_BITS (1 << 14)
299 #define PIE_IFR_RTOSINT_BITS (1 << 15)
304 #define PIE_IFRx_INTx1_BITS (1 << 0)
308 #define PIE_IFRx_INTx2_BITS (1 << 1)
312 #define PIE_IFRx_INTx3_BITS (1 << 2)
316 #define PIE_IFRx_INTx4_BITS (1 << 3)
320 #define PIE_IFRx_INTx5_BITS (1 << 4)
324 #define PIE_IFRx_INTx6_BITS (1 << 5)
328 #define PIE_IFRx_INTx7_BITS (1 << 6)
332 #define PIE_IFRx_INTx8_BITS (1 << 7)
337 #define PIE_PIECTRL_ENPIE_BITS (1 << 0)
341 #define PIE_PIECTRL_PIEVECT_BITS (32767 << 1)
347 #define PIE_PIEACK_GROUP1_BITS (1 << 0)
351 #define PIE_PIEACK_GROUP2_BITS (1 << 1)
355 #define PIE_PIEACK_GROUP3_BITS (1 << 2)
359 #define PIE_PIEACK_GROUP4_BITS (1 << 3)
363 #define PIE_PIEACK_GROUP5_BITS (1 << 4)
367 #define PIE_PIEACK_GROUP6_BITS (1 << 5)
371 #define PIE_PIEACK_GROUP7_BITS (1 << 6)
375 #define PIE_PIEACK_GROUP8_BITS (1 << 7)
379 #define PIE_PIEACK_GROUP9_BITS (1 << 8)
383 #define PIE_PIEACK_GROUP10_BITS (1 << 9)
387 #define PIE_PIEACK_GROUP11_BITS (1 << 10)
391 #define PIE_PIEACK_GROUP12_BITS (1 << 11)
394 #define PIE_XINTnCR_POLARITY_BITS (3 << 2)
395 #define PIE_XINTnCR_ENABLE_BITS (1 << 0)
797 pie->
PIEACK = (1 << groupNumber);
892 extern PIE_Handle
PIE_init(
void *pMemory,
const size_t numBytes);
951 #endif // end of _PIE_H_ definition
volatile PIE_IntVec_t EPWM6_INT
EPWM6_INT interrupt vector.
volatile PIE_IntVec_t ADCINT4
ADCINT4 interrupt vector.
volatile PIE_IntVec_t CLAINT_LVF
CLA Interrupt LVF.
Denotes PIE group number 5.
DATALOG interrupt vector.
volatile PIE_IntVec_t rsvd7_7
Reserved.
volatile uint16_t IER
the Interrupt Enable Register (IER)
Group 10 ADC Interrupt 1.
volatile PIE_IntVec_t INT9
INT9 interrupt vector.
volatile PIE_IntVec_t EPWM7_TZINT
EPWM7_TZINT interrupt vector.
volatile PIE_IntVec_t EPWM2_TZINT
EPWM2_TZINT interrupt vector.
struct _PIE_IERIFR_t PIE_IERIFR_t
Defines the PIE_IERIFR_t data type.
volatile PIE_IntVec_t EPWM6_TZINT
EPWM6_TZINT interrupt vector.
volatile PIE_IntVec_t CLAINT4
CLA Interrupt 4.
volatile PIE_IntVec_t USER4
USER4 interrupt vector.
volatile PIE_IntVec_t HRCAP1_INT
HRCAP1_INT interrupt vector.
void PIE_clearAllFlags(PIE_Handle pieHandle)
Clears all the interrupt flags.
volatile PIE_IntVec_t CLAINT_LUF
CLA Interrupt LUF.
Contains public interface to various functions related to the pulse width modulation (PWM) object...
volatile PIE_IntVec_t ILLEGAL
ILLEGAL interrupt vector.
volatile PIE_IntVec_t ADCINT9
ADCINT9 interrupt vector.
volatile PIE_IntVec_t TINT2
INT14 interrupt vector.
void PIE_enableInt(PIE_Handle pieHandle, const PIE_GroupNumber_e group, const PIE_InterruptSource_e intSource)
Enable a specific PIE interrupt.
volatile PIE_IntVec_t EPWM1_INT
EPWM1 interrupt vector.
void PIE_enableExtInt(PIE_Handle pieHandle, const CPU_ExtIntNumber_e intNumber)
Enables the prescribed external interrupt.
volatile uint16_t IFR
the Interrupt Flag Register (IFR)
volatile PIE_IntVec_t EPWM8_TZINT
EPWM8_TZINT interrupt vector.
volatile PIE_IntVec_t EPWM5_INT
EPWM5_INT interrupt vector.
volatile PIE_IntVec_t rsvd6_7
Reserved.
volatile PIE_IntVec_t RTOSINT
RTOSINT interrupt vector.
Defines the PIE_IERIFR_t data type.
Denotes PIE group number 7.
volatile PIE_IntVec_t INT2
INT2 interrupt vector.
volatile uint16_t rsvd13[25200]
Reserved.
volatile uint16_t rsvd_1[6]
Reserved.
PIE_ExtIntPolarity_e
Enumeration to define the external interrupt polarity.
volatile PIE_IntVec_t MCBSPATX
McBSP A TX Interrupt.
volatile PIE_IntVec_t EPWM4_TZINT
EPWM4_TZINT interrupt vector.
volatile PIE_IntVec_t USER9
USER9 interrupt vector.
volatile PIE_IntVec_t CLAINT2
CLA Interrupt 2.
volatile PIE_IntVec_t SCITXINTB
SPITXINTB interrupt vector.
volatile PIE_IntVec_t USER5
USER5 interrupt vector.
volatile PIE_IntVec_t DMACH3_INT
DMA Channel 3.
volatile PIE_IntVec_t rsvd12_3
Reserved.
volatile PIE_IntVec_t ADCINT2
ADCINT2 interrupt vector.
volatile PIE_IntVec_t EMUINT
EMUINT interrupt vector.
void PIE_setDefaultIntVectorTable(PIE_Handle pieHandle)
Initializes the vector table with illegal ISR handlers.
RTOSINT interrupt vector.
volatile PIE_IntVec_t ADCINT5
ADCINT5 interrupt vector.
void PIE_enablePwmInt(PIE_Handle pieHandle, const PWM_Number_e pwmNumber)
Enables the PWM interrupt.
volatile PIE_IntVec_t rsvd7_8
Reserved.
void PIE_enableTimer0Int(PIE_Handle pieHandle)
Enables the Cpu Timer 0 interrupt.
volatile PIE_IntVec_t SPITXINTA
SPITXINTA interrupt vector.
Denotes PIE group number 4.
volatile PIE_IntVec_t ADCINT6
ADCINT6 interrupt vector.
volatile PIE_IntVec_t ADCINT1
ADCINT1 interrupt vector.
static void PIE_clearInt(PIE_Handle pieHandle, const PIE_GroupNumber_e groupNumber)
Clears an interrupt defined by group number.
void PIE_forceInt(PIE_Handle pieHandle, const PIE_GroupNumber_e group, const PIE_InterruptSource_e intSource)
Force a specific PIE interrupt.
Defines the peripheral interrupt expansion (PIE) object.
Denotes PIE group number 7.
volatile PIE_IntVec_t rsvd8_5
Reserved.
volatile PIE_IntVec_t CLAINT7
CLA Interrupt 7.
volatile PIE_IntVec_t INT4
INT4 interrupt vector.
volatile PIE_IntVec_t USER7
USER7 interrupt vector.
volatile PIE_IntVec_t SPIRXINTA
SPIRXINTA interrupt vector.
Denotes an interrupt is generated on the rising edge.
volatile PIE_IntVec_t CLAINT5
CLA Interrupt 5.
volatile PIE_IntVec_t rsvd5_7
Reserved.
Denotes PIE group number 3.
volatile PIE_IERIFR_t PIEIER_PIEIFR[12]
PIE Interrupt Enable Register and PIE Interrupt Flag Register.
struct _PIE_Obj_ * PIE_Handle
Defines the peripheral interrupt expansion (PIE) handle.
volatile PIE_IntVec_t ECAP1_INT
ECAP1_INT interrupt vector.
Contains public interface to various functions related to the analog-to-digital converter (ADC) objec...
volatile PIE_IntVec_t rsvd4_4
Reserved.
uint16_t PIE_getIntEnables(PIE_Handle pieHandle, const PIE_GroupNumber_e group)
Gets PIE interrupt enable values.
volatile PIE_IntVec_t SCIRXINTA
SCIRXINTA interrupt vector.
volatile PIE_IntVec_t rsvd12_2
Reserved.
volatile PIE_IntVec_t HRCAP4_INT
HRCAP4_INT interrupt vector.
Group 10 ADC Interrupt 2.
void PIE_unregisterPieIntHandler(PIE_Handle pieHandle, const PIE_GroupNumber_e groupNumber, const PIE_SubGroupNumber_e subGroupNumber)
Unregisters a handler for a PIE interrupt.
volatile PIE_IntVec_t TINT0
TINT0 interrupt vector.
volatile PIE_IntVec_t USB0_INT
USB 0 interrupt source.
volatile PIE_IntVec_t USER10
USER10 interrupt vector.
volatile PIE_IntVec_t I2CINT2A
I2CINT2A interrupt vector.
void PIE_registerPieIntHandler(PIE_Handle pieHandle, const PIE_GroupNumber_e groupNumber, const PIE_SubGroupNumber_e subGroupNumber, const PIE_IntVec_t vector)
Registers a handler for a PIE interrupt.
volatile PIE_IntVec_t ECAN0INT
ECAN0INT interrupt vector.
interrupt void PIE_illegalIsr(void)
Defines an illegal interrupt service routine - if the program pointer references this function...
volatile PIE_IntVec_t ADCINT2_HP
ADC high priority interrupt.
volatile PIE_IntVec_t WAKEINT
WAKEINT interrupt vector.
PIE_SystemInterrupts_e
Enumeration to define the system interrupts.
volatile PIE_IntVec_t rsvd1_3
Reserved.
volatile PIE_IntVec_t USER2
USER2 interrupt vector.
volatile PIE_IntVec_t rsvd12_4
Reserved.
void PIE_enableCaptureInt(PIE_Handle pieHandle)
Enables the capture interrupt.
volatile PIE_IntVec_t INT12
INT12 interrupt vector.
volatile PIE_IntVec_t DMACH6_INT
DMA Channel 6.
volatile PIE_IntVec_t NMI
NMI interrupt vector.
volatile PIE_IntVec_t SCITXINTA
SCITXINTA interrupt vector.
interrupt void(* PIE_IntVec_t)(void)
Defines the type for an interrupt vector.
ADC_IntNumber_e
Enumeration to define the analog-to-digital converter (ADC) interrupt number.
volatile PIE_IntVec_t USER6
USER6 interrupt vector.
volatile PIE_IntVec_t EQEP1_INT
EQEP1_INT interrupt vector.
volatile PIE_IntVec_t EPWM5_TZINT
EPWM5_TZINT interrupt vector.
volatile uint16_t PIECTRL
PIE Control Register.
volatile PIE_IntVec_t SCIRXINTB
SPIRXINTB interrupt vector.
volatile PIE_IntVec_t rsvd4_6
Reserved.
Denotes PIE group number 11.
volatile PIE_IntVec_t CLAINT6
CLA Interrupt 6.
volatile PIE_IntVec_t rsvd8_7
Reserved.
volatile PIE_IntVec_t XINT2
XINT2 interrupt vector.
volatile PIE_IntVec_t rsvd9_8
Reserved.
volatile PIE_IntVec_t ECAP2_INT
ECAP2_INT interrupt vector.
volatile PIE_IntVec_t EPWM1_TZINT
EPWM1_TZINT interrupt vector.
Denotes PIE group number 8.
void PIE_disable(PIE_Handle pieHandle)
Disables the peripheral interrupt expansion (PIE)
ILLEGAL interrupt vector.
volatile PIE_IntVec_t SPIRXINTB
SPIRXINTB interrupt vector.
void PIE_enable(PIE_Handle pieHandle)
Enables the peripheral interrupt expansion (PIE)
volatile PIE_IntVec_t rsvd8_3
Reserved.
volatile PIE_IntVec_t rsvd8_8
Reserved.
Denotes PIE group number 1.
void PIE_registerSystemIntHandler(PIE_Handle pieHandle, const PIE_SystemInterrupts_e systemInt, const PIE_IntVec_t vector)
Registers a handler for a PIE interrupt.
volatile PIE_IntVec_t SPITXINTB
SPITXINTB interrupt vector.
volatile PIE_IntVec_t EPWM4_INT
EPWM4 interrupt vector.
uint16_t PIE_getIntFlags(PIE_Handle pieHandle, const PIE_GroupNumber_e group)
Gets PIE interrupt flag values.
Denotes PIE group number 10.
volatile PIE_IntVec_t rsvd5_3
Reserved.
void PIE_enablePwmTzInt(PIE_Handle pieHandle, const PWM_Number_e pwmNumber)
Enables the PWM Trip Zone interrupt.
Denotes PIE group number 6.
PIE_GroupNumber_e
Enumeration to define the peripheral interrupt expansion (PIE) group numbers.
Denotes PIE group number 12.
volatile PIE_IntVec_t XINT3
XINT3 interrupt vector.
volatile PIE_IntVec_t EQEP2_INT
EQEP2_INT interrupt vector.
volatile PIE_IntVec_t INT5
INT5 interrupt vector.
Denotes PIE group number 4.
volatile PIE_IntVec_t USER11
USER11 interrupt vector.
volatile PIE_IntVec_t EPWM7_INT
EPWM7_INT interrupt vector.
Denotes PIE group number 6.
volatile PIE_IntVec_t EPWM8_INT
EPWM8_INT interrupt vector.
volatile PIE_IntVec_t CLAINT3
CLA Interrupt 3.
volatile PIE_IntVec_t ADCINT3
ADCINT3 interrupt vector.
volatile PIE_IntVec_t EPWM3_INT
EPWM3 interrupt vector.
uint16_t PIE_getExtIntCount(PIE_Handle pieHandle, const CPU_ExtIntNumber_e intNumber)
Gets the external interrupt count value.
volatile PIE_IntVec_t Reset
Reset interrupt vector.
volatile PIE_IntVec_t CLAINT8
CLA Interrupt 8.
volatile PIE_IntVec_t USER8
USER8 interrupt vector.
void PIE_setExtIntPolarity(PIE_Handle pieHandle, const CPU_ExtIntNumber_e intNumber, const PIE_ExtIntPolarity_e polarity)
Sets the external interrupt polarity.
volatile PIE_IntVec_t USER1
USER1 interrupt vector.
volatile uint16_t XINTnCTR[3]
External Interrupt n Counter Register.
volatile PIE_IntVec_t ECAN1INT
ECAN1INT interrupt vector.
volatile PIE_IntVec_t DMACH1_INT
DMA Channel 1.
void PIE_disableAllInts(PIE_Handle pieHandle)
Disables all of the interrupts.
Denotes PIE group number 1.
volatile PIE_IntVec_t rsvd9_7
Reserved.
volatile PIE_IntVec_t TINT1
INT13 interrupt vector.
volatile PIE_IntVec_t ADCINT8
ADCINT8 interrupt vector.
volatile PIE_IntVec_t USER12
USER12 interrupt vector.
volatile PIE_IntVec_t INT8
INT8 interrupt vector.
CPU_ExtIntNumber_e
Enumeration to define the external interrupt numbers.
volatile PIE_IntVec_t DMACH5_INT
DMA Channel 5.
volatile PIE_IntVec_t HRCAP2_INT
HRCAP2_INT interrupt vector.
volatile PIE_IntVec_t rsvd4_5
Reserved.
volatile PIE_IntVec_t rsvd12_5
Reserved.
PIE_InterruptSource_e
Enumeration to define the peripheral interrupt expansion (PIE) individual interrupt sources...
PIE_Handle PIE_init(void *pMemory, const size_t numBytes)
Initializes the peripheral interrupt expansion (PIE) object handle.
Denotes PIE group number 8.
Denotes PIE group number 9.
volatile PIE_IntVec_t INT7
INT7 interrupt vector.
volatile PIE_IntVec_t CLAINT1
CLA Interrupt 1.
volatile uint16_t XINTnCR[3]
External Interrupt n Control Register.
volatile PIE_IntVec_t DMACH2_INT
DMA Channel 2.
volatile PIE_IntVec_t rsvd8_4
Reserved.
void PIE_clearAllInts(PIE_Handle pieHandle)
Clears all the interrupts.
Denotes an interrupt is generated on the falling edge.
PIE_SubGroupNumber_e
Enumeration to define the peripheral interrupt expansion (PIE) sub-group numbers. ...
volatile PIE_IntVec_t DMACH4_INT
DMA Channel 4.
volatile PIE_IntVec_t INT3
INT3 interrupt vector.
volatile PIE_IntVec_t EPWM2_INT
EPWM2 interrupt vector.
volatile PIE_IntVec_t INT10
INT10 interrupt vector.
Denotes PIE group number 2.
volatile PIE_IntVec_t EPWM3_TZINT
EPWM3_TZINT interrupt vector.
volatile PIE_IntVec_t ECAP3_INT
ECAP3_INT interrupt vector.
Denotes PIE group number 3.
volatile PIE_IntVec_t rsvd12_6
Reserved.
volatile PIE_IntVec_t USER3
USER3 interrupt vector.
struct _PIE_Obj_ PIE_Obj
Defines the peripheral interrupt expansion (PIE) object.
void PIE_enableAdcInt(PIE_Handle pieHandle, const ADC_IntNumber_e intNumber)
Enables the specified ADC interrupt.
Denotes PIE group number 5.
volatile PIE_IntVec_t rsvd8_6
Reserved.
volatile PIE_IntVec_t HRCAP3_INT
HRCAP3_INT interrupt vector.
void PIE_unregisterSystemIntHandler(PIE_Handle pieHandle, const PIE_SystemInterrupts_e systemInt)
Unregisters a handler for a PIE interrupt.
PWM_Number_e
Enumeration to define the pulse width modulation (PWM) numbers.
volatile PIE_IntVec_t INT6
INT6 interrupt vector.
volatile PIE_IntVec_t ADCINT1_HP
ADC high priority interrupt.
void PIE_disableCaptureInt(PIE_Handle pieHandle)
Disables the capture interrupt.
volatile PIE_IntVec_t rsvd6_8
Reserved.
volatile PIE_IntVec_t DATALOG
DATALOG interrupt vector.
volatile PIE_IntVec_t INT1
INT1 interrupt vector.
volatile PIE_IntVec_t INT11
INT11 interrupt vector.
volatile uint16_t rsvd14[5]
Reserved.
volatile PIE_IntVec_t ADCINT7
ADCINT7 interrupt vector.
volatile PIE_IntVec_t XINT1
XINT1 interrupt vector.
volatile PIE_IntVec_t rsvd5_6
Reserved.
volatile uint16_t PIEACK
PIE Acknowledge Register.
void PIE_disableInt(PIE_Handle pieHandle, const PIE_GroupNumber_e group, const PIE_InterruptSource_e intSource)
Disable a specific PIE interrupt.
volatile PIE_IntVec_t MCBSPARX
McBSP A RX Interrupt.
Denotes PIE group number 2.
Denotes an interrupt is generated on the falling and rising edges.
volatile PIE_IntVec_t I2CINT1A
I2CINT1A interrupt vector.