工具/软件:TI-RTOS
我的应用程序具有一些由运行 TI-RTOS 的 IPU/M4内核控制的外设、还有一些由运行 Linux 的 MPU/A15内核控制的外设。 我想对系统 M4侧的这些外设(UART、SPI)使用 DMA 传输。 浏览 Linux 内核文档(kernel_src/Documentation/devicetree/bindings/tma/ti-edma.txt)、我发现有几个相关的器件树参数:
- TI、EDMA-memcpy 通道、告诉 Linux 哪些通道可用于 memcpy 操作(如果有)
- TI-EDMA 保留插槽范围、告诉 Linux 不能使用哪个参数集(即保留供 IPU 和 DSP 使用)
- DMA、它告诉 Linux 哪些 DMA 通道可用于哪些外设
我的理解是、我需要告诉 Linux 不要使用某些通道和参数集、这样 IPU 的功能和 Linux 的功能之间就不会发生冲突。 这是有道理的、在 Linux 方面、这似乎是一件非常简单的事情。
问题出在议会联盟方面。 我不知道我应该如何知道议会联盟的推动者将使用哪些渠道和参数集,我也不知道我如何能够对此产生任何影响,也不能找到任何相关的文件。 我尝试使用调试器单步执行 IPU 内核上的 UART 示例、看起来要使用的参数集是从基于通道编号的 edma3DrvChBoundRes 对象中检索的。 我尝试跟踪此对象的设置方式、但在源代码中找不到任何相关内容。
您能否提供有关如何确定 IPU 驱动程序设置以正确配置 Linux 设备树的指导?
作为参考、我将使用适用于 AM57xx 器件的 TI 处理器 SDK RTOS 4.02.00.09版中的库和驱动程序。