Raspberry Pi的GPIO寄存器和中断

时间:2013-10-27 21:16:38

标签: linux-kernel linux-device-driver raspberry-pi interrupt gpio

我可以在第90页阅读http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf Raspberry Pi的GPIO映射在0x 7E20 0000和0x 7E20 00B0之间。 GPIO引脚电平寄存器(GPLEVn)包含每个引脚的值

  

引脚电平寄存器返回引脚的实际值。 LEV {n}   field给出相应GPIO引脚的值。

操作系统如何获得这些值?或者是使用DMA将GPIO直接映射到内存?此外,关于投票频率没有任何说法。

关于中断,我发现了两个有趣的寄存器:GPIO上升沿检测使能寄存器(GPRENn)和GPIO异步上升沿检测使能寄存器(GPARENn)。

  

异步上升沿检测使能寄存器定义引脚   异步上升沿转换为其设置了一个位   事件检测状态寄存器(GPEDSn)。异步意味着   系统时钟不对输入信号进行采样。就这样上升   可以检测到持续时间很短的边缘。

因此,似乎同步边沿检测是通过在每个时钟采样引脚的值来实现的,但如果必须检测非常短的持续时间的上升沿,则必须以异步方式进行。我应该如何做到这一点?不是所有的事都是使用系统时钟安排的吗?

内核的哪个部分是GPIO采样实现的?

0 个答案:

没有答案