Other Parts Discussed in Thread: AM62L
器件型号: AM62L
AM62L、RT Linux SDK11.02.08.02、内核 6.12.57。 SPI 5.5MHz、DMA 开启、每 2.5ms 1KB。
SPI 应用程序线程优先级:55。
在 SPI 通信中禁用 DMA 会导致非常高的 CPU 使用率、因此我允许 DMA 使用 SPI。 但是,当通过 ioctl () 发送和接收数据时,执行时间变化很大,抖动也很显著。 参考 AM62L-DMA:dmaengine:TI:k3-UDMA:1 秒轮询延迟、我修改了 EVSE-DEV-EVM 驱动程序 和 SPI:spi-OMAP2-mcspi:启用 DMA 时使用 EOW 中断完成 — ti-linux-kernel/ti-linux-kernel — 此存储库包含已集成到未完成的 Linux 内核。 更改显示在随附的 diff 文件中。
修改前:执行时间 3602 ~ 1612µs、抖动 1930 ~–764µs。
~后:执行时间为 2093 ~ 1641µs、抖动为 200 μ s –248µs。
修改后的性能基本符合我们的要求。 但是、修改后的 SPI 通信很可能完全冻结系统、使其完全无响应、因此无论哪个内核、只有下电上电才能重新启动系统。
我使用的 SPI 测试程序已附加。 `时间的测量单位为` time_exec*`、抖动的测量单位为` time_jitter*。
测试代码: spi_mcu_test.tar.gz
驱动程序 diff: spi-OMAP2-mcspi_6.12.57.diff
