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.

[参考译文] TMS570LC4357:SCI DMA 接收到的字节数。

Guru**** 1797760 points
Other Parts Discussed in Thread: HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/576101/tms570lc4357-sci-dma-number-of-bytes-received

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

您好!

我使用了 HALCoGen 版本04.06.00中的 SCI-DMA (example_sci_dma.c)示例。

通过 e2e.ti.com/group/launchyourdesign/m/boosterpackcontest/666341中描述的更改后(所有字节都已发送、接收和记录)、但我很惊讶地看到工作控制包寄存器中的值:

TX: PCP ISADDR=0x807f000 IDADDR=0xFF7e53b ITCOUNT=0x400001 CHCTRL=0x8
     WCP CSADDR=0x807f03f CDADDR=0xFF7e53b CTCOUNT = 0x10001
RX:PCP ISADDR=0xFF7e537 IDADDR=0x807f040 ITCOUNT=0x400001 CHCTRL=0x2
     WCP CSADDR=0xFF7e537 CDADDR=0x807f07e CTCOUNT = 0x20001

寄存器值是通过位于 printf ("Pass\n")之后的以下代码获得的:

printf ("TX:PCP ISADDR=0x%x IDADDR=0x%x ITCOUNT=0x%x CHCTRL=0x%x\n"、dmaRAMREG->PCP[DMA_CH0].ISADDR、dmaRAMREG->PCP[DMA_CH0].IDADDR、dmaRAMREG-0].ADPCP[DM_DMC.TRP[DMC.TRL]、dMCP[DMACTRL]_DMACTRL-0.TIPCP]_DMACTRF[DMC.TRL]_DMAC0.0_DMAC_DMACTRL]
printf ("   WCP CSADDR=0x%x CDADDR=0x%x CTCOUNT=0x%x\n"、dmaRAMREG->WCP[DMA_CH0].CSADDR、dmaRAMREG->WCP[DMA_CH0].CDADDR、dmaRAMREG->WCP[DMA.CTUNT];dmaRACPC_CCTT)
printf ("RX:PCP ISADDR=0x%x IDADDR=0x%x ITCOUNT=0x%x CHCTRL=0x%x\n"、dmaRAMREG->PCP[DMA_CH1].ISADDR、dmaRAMREG->PCP[DMA_CH1].IDADDR、dmaRAMREG->PCP[DMA.1].TIPCP[DMAC_TRP].TIPCP].TIPCP[DMACTR->DMACTRP].TIPCP].TIPCP[DMACTR->DM_TRF[DMACTRL]
printf ("   WCP CSADDR=0x%x CDADDR=0x%x CTCOUNT=0x%x\n"、dmaRAMREG->WCP[DMA_CH1].CSADDR、dmaRAMREG->WCP[DMA_CH1].CDADDR、dmaRAMREG->WCP[DMA_CTUNT].CCP[DMA_CTCH1];DmaRACt_CTUNCTT)

我有几个问题:

1) 1)为什么发送电流传输计数寄存器(CTCOUNT)的值显示当前剩余的帧计数和当前剩余的元素计数为1 (I Expected 0)并且当前 源地址寄存器(CSADDR)指向最后一个字节地址?

2) 2)为什么接收电流传输计数寄存器(CTCOUNT)的值显示当前剩余的帧计数为2 (我预期为0)、当前剩余的元素计数为1 (我预期为0)、并且当前目标地址寄存器(CDADDR)指向最后的2个字节地址?

3)(最重要的)在不知道发送的字节数的情况下、如何获取接收到的实际字节数或 DMA 传输的最后一个字节的地址(或者、地址、下一个接收到的字节将放置在何处)?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Igor、

    您能看一下这篇文章、看看它是否解答了您的问题。

    e2e.ti.com/.../160798

    如果您仍有疑问、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢、Chuck。
    您提到的帖子中的信息就是我需要的信息。
    它看起来不是很漂亮、但确实如此。
    FWiw、DMASTAT、FIFOASTATREG 和 FIFOBSTATREG 寄存器中的值都是0 (没有太多帮助)、但 FAACSADDR、FAACDADDR、FAACTC (它们可能是 FBACSADDR、FBACDADDR、FBACTC、我认为)中的值正是我所期望/需要的。
    再次感谢、
    Igor。