工具/软件:TI-RTOS
我正在研究一些固件、这些固件会合并来自多个 I2C 源的数据并将其移至云。 我注意到的是、当 I2C 在阻塞模式下使用时、如果器件无法永远响应固件块。 我认为这种糟糕的行为、因为我宁愿继续执行、故障会被标记并转发给用户。 我还注意到 I2C 似乎没有超时机制。 我很可能会对这些事实有所误解、如果我是这样、请纠正我的错误。
我的中途可行的解决方案假设上述方法是在回调模式下执行 I2C。 如果回调在特定时间内未能发生,则发出报警声。 然而,我不禁要问如何从这种情况中恢复。 我想最好的办法是关闭驱动程序并重新启动它、但我不确定关闭后等待操作会发生什么情况。 是否有人能够说明哪些存储器可能仍处于活动状态、或者这是安全操作? 如果我可以杀死驱动程序、请将该芯片标记为死区并重新启动驱动程序、轮询我可以恢复到业余状态的其余部分。
在回调中、I2C 驱动器能够在不进行电源复位的情况下恢复并不重要。 当它死了,我只能让它死了,但我正在寻找我的所有选择。
感谢你的帮助