ユーザー空間から多数の I2C デバイス (スレーブ) にアクセスする組み込み Linux でマルチスレッド C プログラムを作成しています。また、複数のスレッドから同じ I2C デバイスにアクセスしています。SMBus 関数 (i2c_smbus_write_byte_data、i2c_smbus_read_byte_data、i2c_smbus_read_i2c_block_data、...) を使用しています。
同時アクセスに対する保護機能は組み込まれていますか? それとも自分でミューテックスを追加する必要がありますか?
例: I2C を介して 1 つのセンサーからデータを読み取る読み取り関数があります。ただし、同じ関数を別のスレッドからも呼び出すことができるため、同時アクセスが発生する可能性があります。その関数で静的ミューテックスを使用する必要がありますか、それとも既に I2C アクセス関数に含まれていますか?