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.

[参考译文] CC2538:使用 DMA 进行可变长度串行端口传输的问题。

Guru**** 2465890 points
Other Parts Discussed in Thread: CC2538

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1170379/cc2538-the-problem-of-using-dma-for-variable-length-serial-port-transmission

器件型号:CC2538

大家好、

以下是客户的请求:

  1. 看一下用户 mana 、发现当外设使用 DMA 时、中断会调用外设的相应中断处理函数、而外设产生的中断将被屏蔽(客户不知道理解是否错误?)。  那么、通常不可能使用 DMA +串行端口空闲中断来接收不确定长度的数据。 如何在 CC2538中实现可变长度串行端口数据的接收和处理?
  2. 在使用串行端口时、还需要使用射频接收。 在这种情况下、如何设置射频的 DMA 控制和处理、未找到示例。
  3.  在互联网上查找信息时、客户看到有人使用了 STM32的 HAL 库、而不是  TI 给出的示例。 这是可行的吗? 是否可以摆脱 TI 给出的示例并直接以 cortex-M3的方式进行开发?

您可以帮助检查此案例吗? 谢谢。

此致、                                                         

Nick     

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

    您好、Nick、

    1. 可以配置 DMA 的目标地址和传输大小。 代码示例中定义了最大 RX/TX 传输大小、但可以在填充整个分配的传输大小之前从外设生成中断并为 DMA 提供服务。  它们将受益于 Z-Stack (通过 UART DMA 进行 MT API 数据接收的示例、大小各不相同) 和 基础固件中提供的示例。
    2. 在线社区中提供了一些示例、请参阅类似 的 E2E 主题ContikiNG 无线电控制
    3. 考虑 到项目的构建中提供和引用了合适的库、这种情况也适用于 ContikiNG 和 R防暴 。  这最终取决于环境。

    此致、
    Ryan

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

    您好、Ryan、

    [引用 userid="114053" URL"~/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1170379/cc2538-the-problem-of-using-dma-for-variable-length-serial-port-transmission/4403848 #4403848"]但可以在填充整个分配的传输大小之前从外设生成中断并为 DMA 提供服务。

    这里的外设可以是 UART 的覆盖中断吗?  它可以是计时器中断吗?

    此致、                                                         

    Nick    

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

    您能否确切地阐明请求是什么?  《CC2538 用户指南》的第10.3.1和10.3.2节提供了 DMA 支持的不同外设。  中断、包括优先级和控制、在第5章中有进一步的解释。  其理念是应快速处理和退出中断、有时会发出一个标志来处理主事件循环期间的进一步处理、以便 MCU 不会长时间保持在 ISR 状态内。  

    此致、
    Ryan