我正在开发一个嵌入式 Linux 板,带有一个按钮和几个 LED。
默认情况下,我可以通过以下方式控制 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。