This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] OMAP-L138:使用 SYSBIOS 的链接参数块的 EDMA3 ISR 问题...

Guru**** 1135610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1190498/omap-l138-edma3-isr-question-for-linked-parameter-blocks-using-sysbios

器件型号:OMAP-L138

我们使用 SPI0从具有4个通道的 A/D 中获取数据。  我们设置6个缓冲器、每个缓冲器都有其自己的参数 RAM 块。

在示波器上、我们可以看到数据按照我们的预期飞出。

对于所有块、我们都启用了"传输完成中断"和"中间传输完成中断"。

ISR Simple 会发送一个与刚刚填充的缓冲区相对应的事件。  然后、有一个任务在事件上挂起以处理数据。

处理事件时、ISR 中有 LOG_INFO、任务中有 system_printf。

ISR 看起来运行速度太快、迭代次数太多。  当我们预期为6时、我们将获得数百个。  每个缓冲区的填充时间大约为2秒、但 Log_info 上的时间戳看起来更像是3uSec。

任务仅打印1个项目、这是最后一个缓冲区。

问题: 应如何设置链路寄存器?  RX SPI0和15 TX SPI0都有14个。  TX 端只是虚拟的、以便为模数(A/D)提供时钟  我们设置了15、以连接到它、从而实现前所未有的运行。  (我们最终希望将它们作为循环缓冲系统运行)。  14与其他6个参数中的第一个链接、所有这些参数都相互链接。  最后一个端点当前已终止(我们最终希望它指向第一个端点)。

从任务的角度来看、我们只会收到最后一个事件?

从 ISR 的角度来看、我们几乎不会清除暂挂中断、但我本来希望日志信息比3uSec 快得多。

我们在 SPI 端是否需要做些什么?  我假设 EDMA 引擎正在处理 SPI ISR 项目。  

我们确实会在缓冲区中获取数据、这些数据看起来是合理的。  波形从4个通道跳转。  我们可能缺少一个样本 、这会导致所有内容发生移位。

感谢你能抽出时间

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mike:

    抱歉、TI 已停止支持 OMAP-138的非 Linux 软件开发。 请参阅 本公告 、在此处查找综合资源。

    此致、

    _________