Linux의 새로운 GPIO 사용자 공간 하위 시스템 및 Libgpiod에 대해 자세히 알아보십시오.
Sysfs는 / sys / class / gpio에 정의 된 GPIO를 사용하여 Linux 시스템에서 GPIO를 제어하는 데 사용되었지만 Linux 4.8 부터 gpiochip이 / dev / gpiochip0, dev에있는 char 디바이스가되는 사용자 공간을위한 새로운 GPIO 인터페이스가 도입되었습니다 / gpiochip1 등. sysfs는 더 이상 사용되지 않을 것입니다.
그러나 Linux 4.11과 함께 NanoPi Duo를 빠르게 확인 하면 GPIO 사용자 공간 인터페이스가 모두 활성화 된 것처럼 보입니다.
그럼에도 불구하고 시간이 지남에 따라 sysfs는 사라질 것이고 새로운 서브 시스템은 모든 시스템에서 사용되기 때문에 더 많은 것을 배우는 것이 유용 할 것입니다.
한 가지 방법은 Bartosz Golaszewski의 ELCE 2017 토크 인 " 사용자 공간을위한 새로운 GPIO 인터페이스 "를 시청하는 것입니다.이 비디오는 아래에 임베드되어 있습니다. 그러나 나는 먼저 몇 가지 요점을 요약 할 것이다.
이제는 사용자 공간에서 처리하는 GPIO가 ioctl, poll 및 read 함수를 사용하는 다른 char 드라이버와 유사 해지며 GPIO에 번호를 할당하면 이름을 할당 할 수 있습니다. API (linux / gpio.h)는 칩 정보, 라인 정보, 값에 대한 라인 요청, 값 읽기, 설정 값, 이벤트에 대한 라인 요청 (상승 / 하강 에지), 이벤트 폴링 및 이벤트 읽기에 대한 액세스를 제공합니다. Bartosz는 각자의 기능에 대해 자세히 설명합니다.
커널 API는 약간 복잡하기 때문에 gpiodetect, gpioinfo, gpioset, gpioget, gpiofind 및 gpiomon과 같은 도구가 포함 된 libgpiod라는 C 라이브러리가 있습니다. C ++과 Python 바인딩뿐만 아니라 GPIO 데몬과 클라이언트도 포함됩니다. libgpiod의 예제 코드 :
libgpiod에있는 사용자 공간 도구의 몇 가지 예는 다음과 같습니다.
첫 번째 명령은 gpio 칩 목록, 이름 및 행 수를 반환하고 두 번째 명령은 칩 1의 세 번째 핀을 높이로 설정하고 세 번째는 5 개의 다른 핀 값을 반환하며 마지막은 5 개의 핀 값을 반환합니다. 이벤트가 발생했을 때 시간을 반환하십시오.
최신 libgpiod 소스 코드 를 확인하거나 최신 안정 릴리스를 tarball로 다운로드 할 수 있습니다 . libgpiod는 이미 meta-openembedded & buildroot에서 사용할 수 있으며 Fedora와 Arch Linux에 패키지되어 있습니다.
슬라이드에 관심이있을 수도 있습니다 .
'Android Mini PC' 카테고리의 다른 글
[번역] 리뷰 : RKM V3 SoC RK3328 쿼드 코어 및 이더넷 포트가있는 TV 스틱 (0) | 2018.01.23 |
---|---|
[번역] Android 용 Alexa 앱이 Amazon의 음성 컨트롤을 휴대 전화로 가져옵니다. (0) | 2018.01.23 |
TUTORIAL : 안드로이드 TV-Box에서의 LibreELEC 빠른 설치 가이드 (0) | 2018.01.17 |
HDHomeRun, CONNECT DUO + OTA DVR 발표 (0) | 2018.01.15 |
[번역] Nvidia Shield TV, Android O로 업그레이드 (0) | 2018.01.11 |