linux - 如何知道 Linux 中特定引脚的中断/GPIO 编号

标签 linux embedded arm embedded-linux interrupt

我正在做一个项目,我需要在其中处理 Linux 中的中断。

我使用的电路板是 ARM9Board基于三星的s3c6410 MCU(arm 11处理器),具有以下I/O接口(interface):

enter image description here

如图所示,我有用于外部中断的 EINTx 引脚和作为 GPIO 引脚的 GPxx 引脚,我不介意使用它们中的任何一个,但我没有它们的编号!

对于 EINTx 引脚:

当我打电话

int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *), 
unsigned long flags, const char *device); 

我需要中断号作为函数的第一个参数传递给它,那么我怎样才能获得 irq 号,例如 EINT16 引脚?

对于 GPxx 引脚: 同样的故事,因为我需要 GPIO 引脚号将其传递给那些函数

int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);

即我如何知道 GPP8 引脚的 GPIO 编号?

我搜索了董事会文件和数据表,但它不包含任何关于如何获得这些数字的信息,关于在哪里查看的任何想法或帮助?

最佳答案

您正在使用的嵌入式 Linux 应该有一个 GPIO 驱动程序,该驱动程序具有用于 GPIO 引脚的 #define 语句。然后,您可以使用类似以下内容获取特定 GPIO 的 IRQ 号:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

该特定芯片的 Linux GPIO 库支持可在以下文件中找到:

linux/arch/arm/mach-s3c6400/include/mach/gpio.h

在那里你会找到各种 GPIO 的所有 #define 语句。

请参阅其文档中有关 GPIO 约定的部分:

http://www.kernel.org/doc/Documentation/gpio/gpio.txt

关于linux - 如何知道 Linux 中特定引脚的中断/GPIO 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212637/

相关文章:

linux - 如何在arm硬件上加载和启动yocto镜像?

c - FreeRTOS 中队列数组的问题

ARMv8.3 rcpc的含义

linux - 什么时候在内核中创建 kallsyms?

Python 3 不通过 stat 检测符号链接(symbolic link)

Linux 替换 : Add spaces between brackets in a file using sed

c - 每个 cpu 架构的真正 ELF TLS ABI 要求是什么?

embedded - "volatile"关键字对于嵌入式系统有什么意义?

c - ARM Cortex-M处理器硬故障处理中的冗余代码

linux - 在 bash 中的 chroot 中执行函数