我可以在第90页阅读http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf Raspberry Pi 's GPIOs are mapped between 0x 7E20 0000 and 0x 7E20 00B0. GPIO Pin Level Registers (GPLEVn) contains every pin'的值

引脚电平寄存器返回引脚的实际值 . LEV 字段给出相应GPIO引脚的值 .

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

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

异步上升沿检测使能寄存器定义异步上升沿转换在事件检测状态寄存器(GPEDSn)中设置位的引脚 . 异步意味着系统时钟不对输入信号进行采样 . 因此,可以检测到持续时间非常短的上升沿 .

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

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