linux gpio 예제

내보내기 후 , 나는 `고양이 / sys / 클래스 / gpio / gpioxx / 값`을 사용할 때마다 나는 그것에 1에코 후에도 항상 0을 읽습니다. 값을 읽는 방법을 알고 계십니까? 유일한 방법은 당신이 작업하는 시스템의 일부 관리자는 사용자 수준 또는 그룹에 대한 gpio 장치에 액세스 할 수있는 권한을 설정하는 것입니다 … / sys / 클래스 / gpio # 고양이 gpio0 / 값 0 / sys / 클래스 / gpio # 고양이 gpio0 / 값 0은 “/sys /클래스 / gpio/gpio123″디렉토리가 발생합니다. 다음 예제에서는 Colibri T20의 SODIMM 핀 100을 사용합니다. 이것은 다음과 같은 관계를 만듭니다 : /sys/class/gpio 0 > 내보내기 /sys/class/gpio # 에코 > gpio0/방향/sys/class/gpio #gpio-int-test.c 프로그램은 poll() 매 3초마다 일어나(poll() 시간 시간 설정 메커니즘사용) 기간. poll() 함수는 stdin의 입력과 GPIO 0의 인터럽트도 감시하고 있습니다. 위에서 설명한 대로 커널을 구성한 후 Linux 이미지를 빌드하고 STM32F429 검색 보드에 로드합니다. 구축하고 호스트 컴퓨터에 일명 Yocto SDK를 설치합니다. SDK 구축 및 설치와 관련된 지침은 Linux SDK의 기술 자료 문서를 참조하십시오.

첫 번째 단계는 GPIO 배열에 핀을 추가(내보내기)하고 인덱스를 사용하여 입력으로 정의하는 것입니다(5는 이 예입니다). 이것은 다음과 같이 수행됩니다 : ~ # evtest / dev / input /event1 입력 드라이버 버전은 1.0.1 입력 장치 ID : 버스 0×19 공급 업체 0×1 제품 0×1 버전 0×100 입력 장치 이름 : “gpio-keys”지원 이벤트 : 이벤트 유형 0 (EV_KEY) 이벤트 유형 1 (EV_KEY) 이벤트 코드 148 (KEY_PROG1) 이벤트 코드 149 (KEY_PROG2) 속성: 테스트 … (인터럽트에서 종료) 이벤트: 시간 946685503.115766, 유형 1(EV_KEY), 코드 148(KEY_PROG1), 값 1 이벤트: 시간 946685503.115766, ————– SYN_REPORT ———— 이벤트: 시간 946685503.255746, 유형 1(EV_KEY), 코드 148(KEY_PROG1), 값 0 이벤트: 시간 946685503.11576, 시간 — ———– SYN_REPORT ———— 이벤트: 시간 9466855224.235749, 유형 1(EV_KEY), 코드 149(KEY_PROG2), 값 1 이벤트: 시간 946685524.235749, ————– SYN_REPORT ———— 이벤트: 시간 946685524.355743, 유형 1(KEY_CODE1). 값 0 이벤트: 시간 946685524.355743, ————– SYN_REPORT ———— 콜리브리 T30에 대 한, 아래 예제는 SODIMM 핀 162 일시 중단 핀 Hi, 우수한 기사를 사용할 수 있습니다. 어떻게 예약 된 gpio를 예약 한 모듈을 찾을 수 있습니다. 나는 “고양이 / sys / 커널 / 디버그 / gpio”를 실행했다. 나는 아래출력의 일부를 게시했다. GPIOs 148-178, GPH: gpio-162 (? ) 에서 lo gpio-163 (? ) 로 gpio-164 (? ) 에서 lo gpio-165 (? ) 로 도움을 주세요. 참고 : Sysfs GPIO 대신 Libsoc을 사용하는 경우 SoC GPIO 표현에서 Linux GPIO 번호로의 매핑이 추상화되므로 모듈 제품군의 Toradex 컴퓨터 (예 : Colibri 또는 Apalis) 내부에서 GPIO 번호는 CoM 에지 커넥터에 해당합니다( 즉, SODIMM 또는 MXM3) 핀 번호로 모듈 간에 응용 프로그램을 보다 쉽게 이식할 수 있습니다(예: Apalis iMX6 및 Apalis T30). 나는이 GPIO 디버깅도 hv :root@core9g25 :~# 고양이 / sys / 커널 / 디버그 / gpio GPIOs 0-31, 플랫폼/fffff400.gpio, fffff400.gpio: [w1] GPIOfff400.gpio21: [gpio] 세트 GPIOs 32-50, 플랫폼/fffff600.gpio, fffff600.gpio: [aria_led] GPIOfff600.gpio: 페리프 A] GPIOs 64-95, 플랫폼/fffff800.gpio, fffff800.gpio: GPIOs 96-117, 플랫폼/fffffa00.gpio, fffffa00.gpio: STM32F429 대상에서 실행되는 리눅스에서 각 GPIO는 0에서 143Ker의 GPIO 칩 범위 내에서 고유한 정수 GPIO 번호를 할당합니다. GPIO를 올바르게 관리하고 gpio 모듈 인터페이스를 통해 노출하도록 “구성”해야 합니다.

Bookmark the permalink.

Comments are closed.