1101351_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

1101351_ja-JP

1101351_ja-JP

FAQ 全ボード GPIOテスト<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

カーネル空間内でGPIOを制御するための独自のドライバを開発することも可能ですが、ユーザー空間からGPIOにアクセスするためのより簡単な方法があります。タイミング要件が問題にならない場合は、GPIO-SYSFSを使用できます。

SYSFSは、カーネル内部フレームワークの一部の機能をユーザー空間にエクスポートする仮想ファイル・システムであり、GPIOはSYSFSを通じて機能をエクスポートできるフレームワークの1つです。

GPIO-SYSFS機能は2.6.27以降のすべてのメインライン・カーネルで使用可能です。

SYSFS経由でGPIOをエクスポートするためのカーネルの構成

SYSFSでGPIOを有効にするには、次のカーネル・オプションを選択してください:

デバイスドライバー --->       --- GPIOサポート             [*] /sys/class/gpio/...(sysfsインターフェース)

i.MX233またはi.MX28を使用している場合、カーネルを再コンパイルした後、ltibでも自動的に実行されないため、ブート・ストリームを再度生成することを忘れないでください。

使用するピンが本当に GPIO ピンとしてアクセス可能であり、カーネルによって要求されていない(gpio_request)ことを確認してください。ピンが gpio_request された場合、SYSFS 経由でアクセスできるようにするには、カーネル内で同じピンを gpio_export する必要があります。ピンがデフォルトで GPIO として設定されていない場合、/arch/arm/mach-XXX 内の適切なファイルで IO MUX を設定する必要があります。

ユーザー空間でのGPIOへのアクセス

GPIO-SYSFS 機能を有効にした後、新しいカーネルでデバイスを起動してテストを行うことができます。

まず、テストするGPIOをユーザー空間にエクスポートする必要があります:

echo XX > /sys/class/gpio/export

XXは、次のアルゴリズムによって特定されます:

GPIOA_[B]はエクスポートしたいGPIOです。ここで、「A」はGPIOバンク、「B」はバンク内のピンのオフセットです。 最初の利用可能なGPIOバンクが0の場合//(たとえばiMX.28)    XX = A×32 + B; それ以外の場合//最初のGPIOバンクは1    XX =(A-1)×32 + B;

GPIOピンをエクスポートした後、次の場所にエクスポートされたGPIOインターフェースを確認できるようになります:

/sys/class/gpio/gpioXX

このインターフェースを通じて、次のようなことができるようになります:

#ピンの値を読みます cat /sys/class/gpio/gpioXX/value #ピンの向きを変える > /sys/class/gpio/gpioXX/directionにエコーイン エコーアウト> /sys/class/gpio/gpioXX/direction # GPIO出力レベルの切り替え echo 0 > /sys/class/gpio/gpioXX/value echo 1 > /sys/class/gpio/gpioXX/value

GPIO仮想ファイル・システムでは、一度に1つのGPIOピンしか処理できないことに注意することが重要です(コマンドごと)。
Re:FAQすべてのボードGPIOテスト<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

これは愚かな質問かもしれませんが、どのピンがgpioXXに物理的にリンクされているかを知るにはどうすればよいでしょうか?

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-19-2025 03:29 AM
更新者: