/sys/class/gpioファイルインタフェース操作IOポート(s 3 c 2440)

2813 ワード

詳細0
組み込み機器におけるGPIOの動作は最も基本的な動作である.一般的な方法は単独ドライバを書くことであり、ネット上の多くの例はこのようなものです.実はlinuxの下には一般的なGPIO操作インタフェースがあります.それは私が紹介する「/sys/class/gpio」方式です.
まず、システムに「/sys/class/gpio」というフォルダがあるかどうかを見てみましょう.カーネルをコンパイルしていない場合はDevice Drivers—>GPIO Support—>/sys/class/gpio/...(sysfs interface)を加えてください.
/sys/class/gpioの使用説明:01 gpio_operation /sys/ IO GPIO 02 * GPIO /sys/ class /gpio 03 * /sys/ class /gpio/export GPIO 04 * /sys/ class /gpio/unexport 05 * /sys/ class /gpio/gpiochipX GPIO , base, , 06 * , = + 07 * /sys/ class /gpio/export , 12 , shell , /sys/ class /gpio/gpio12 , , : 08 echo 12 > /sys/ class /gpio/export 09 * direction , , 10 echo out > direction 11 * direction :in, out, high, low。high/low , value 1/0。 12 * value , 1 0. 13 echo 1 > value
次に2440でテストを行います
1.GPIO情報を取得し、端末に以下のコマンドを打ち込む1 $ cd /sys/ class /gpio 2 for   i in gpiochip* ;  do   echo `cat $i/label`: `cat $i/base` ; done
端末には次のように表示されます.1 GPIOA: 0 2 GPIOE: 128 3 GPIOF: 160 4 GPIOG: 192 5 GPIOH: 224 6 GPIOB: 32 7 GPIOC: 64 8 GPIOD: 96
2.GPIO番号の計算
GPE 11をLED制御に使用した.
GPE 0のヘッダは128,GPE 11は128+11=139である.1 $ echo 139 >; /sys/ class /gpio/export
ls gpio 139というディレクトリがあるかどうか見てみましょう
3.GPIO制御テスト.
LEDを制御するので出力です.
だから私たちは実行すべきです1 $ echo out > /sys/ class /gpio/gpio139/direction
あとで出力設定ができます.1 $ echo 1 > /sys/ class /gpio/gpio139/value
or 1 $ echo 0 > /sys/ class /gpio/gpio139/value