【发布时间】:2014-04-08 17:40:46
【问题描述】:
从一般的角度来看,我试图弄清楚如何从用户空间访问平台设备。更具体地说,我有一个 EMIF 控制器和 SoC,我已将其添加到我的设备树中,我相信它已正确绑定到预先编写的 EMIF 平台设备驱动程序。现在我想弄清楚如何从用户空间应用程序访问这个 EMIF 设备。我遇到了几个不同的主题,这些主题似乎与这个问题有一些联系,但我不太清楚它们之间的关系。
1) 据我所知,似乎大多数 I/O 是通过使用由mknod() 创建的设备节点完成的,我是否需要创建一个设备节点才能访问此设备?
2) 我读过一些关于编写内核模块(字符?块?)的帖子,该模块可以与用户空间和平台设备驱动程序交互,并将其用作中介。
3) 我已经了解了使用mmap() 将我的平台设备的内存映射到我的虚拟内存空间的可能性。这可能吗?
4) 好像是在实例化EMIF驱动的时候,调用了probe()函数。用户空间应用程序会在驱动程序中调用哪些函数?
【问题讨论】:
标签: linux-kernel driver linux-device-driver embedded-linux system-on-chip