らずぱいでIoT 第13回(C言語で制御するために、その4)
かわせです。相変わらずラズパイをC言語で使う方法について調べています。
そんな中、前回GPIOにアクセスるために/sys/class/gpioによるアクセス方法をご紹介しましたが、そのドキュメントの中に重大なことが書かれておりました。
/sys/class/gpioでのアクセスは現在推奨されておらず、libgpiodというライブラリを使うように勧めています。
2020年には/sys/class/gpioは廃止されlibgpiodに変更されるようです。
libgpiodでは /dev/gpiochipN にアクセスるライブラリでNは0から始まる数字になるようです。
現在は/dev/gpiochip0しか存在しておらず1や2はありませんがひょっとすると複数のデバイスを想定しているのかもしれません。
ちなみにすでに、libgpiodはGIT HUBで公開されています。
https://github.com/brgl/libgpiod
ただいま解析中のためこれ以上詳しいことは書けませんが、現在作成しているプログラムは変更しないと新しいシステムでは動作しなくなる可能性が出てくるため、ラッピング関数で同じインターフェイスから使えるような工夫をしておかないと対応に苦慮するものと思われます。
それから、SPI通信やI2C通信用のデバイスファイルは変更なく使えるようです。
また、解析できたらブログ上でご報告したいと思います。