我尝试了 M7 SDK (cmsis_ecspi_sdma_loopback_transfer) 提供的 CMSIS 示例,它运行良好,利用 SPI2 和 SDMA1。由于 SDMA1 已被 Linux 使用,我想切换到为 M7 保留的 SDMA3。我尝试更改上述示例中的定义:
- cmsis_ecspi_sdma_loopback_transfer.c中的 DRIVER_MASTER_SPI_DMA_BASE
- RTE_Device.h中的 RTE_SPI2_DMA_TX_DMA_BASE 和 RTE_SPI2_DMA_RX_DMA_BASE
但是这个例子停止了工作。它完成 DRIVER_MASTER_SPI.Transfer 调用但从不执行传输。SPI 引脚上没有输出,并且从不调用 ECSPI_MasterSignalEvent_t。
是否可以将 SPI 与 SDMA3 一起使用?
我是否必须更改任何其他定义才能使用 SDMA3 而不是 SDMA1?
是否需要启用一些额外的时钟?
附言。我也尝试使用 SDMA2 并遇到了同样的问题。