TI中文支持网
TI专业的中文技术问题搜集分享网站

IWR6843ISK: 关于mmwave_industrial_toolbox_4_1_0中,lab-people_counting中的一个问题

Part Number:IWR6843ISK

在这个例程中,工程师给uart_logging串口(即代码中标注的UART-3)配置了DMA:

UART_Params_init(&uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.clockFrequency = gMmwMssMCB.cfg.sysClockFrequency;
uartParams.baudRate = gMmwMssMCB.cfg.loggingBaudRate;
uartParams.isPinMuxDone = 1U;

uartParams.dmaHandle = dmaHandle;
uartParams.txDMAChannel = 1U;
uartParams.rxDMAChannel = 2U;

可是我找不到配置DMA后标志位的位置和相关的设置,请问这个DMA配置完后的des在哪里?应该如何配置这个des?相关中断位在哪里读取?

Nancy Wang:

Guifeng Xu 说:找不到配置DMA后标志位的位置和相关的设置

哪个标志位?

Guifeng Xu 说:这个DMA配置完后的des在哪里?

des具体指什么?

,

Guifeng Xu:

DMA是配置了软件中断吗?如何设置DMA传输多少数据再中断?这个中断指的是DMA复制、转移数据完成后的中断位des指的是DMA将数据转移到了哪里,是目标地址

,

Chris Meng:

你好,

建议你看看mmwave sdk里相关驱动代码:

mmwave_sdk_03_05_00_04\packages\ti\drivers\uart\src\uartsci_dma.c

,

Guifeng Xu:

你好,我已经看到相关代码,但是还是不是很了解

dmaHandle = DMA_open(0, &dmaParams, &errCode);

uartParams.dmaHandle = dmaHandle; uartParams.txDMAChannel = 1U; uartParams.rxDMAChannel = 2U;

这两段是如何设置DMA目的地址的

,

Chris Meng:

你好,

请仔细看看代码,我截取了部分信息:

nt32_t UartSci_initiateTxDMA( UartSci_Driver* ptrUartSciDriver, uint32_t srcAddress, uint32_t numBytes, bool pollingMode){ UartSci_DriverDMA* ptrDriverDMA; int32_t retVal; uint32_t pollStatus = 0U; int32_t errCode = 0;

/* Get the DMA Block: */ ptrDriverDMA = (UartSci_DriverDMA*)ptrUartSciDriver->ptrDMAInfo;

/* Disable the UART Transmit DMA mode */ UartSci_disableTxDMA(ptrDriverDMA->ptrHwCfg->ptrSCIRegs);

/* Most of the fields for the Transmit DMA Control packet are initialized. * Only setup the data fields which change on a per DMA Transaction basis */ ptrDriverDMA->txDMACtrlPktParams.srcAddr = srcAddress; ptrDriverDMA->txDMACtrlPktParams.frameXferCnt = numBytes;

,

Guifeng Xu:

我看到了这里,但是我不知道哪里调用了这个函数设置了srcAddress,所以我无法使用uart_read()读取到任何数据…

,

Guifeng Xu:

您可以告诉我uart设置了dma以及其通道之后,应该如何发送或者读取数据吗?

,

Chris Meng:

你好,

建议你尝试一下驱动里的测试例程,各种模式都有支持。

C:\ti\mmwave_sdk_03_05_00_04\packages\ti\drivers\uart\test 

,

Guifeng Xu:

我已经看了这个测试例程,但是它配置完UARTparams的DMAhandle和dmaChannel之后直接调用UART_read()或者UART_write()就能够使用了,然而相同的配置方法在这个例程中却无法使用,可能是我了解的比较少,您可以详细说说这个UART与DMA配合的工作流程以及DMA将UART的缓存设置在了哪里吗?我配置了通道后在哪里写入UART数据或者从UART读取数据呢?

,

Chris Meng:

你好,

应该是有些初始化没有正确配置。建议你在UART的驱动测试例程里精简一下代码,注释掉你认为没有用的代码,然后对比你的代码,看初始化,配置方面有什么差异。

赞(0)
未经允许不得转载:TI中文支持网 » IWR6843ISK: 关于mmwave_industrial_toolbox_4_1_0中,lab-people_counting中的一个问题
分享到: 更多 (0)