저는 버튼과 여러 개의 LED가 있는 임베디드 Linux 보드를 개발 중입니다.
기본적으로 다음을 통해 LED를 제어할 수 있습니다.
/sys/class/leds/redled/brightness
그러나 버튼을 모니터링할 수는 없습니다. CONFIG_GPIO_SYSFS를 활성화하면 LED가 표시되지 않습니다. /sys/class/leds/는 비어 있습니다. 그리고 이론적으로 LED가 연결되어야 하는 GPIO는 아무것도 하지 않아서 해킹조차 할 수 없습니다.
이 두 기능을 모두 작동시키는 방법에 대한 아이디어가 있습니까?
답변1
해결책은 매우 간단하다는 것이 밝혀졌습니다. 내가 잘못된 GPIO를 찔렀다는 것이 밝혀졌습니다. 시작 오프셋은 다음과 같이 정의됩니다.
$LINUX/arch/arm/mach-at91/include/mach/gpio.h
처럼:
#define PIN_BASE NR_AIC_IRQS
NR_AIC_IRQS는 동일한 디렉터리의 irqs.h에 정의되어 있습니다.
#define NR_AIC_IRQS 32
내가 찾고 있는 핀은 PB12와 PB13입니다. gpio.h에 다음과 같이 정의되어 있습니다.
#define AT91_PIN_PB12 (PIN_BASE + 0X20 + 12)
#define AT91_PIN_PB13 (PIN_BASE + 0X20 + 13)
그래서 제가 찾는 핀은 32 + 32 + 12 = 76과 77입니다.