主题中讨论的其他器件:IWR1642
您好!
我使用 IWR1642 EVM 作为 I2C 从设备向 Arduino 主控制器发送数据。
使用 SDK 中提供的 I2C 驱动程序和从站测试、我能够使 IWR 从站向总线写入数据、并在 Arduino 端接收到数据。
但是、当我调用同一个写入函数时、
I2CSlave_write (I2CSlave_handle handle、const void * buffer、size_t size)
在执行毫米波演示期间、在 MSS 内核上、我在 DSS 内核中遇到故障。
以下是控制台输出上的错误:
{MODULE#8}:"../DSS_main.c"、第264行:错误{id:0x10000、args:[0x8139b4、0x8139b4]}
xdc.runtime.Error.raise:终止执行
这一行:
/*检查先前的线性调频脉冲处理是否已完成*/ DebugP_assert (gMmwDssMCB.dataPathObj.interFrameProcToken = 0);
以下是出错期间的调用堆栈:
我完全不知道为什么会发生这种情况、因为 i2c 写入函数在 MSS 内核上运行。 但是、调用堆栈确实会指向中断发生的错误。 这是因为 DSS 完成帧处理后、它向 MSS 发送中断信号、以便 MSS 可以接收中断、但在 i2c 情况下、i2c 驱动程序处于阻塞模式、因此 MSS 对来自 DSS 的中断没有响应吗? 我将进一步研究这一点、希望您能分享您的观点。
谢谢、
Herman
