工具/软件:Linux
您好!
我们的产品使用 MCSPI 将数据发送到 FPGA、但在成千上万次成功的 SPI 事务之后、SPI2过程会在"不间断睡眠"内冻结(根据 ps 命令、该过程处于 D 状态-不间断睡眠)。 然后,我的内核线程(自定义网络驱动程序)也会在等待 SPI_异 步()调用返回时锁定。 从 Web 搜索中、我认为唯一能够将 SPI2进程置于此状态的代码是 Tx 和 Rx DMA 处理程序中的"WAIT_for_Completion"调用。
我们正在运行内核3.12 (但由于64字节 SPI 问题、已从3.14手动更新为 MCSPI 代码)。
此问题听起来与另一个(锁定的)主题非常相似: http://e2e.ti.com/support/processors/f/791/t/420294
我们的 MCSPI 在该线程的第一个帖子中提到了代码更改、但该线程结束时未列出分辨率。
我们还尝试了内核4.9、它具有类似的锁定条件(不是不间断的、但仍然被锁定)。
我们使用16位字事务以8MHz 的频率运行 SPI、 DMA 用于数据包传输。