这个问题涉及在飞思卡尔 i.mx 设备(具体为i.MX535)上运行 SDMA 引擎?
我想从 UART 接收大于 32 字节的数据包,并使用 SDMA 引擎自动获取它们。这可能吗?有没有人有关于 SDMA 使用的其他信息?
编辑:我会更具体地说明我的情况和问题。
我已经设法加载并运行我自己的 SDMA 脚本。测试台是,
- 在 UART2 上设置 UART 通信(9600,原始)(不使用标准的飞思卡尔 UART 驱动程序)。
- 使用阈值级别 16 设置 UART2 rx dma 请求。
- 为 UART2 设置 SDMA 通道,该通道运行像UART 2 外部存储器这样的脚本。
此设置适用于小于 32 字节的数据包,但如果大小大于 32 字节,则会丢弃RX FIFO Overrun
设置位的数据。如果我们使用在 UART2 上启用 SDMA 的标准飞思卡尔 UART 驱动程序,则会发生同样的错误(从 UART 打印出带有DMA 错误标签的状态寄存器)。
Q1。有人设法在像 UART2 这样的普通UART 上接收到大于 32 字节的数据包。暗示我的脚本中有一个BUG。
普通UART如何表明它们也是直接连接到 SDMA 内核的共享 UART。我也在 UART3 上测试了这个 UART 脚本。我的结论和观察是:
首先,我使用标准的飞思卡尔 UART 驱动程序和使用标准脚本启用的 SDMA 对其进行测试。这适用于大于 32 字节的数据包和 1MHZ 的波特率。所以我希望用我自己的脚本和 UART 驱动程序让它工作,但我无法构建一个从 UART3 RX 寄存器读取的脚本。
Q2。有人写过一个从共享 UART 读取数据的脚本吗?