这个问题涉及在飞思卡尔 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 读取数据的脚本吗?