linux – 强制I2C通信安全吗?
发布时间:2020-12-14 01:13:37 所属栏目:Linux 来源:网络整理
导读:对于我正在研究的项目,我必须通过I2C与多功能芯片通信.我可以通过I2C / dev / i2c-1接口从 linux用户空间执行此操作. 但是,似乎司机正在同时与同一芯片通话.这导致我的I2C_SLAVE访问失败,其中错误的值为EBUSY.好吧 – 我可以通过ioctl I2C_SLAVE_FORCE覆盖它
对于我正在研究的项目,我必须通过I2C与多功能芯片通信.我可以通过I2C / dev / i2c-1接口从
linux用户空间执行此操作.
但是,似乎司机正在同时与同一芯片通话.这导致我的I2C_SLAVE访问失败,其中错误的值为EBUSY.好吧 – 我可以通过ioctl I2C_SLAVE_FORCE覆盖它.我尝试过,它的确有效.我的命令到达芯片. 问题:这样做是否安全?我确信我写的地址范围永远不会被任何内核驱动程序访问.但是,我不确定强制I2C通信是否会混淆某些内部状态机左右.(我不是那样进入I2C,我只是使用它……) 供参考,硬件事实: OS: Linux Architecture: TI OMAP3 3530 I2C-Chip: TWL4030 (does power,audio,usb and lots of other things..) 解决方法
我不知道那个特定的芯片,但通常你有需要一系列写操作的命令,首先是一个地址来设置某个模式,然后你读或写另一个地址 – 其中第二个地址的功能根据你写的第一个.因此,如果驱动程序处于其中一个操作的中间,并且您中断它(反之亦然),那么您将遇到难以调试的竞争条件.为了获得可靠的解决方案,您最好通过芯片的驱动程序进行通信……
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |