admin 管理员组文章数量: 1184232
2024年3月22日发(作者:visual basic是高级语言吗)
ddd
1:
Linux设备驱动开发入门
本文以快捷而简单的方式讲解如何像一个内核开发者那样
开发linux设备驱动
源作者: Xavier Calbet
版权:GNU Free Documentation License
2:
3:
4:
5:
6:
7:
8:
9:
10:
翻译: 顾宏军()
中文版权:创作共用.署名-非商业用途-保持一致
11:
12:
知识准备
要开发Linux设备驱动,需要掌握以下知识:
C编程 需要掌握深入一些的C语言知识,比如,指针的使
用,位处理函数,等。
•微处理器编程 需要理解微机的内部工作原理:存贮器地
址,中断,等。这些内容对一个汇编程序员应该比较熟
悉。
Linux下有好几种不同的设备。为简单起见,本文只涉及以模块
形式加载的字符设备。使用2.6.x的内核。(特别是Debian Sarge
使用的2.6.8内核。)
•
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
用户空间和内核空间
当你开发设备驱动时,需要理解“用户空间”和内核空间之间的
区别。
- 1 / 32 -
ddd
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
•内核空间 :Linux操作系统,特别是它的内核,用一种简单
而有效的方法管理机器的硬件,给用户提供一个简捷而统
一的编程接口。同样的,内核,特别是它的设备驱动程
序,是连接最终用户/程序员和硬件的一坐桥或者说是接
口。任何子程序或者函数只要是内核的一部分(例如:模
块,和设备驱动),那它也就是内核空间的一部分。
用户空间. 最终用户的应用程序,像UNIX的shell或者其它的
GUI的程序(例如,gedit),都是用户空间的一部分。很显然,
这些应用程序需要和系统的硬件进行交互。但是,他们不
是直接进行,而是通过内核支持的函数进行。
它们的关系可以通过下图表示:
•
38:
39:
40:
图1: 应用程序驻留在用户空间, 模块和设备驱动驻留在内核空间
- 2 / 32 -
版权声明:本文标题:Linux设备驱动开发入门-Read 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711056104a586186.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论