工具/软件:Linux
您好!
我有两个定制板、都是通过"AM335x-bonebblack"进行的更改很少。
我需要通过一个 UART 端口以波特率3686400将数据从一个板发送到另一个板。
根据手册、波特率3686400是 IT 支持的最高数据。
两个板使用相同的软件版本运行:
TI-PROCESSOR-SDK-LINUX-AM335x-EVM-05.02.00.10、原始内核版本为4.14.79、稍后我将其更新为 GitHub 中的最新版本、该内核版本 为4.14.97。
然后、 通过 uart4 (两侧)将2MB 从一个板发送到另一个板。
如果在没有 DMA 的情况下接收、400字节~ 10KB 将丢失。
如果使用 DMA 接收、则2MB 中的0 ~ 10KB 将丢失。
在3686400下工作时、DMA 似乎无法提高 UART 的可靠性。
通过"cat /proc/interrupts | grep dma"和"cat /proc/interrupts | serial"指令、我可以知道在整个测试期间产生了多少个中断。
如果在没有 DMA 的情况下接收、则产生的串行中断约为18000次、没有 DMA 中断。
如果通过 DMA 接收、则产生的串行中断约为35000次、DMA 中断约为35000次。
当启用 UART DMA 时、AM335x 在不额外偿还的情况下会增加负载。
那么、在以波特率3686400工作时、您对 AM335x 的 UART 有没有任何测试结果?
您能否解释启用 UART DMA 时产生的中断负载?
此致、