linux-kernel之从内核空间访问 GPIO

think 阅读:27 2024-06-20 12:54:19 评论:0

在尝试编写一个简单的 char 设备驱动程序后,我现在希望编写一个 char 设备驱动程序来访问嵌入式 linux 板(如 Beagleboard)上的 GPIO 引脚。我有兴趣写一个模块"mygpiomodule"加载时必须出现在 /dev/mygpiomodule 中这样从用户空间读取、写入访问 GPIO。我不想从用户空间访问 GPIO。我想把它作为我第一次尝试编写一个可以与一些外围设备接口(interface)的模块。我想将一些 LED 插入端口并尝试打开或关闭它们。

我应该如何尝试这样做?

谢谢
米尔

请您参考如下方法:

幸运的是,编写 Linux 驱动程序并不过分复杂,尽管在这个论坛中无法教授。然而,好消息是网络上有很多可用的资源可以很好地解释你想要做什么。这里只是我使用过的几个(甚至用​​于制作 GPIO/LED 控制驱动程序),它们确实提供了有效的源代码,可以用作驱动程序的基础。

Free Software Magazine article

Linux Documentation Project article

O'Reilly Linux Drivers book

Linux Journal article

Linux 的“TinkerToy”特性提供了很大的灵 active 。例如,您可能会考虑将您的驱动程序也附加到“/proc”文件系统(使用 create_proc_entry() API),这样您就可以访问您的驱动程序,而无需编写专门的应用程序,只需“echo YOU​​RSTRING >/proc/mygpiomodule"字符串到您的驱动程序。从驱动程序读取将使用“cat/proc/mygpiomodule”。上面的链接还包括有关执行此操作的示例。如果您需要,这可以帮助测试和通过启动脚本访问您的驱动程序。

花一些时间查看我上面列出的文章/书籍,如果需要,当然可以通过 Google 搜索更多内容。继续深入研究,编译并运行一些示例,您将很快上手。


标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号