Linuxカーネルでは、GPIOを簡単に「再生」することができます。
のGPIOを操作するためのファイルを含めるあります:現在の実装では、この要件を強制しませんが
#include <linux/gpio.h>
のGPIOは、使用前に割り当てておく必要があります。基本的な配分機能は次のとおりです。ラベルは、後のsysfsに表示されることができ、それを文字列を関連付けながら
int gpio_request(unsigned int gpio, const char *label);
GPIOパラメータは、GPIOが必要とされているかを示します。通常の規約が適用されます。ゼロ戻りコードは成功を示します。それ以外の場合、戻り値は負のエラー番号になります。
void gpio_free(unsigned int gpio);
一部のGPIOは出力用、その他は入力用に使用されています。いずれかのモードでは、適切に有線で接続されたGPIOを使用できますが、同時に1つの方向だけがアクティブになります。カーネルコードは、GPIOコアに回線の使用方法を通知する必要があります。
int gpio_direction_input(unsigned int gpio);
int gpio_direction_output(unsigned int gpio, int value);
いずれの場合も、gpioはGPIO番号です。出力の場合、GPIO(ゼロまたは1)の値も指定する必要があります。それに応じてGPIOがコールの一部として設定されます。どちらの関数でも、戻り値はゼロまたは負のエラー番号です。 (適切に機能する)GPIOの方向は、いつでも変更することができます。入力のGPIOについて
、電流値を用いて読み取ることができる。
int gpio_get_value(unsigned int gpio);
この機能は提供GPIOの値を返します。エラーコードを返す手段はありません。 gpio_direction_input()が呼び出されたときにエラーが検出されると仮定されているので、その関数からの戻り値をチェックすることが重要です。出力のGPIOの値を設定
は常に)(gpio_direction_outputを使用して行うことができ、しかし、GPIOが既に出力モードであることが知られている場合、gpio_set_value()はビットより効率的であってもよい。
void gpio_set_value(unsigned int gpio, int value);
詳細については、次のリンクを参照してください:enter link description here