最近,我开始开发运行linux的嵌入式设备的驱动程序。
到目前为止,我只有阅读关于linux内部 由于没有先前的驾驶员开发经验,我发现我的第一步很难落地。
有人可以描述结构(即链接间)
内核源代码中的各种目录。换句话说,给定源代码文件,
它会引用相关代码的其他文件(“#include” - 提供了部分想法)
有人可以帮助我获得一个更好的主意吗? 任何帮助将不胜感激
谢谢。
答案 0 :(得分:18)
给定一个C文件,你必须查看它调用的函数和它使用的数据结构,而不是担心特定的文件。
开发自己的设备驱动程序有两种基本途径:
完成此过程后,组成驱动程序的文件会更有意义。要考虑每个文件中的内容,但在某种程度上,在文件中划分驱动程序更像是一门艺术,而不是一门科学。较小的驱动程序通常只适合一个或两个文件。
一些设计也可能是好的。考虑一下您的设备做了什么,以及您的驱动程序需要做什么。基于此,您应该能够确定设备驱动程序需要具备的功能。
我也相信Linux Device Drivers, Third Edition可以帮助您开始驾驶开发。
Linux文件本身包括基于它们的作用,它们所在的层以及它们访问调用堆栈的层的文件。 Big Picture真实地告知每个文件与下一个文件的关系。
答案 1 :(得分:7)
我必须修改一次内核驱动程序。我最大的提示(如果你使用vim)是用ctags设置它,这样你每次看到一个你不理解的函数时都可以用ctrl-跳转内核源代码。