0

私はビーグルボーンボードに接続されたI2CまたはSPIデバイスに依存するユーザーアプリケーションを作成しています。 私のアプリはユーザー空間で動作しています。今すぐI2cデバイスから割り込みが発生すると、私のアプリケーションはI2cデバイスからデータを取得する必要があります。割り込み駆動型SPIまたはI2Cドライバ

私の質問は、これらのすべてを同期する方法です。 I2Cデバイスからデータを取得するデバイスドライバを作成する必要がありますか、I2cからデータを読み取るために別のデバイスドライバを起動し、データを取得するためにユーザーアプリケーションを起動する方法はありますか?

+0

ビーグルボーンボードに付属しているカーネルのビルドやロードに、一般的なドライバが含まれている場合があります。そうであれば、アクセスする文字デバイスドライバである '/ dev'の下にファイルが存在するはずです。スレッドを作成して割り込みをポーリングすることができます。これが存在しない場合は、独自のデバイスドライバを作成する必要があります。 – user2205930

+0

これは役立ちます:https://www.linux.com/learn/how-access-chips-over-spi-beaglebone-black – user2205930

+0

i2cまたはspiドライバが必要で、Linuxカーネルの入力サブシステムも見てください – bytefire

答えて

0

i2cドライバ、spiドライバ、入力サブシステムの3つについて知っておく必要があります。

i2cドライバの場合は、ドライバの登録と登録解除のためのヘルパーマクロstruct i2c_drivermodule_i2c_driverのカーネルコードを検索してください。

同様に、struct spi_driverおよびmodule_spi_driver spi。

入力サブシステムでは、struct input_devを検索してください。とりわけ、関連するイベントビットを設定し、input_eventイベントハンドラを実装することによって、興味深いイベントに「フック」する必要があります。

UPDATE:入力サブシステムの目的は、i2cまたはspiデバイスからの入力イベントの処理を助けることです。

+0

入力の使用サブシステムはデータのソースにかなり依存しています。現在、多くのセンサーに使用されている最新のフレームワークとABIは、IIO(Industrial I/O bus)です。入力サブシステムは、実際のユーザーインタラクションデバイス(タッチスクリーン、タッチパッド、マウス、キーボード、ボタンなど)のために残されています。 – 0andriy

関連する問題