Thread 中讨论的其他器件:EK-TM4C123GXL
嗨、噢
这更是一个一般性问题。 我喜欢改进我的简单通用 UART Zephir 驱动程序。 该驱动程序侦听 UART Rx 中断,然后将 Rx 数据复制到环回缓冲区,并设置信号量以激活处理线程。 TX 也是通过拉出字节来完成的。
由于我使用的是 RTOS、因此我想减轻 MCU 的数据复制负担、并在后台执行其他操作。
因此、我正在寻找最小的 MCU 负载生成方式。
DMA 是一个不错的选择、但我以前没有使用过它。 特别是对于 Rx、我想知道如何执行"消息末尾突发"检测。 例如、我将 DMA 设置为 Rx 1000字节。 现在发送666Bytes 的消息。 由于 DMA 没有达到1000字节、它仍在等待334字节。 无 intr 等 如何进行这种中断+缓冲区翻转、以便我们不会丢失任何数据、以防在执行缓冲区翻转时出现某些数据。