您好!
我正在使用 TI-RTOS、其中 TM4C1294通过 SPI 作为主设备、连接到从 TM4C123从设备。 主器件可以向从器件发送各种命令、以便在从器件上配置或执行其他操作、这一切都正常。
然而、当从设备对 SMPTE 时间码数据包进行解码时、它也需要生成发送回主设备的中断通知(通过 GPIO 引脚)。 当从器件对数据包进行解码时、这些中断将以大约2kHz 的速率进行流式传输、并通知主器件从从从器件读取数据并清除中断。 主器件必须读取时间码数据包、并通过读取到从器件的 SPI 状态命令确认从器件的每个中断。
然而、我的应用中的其他 RTOS 线程将需要通过同一 SPI 总线与从站通信、以控制从站提供的功能。 从器件也将忙于解码时间码数据包并通过 GPIO 引脚中断通知主器件。 问题在于、主站中的 Hwi INT 处理程序需要读取同一 SPI 总线来确认来自从站的中断。 由于同样的 SPI 总线也可以从我的应用中的其他线程同步访问、所以我如何将异步 Hwi SPI 读取与通过同一 SPI 端口执行同步 SPI 读取的其他任务同步。
我的 INT 通知处理程序应该布置到 Swi、然后在 Swi 和进行 SPI 调用的其他任务之间使用全局互斥量或信标吗?
如果这无法实现、那么设置另一个 SPI 通道来仅处理中断数据流可能会更容易吗? 遗憾的是、设置第二个与从处理器设备的通信通道需要进行昂贵的硬件改动。
提前感谢您提供任何建议。
此致
鲍勃·斯塔尔