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)