硬件寄存器是否可以映射到用户空间



我正在飞思卡尔MPC8306上开发LED驱动器。在驱动程序代码中,我在 GPIO 寄存器上执行 ioremap 并在重新映射的 GPIO 寄存器地址上调用 remap_pfn_range,然后在用户空间中调用 mmap 以将 GPIO 寄存器映射到用户空间。我以前没有这样做过,我想知道这种方法是否有效。有人可以帮助我吗?提前谢谢。

您应该使用/dev/mem接口来访问 GPIO 寄存器。这里给出了通过另一个嵌入式板上的GPIO控制LED的良好参考。

一种更简单的方法可能只是直接在用户空间程序中mmap /dev/mem的相关偏移量。这允许您通过查找物理内存布局来访问它。

AFAIK,这就是RaspberryPi开发人员所做的,以使GPIO内存映射I/O寄存器可用于用户空间程序。

最新更新