This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、
我将 DSP/BIOS 配置 HWI_INT8用于 DMA 中断。 - 使用调度程序:DMA_ISR。
配置 UART 和 DMA:
UartSetup.clkInput = SYSCLK;
状态= SYS_setEBSR (CSL_EBSR_FIELD_PPMODE、CSL_EBSR_PPMODE_1);
assert (status =CSL_Sok);
/*初始化 CSL UART 模块*/
状态= UART_INIT (&UartObj、CSL_UART_INST_0、UART_polled);
assert (status =CSL_Sok);
状态= SYS_setEBSR (CSL_EBSR_FIELD_PPMODE、CSL_EBSR_PPMODE_1);
assert (status =CSL_Sok);
/*已创建句柄*/
UartHandle =(CSL_UartHandle)(&UartObj);
状态= UART_setup (UartHandle、UartSetup);
assert (status =CSL_Sok);
//UART_Test ();
/*为 UART 接收配置 DMA 通道*/
DmaConfig.pingPongMode = CSL_DMA_PING_PON_DISABLE;
DmaConfig.autoMode = CSL_DMA_AUTORELOAD_ENABLE;
DmaConfig.burstLen = CSL_DMA_TXBUST_1WORD;
DmaConfig.trigger = CSL_DMA_EVENT_TRIGGER;
DmaConfig.dmaEvt = CSL_DMA_EVT_UART_RX;
DmaConfig.dmaInt = CSL_DMA_INTERRUPT_ENABLE;
DmaConfig.chanDir = CSL_DMA_READ;
DmaConfig.trfType = CSL_DMA_TRANSIT_IO_MEMORY;
DmaConfig.dataLen =(TRANSASM_RDBUF_SIZE*4);
DmaConfig.srcAddr =(uint32)&(UartHandle->uartRegs->THR);
DmaConfig.destAddr =(uint32) u32UartDmaReadBuf;
DmaRdHandle = CSL_configDmaForUart (&DmaRdChanObj、CSL_DMA_CHAN4);
assert (DmaRdHandle!= NULL);
IRQ_globalDisable();
IRQ_CLEARALL();
IRQ_disableAll();
IRQ_CLEAR (DMA_EVENT);
IRQ_ENABLE (DMA_EVENT);
IRQ_globalEnable();
状态= DMA_START (DmaRdHandle);
assert (status =CSL_Sok);
空 DMA_ISR (空)
{
CSL_Status 状态;
ifrValue = CSL_sysctrl_regs->DMAIFR;
cSL_sysctrl_regs->DMAIFR |= ifrValue;
}
程序不返回中断,但我正在使用 DMA 轮询,它是可以的!
谢谢!