Other Parts Discussed in Thread: SYSBIOS
Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
您好!
我遇到的问题与一年前在本主题中描述的问题相同:
https://e2e.ti.com/support/arm/sitara_arm/f/791/t/573071
我正在使用 GPIO8 (位20)来触发 IPU 中的 ISR。
默认情况下、GPIO8路由到运行 Linux 的 A15、我已在器件树中将整个 GPIO8节点的状态设置为禁用:
GPIO8{&G
STATUS ="禁用";
};
这将从 A15的 IRQ_crossbar 映射中删除 IRQ。
GPIO8有两个 IRQ:116和348。 它们都不会路由到 A15、IRQ1 (116)会路由到 IPU1并在此处触发 Hwi ISR。
IPU 上的 ISR 随后应在 I2C 总线3上执行四次传输(在 DT 中也被禁用、因此 A15看不到它)。
IPU 上 GPIO8 ISR 的中断延迟约为500uS 至700uS、这很长。 如上文链接的 e2e 线程中所述、启用 GPIO8的 IRQ1和 IRQ2作为权变措施、可以解决延迟问题、但会导致 I2C 传输速度非常慢:之后(几乎!) 每次传输都会有额外的延迟。 一些传输仍然是快速的。 下面的示波器屏幕截图中有一个。 其中大多数都很慢。 同时也会发生慢速/快速的混合。
我现在的权变措施是:启用 GPIO8的 IRQ1和 IRQ2、并使用轮询而不是中断在 C 中编写我自己的 I2C 传输例程。
-为什么为 GPIO8启用 IRQ1和 IRQ2以获得低延迟响应? 这是错误的配置还是器件错误?
-为什么(PDK-) I2C 传输需要这么长的时间?
我测量了 I2C 传输:
通道1:GPIO8_20上的触发
通道2+3:I2C 总线3
通道4:GPIO4_4、用于测量单次 i2c 传输的时间
慢:
快速:
IPU1和 DSP1均运行 SYSBIOS、DSP1、IPU1和 A15通过 IPC 进行通信。
未使用 IPU2和 DSP2。
此致、
低




