您尚未登录。
页次: 1
分享链接 / 只看楼主
或许linux内部做好了队列操作?还是只能一个应用程序独占一个i2c总线?还有那个SPI设备是否也可以同时操作
离线
在应用程序里面感觉不是独占,在驱动里面应该是独占的。
我的理解是这些设备经过驱动都虚拟成了文件,变成了对文件操作,那对文件操作多个应用就得一个应用关掉另外一个文件才能读写
同时读写数据会乱
多个应用同时读写 i2c 是没问题的,Linux 内部有 mutex 锁的
https://github.com/torvalds/linux/blob/62fb9874f5da54fdb243003b386128037319b219/drivers/i2c/i2c-core-base.c#L2140
https://stackoverflow.com/a/33792413/18061591
I2C本身就是个总线,要挂多个设备,驱动里肯定会处理不同设备的读写,单次读写对于应用来说是一个原子操作,所以应用程序无需关心会不会冲突,应用程序上是不可能有冲突的除非驱动有问题。