Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

How to configure interrupt for EDMA3 of OMAP L138 in SYSBIOS?

$
0
0

Hi,

I want to port Uart EDMA Starterware project to SYSBIOS 6 on OMAP L138 LCDK (CCS 5.4). The code in Startware of this example first sends out a string:

volatile char enter[] = "\r\nPlease Enter 20 bytes from keyboard\r\n";

After I modify interrupt initialization:

/* Function to register EDMA3 Interrupts */
static void ConfigureIntEDMA3(void)
{
/* Register Interrupts Here */

#ifdef _TMS320C6X
// IntRegister(C674X_MASK_INT4, Edma3ComplHandlerIsr);
IntRegister(C674X_MASK_INT7, Edma3ComplHandlerIsr);
IntRegister(C674X_MASK_INT5, Edma3CCErrHandlerIsr);

// IntEventMap(C674X_MASK_INT4, SYS_INT_EDMA3_0_CC0_INT1);
IntEventMap(C674X_MASK_INT7, SYS_INT_EDMA3_0_CC0_INT1);
IntEventMap(C674X_MASK_INT5, SYS_INT_EDMA3_0_CC0_ERRINT);

// IntEnable(C674X_MASK_INT4);
IntEnable(C674X_MASK_INT7);
IntEnable(C674X_MASK_INT5);

...............

/* Function used to Initialize EDMA3 */
static void EDMA3Initialize(void)
{
/* Enabling the PSC for EDMA3CC_0.*/
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_CC0, PSC_POWERDOMAIN_ALWAYS_ON,
PSC_MDCTL_NEXT_ENABLE);

/* Enabling the PSC for EDMA3TC_0.*/
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_TC0, PSC_POWERDOMAIN_ALWAYS_ON,
PSC_MDCTL_NEXT_ENABLE);

/* Initialization of EDMA3 */
EDMA3Init(SOC_EDMA30CC_0_REGS, EVT_QUEUE_NUM);

/*
** Enable AINTC to handle interrupts. Also enable IRQ interrupt in
** ARM processor.
*/
SetupInt();

/* Register EDMA3 Interrupts */
ConfigureIntEDMA3();
}

/* Function used to Setup ARM Interrupt Controller */
static void SetupInt(void)
{
#ifdef _TMS320C6X
// Initialize the DSP Interrupt controller
IntDSPINTCInit();

// Enable DSP interrupts globally
IntGlobalEnable();
#else
/*Initialize the ARM Interrupt Controller(AINTC). */
IntAINTCInit();

/* Enable IRQ in CPSR.*/
IntMasterIRQEnable();

/* Enable the interrupts in GER of AINTC.*/
IntGlobalEnable();

/* Enable the interrupts in HIER of AINTC.*/
IntIRQEnable();
#endif
}

The console receives some erroneaous words, although I can tell several words such as ease  key (which are obvious from the original string).

The original Starterware project EDMA3 use 2 interrupts (INT4, INT5). Due to confilicts with SYSBIOS, I change INT4 to INT7 as:

// IntRegister(C674X_MASK_INT4, Edma3ComplHandlerIsr);
IntRegister(C674X_MASK_INT7, Edma3ComplHandlerIsr);
IntRegister(C674X_MASK_INT5, Edma3CCErrHandlerIsr);

What is wrong with my code? Thanks

(Please visit the site to view this file)(Please visit the site to view this file)


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>