ブログ

Armadillo-IoT G3/X1: GPIO sysfsの割り込みを利用する

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のポート名はマニュアルを参照してください。

2. pollに渡すパラメータを変更します

pfd.events = POLLIN;

G3/X1の場合は、以下に変更します。

pfd.events = POLLPRI | POLLERR;

この変更についてはカーネルのソースコード内の以下のドキュメントに記載があります。
linux-3.14-x1-atxx/Documentation/gpio/sysfs.txt

以上