at_takuya.sasaki
2017年7月10日 9時41分
Armadillo-400シリーズのソフトウェアマニュアルにサンプルコードがある、GPIO sysfsからの割り込みですが、これをG3/X1に搭載可能なDIDOアドオンモジュールで利用する方法です。
400シリーズの以下のドキュメントにGPIO sysfsの割り込みを扱うサンプルがあります。
図9.1 GPIO sysfs 割り込みサンプルプログラム
基本的にはG3/X1に搭載可能なDIDOアドオンモジュールでも同じサンプルを使えますが、以下の点を修正する必要があります。
1. gpioのポート名を表す文字列は随時変更してください。
#define GPIO_DIR "/sys/class/gpio"
#define GPIO_NAME "CON9_1"
#define GPIO_PATH GPIO_DIR "/" GPIO_NAME "/"
G3/X1のポート名はマニュアルを参照してください。
- G3:6.15. Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00
- X1:6.15. Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00
2. pollに渡すパラメータを変更します
pfd.events = POLLIN;
G3/X1の場合は、以下に変更します。
pfd.events = POLLPRI | POLLERR;
この変更についてはカーネルのソースコード内の以下のドキュメントに記載があります。
linux-3.14-x1-atxx/Documentation/gpio/sysfs.txt
以上