Linux上的I2C并发访问,互斥
发布时间:2020-12-14 02:03:25 所属栏目:Linux 来源:网络整理
导读:我正在嵌入式 Linux中编写一个多线程C程序,从用户空间访问许多I2C设备(从设备).此外,我从多个线程访问相同的I2C设备.我正在使用SMBUS函数(i2c_smbus_write_byte_data,i2c_smbus_read_byte_data,i2c_smbus_read_i2c_block_data,…). 是否有内置并发访问的保护
我正在嵌入式
Linux中编写一个多线程C程序,从用户空间访问许多I2C设备(从设备).此外,我从多个线程访问相同的I2C设备.我正在使用SMBUS函数(i2c_smbus_write_byte_data,i2c_smbus_read_byte_data,i2c_smbus_read_i2c_block_data,…).
是否有内置并发访问的保护或我是否需要自己添加互斥? 例如:我有一个读取功能,通过I2C读取一个传感器的数据.但是也可以从另一个线程调用相同的函数,从而导致可能的并发访问.我是否必须在该函数中使用某些静态互斥锁,或者它是否已经在I2C访问函数中? 解决方法
I2C是具有多个设备的共享总线,可以从多个进程和线程访问.因此,Linux I2C驱动程序代码使用互斥锁来管理对每个I2C总线的访问.
有关SMBus函数,请参阅i2c-core-smbus.c中的Linux内核函数 有关I2C函数,请参阅i2c-core-base.c中的Linux内核函数 所以,是的,内置并发访问的保护. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |