您好!
我正在优化 Mibspi 外设的吞吐量、发现传输组大小为128的 MIBSPI 是性能最高的。 每次传输结束后、外设返回完成并递减 ICOUNT、直到 ICOUNT 为0、此时我知道传输完成。
我还试验了 NOBRK 模式、该模式将使用 BUFID 并调用 DMA 操作并自动递增 ICOUNT、传输将在 ICOUNT 为0前不会返回。 这很好、因为在传输所有数据之前我不必为外设提供服务、但我一次只能访问1个字、因为 NOBRK 只在单个缓冲区上运行。 这最终比128字 DMA 传输+处理的吞吐量要低得多。
我的问题是、是否要将这两者结合起来? 我尝试将这两者结合起来、但最终结果是、当到达 BUFID 时、序列发生器会调用 DMA、并且存储器已正确填充、ICOUNT 按预期递减、但 BUFID 不会复位以发送上一个、现在已填充新数据、 传输缓冲器。
示例:
数据={1、2、3、4、5、6、7、8、9、0}
TG 大小2、DMA 大小、2、BUFID、1、 ICOUNT 5.
输出:{1、2、-、4、-、 6、-、8、-、0}
最终 MIBSPIRAM.TX ={9、0}
到达 TX[1]后、序列发生器保持在 TX[1]。 我想知道、当 ICOUNT 递减时、是否有一个模式或选项将序列发生器复位到 TX[0]。
谢谢!