【发布时间】:2011-02-10 15:19:46
【问题描述】:
最近,我开始开发运行 linux 的嵌入式设备的驱动程序。
到目前为止,我只阅读有关 linux 内部结构的信息。
由于没有驱动程序开发方面的经验,我发现迈出第一步有点困难。
- 我已经下载了内核源代码 (v2.6.32)。
- 我已阅读(略读)Linux 设备驱动程序 (3e)
- 我在 StackOverflow 上阅读了一些相关帖子。
- 我了解 linux 采用“单片机”方法。
- 我已构建内核(在 menuconfig 等中包含现有驱动程序)
- 我知道 kconfig 和 makefile 文件的基础知识,所以这应该不是问题。
有人可以描述结构(即相互链接)
内核源代码中的各个目录。换句话说,给定一个源代码文件,
相关代码会参考哪些其他文件(“#include”-s 提供了部分想法)
有人可以帮我想出一个更好的主意吗?
任何帮助将不胜感激
谢谢。
【问题讨论】:
-
这应该清除它。 youtube.com/watch?v=ENNKtfR2PYc
-
为内核编写一个简单的模块Hello World。然后,一旦你理解了 Hello World Kernel Module,就写下这个freesoftwaremagazine.com/articles/drivers_linux 并测试它。按照上面的链接,直到你不明白为止。并在这里阅读了我的两篇帖子mail.nl.linux.org/kernelnewbies/2010-09 我真的在论坛上努力了解它是如何工作的。所以你必须做同样的事情。不管任何人说什么,直到你不明白为止。学习的最好方法是拿起一个项目并开始工作,最后你会得到很多。例如决定修复一个
-
内核中无线驱动程序的错误。我知道在这个阶段这听起来很奇怪,但一直追到你做为止。在最后你将能够做到。
-
@realitydisplays 我知道这很长一段时间,但我的情况与 OP 相似。您共享的那 2 个链接不再有效。您能提供最新的链接吗?
标签: linux linux-kernel kernel linux-device-driver