没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Linux 系统驱动概述
驱动程序与应用程序的区别
应用程序一般有一个 main 函数,从头到尾执行
一个任务;应用程序可以和 GLIBC 库连接
驱动程序没有 main 函数,通过使用宏
module_init( 初始化函数名 ) 将初始化函数加入
内核全局初始化函数列表中,在内核初始化时执
行驱动的初始化函数,从而完成驱动的初始化和
注册,之后驱动便停止等待被应用软件调用。驱
动程序中有一个宏 moudule_exit( 退出处理函数
名 ) 注册退出处理函数。它在驱动退出时被调用。
驱动程序中是不能使用标准 C 库的
内核版本与编译器的版本依赖
当模块与内核链接时, insmod 会检查模块和当前内核版本
是否匹配,每个模块都定义了版本符号 __module_kernel
_version, 这个符号位于模块文件的 ELF 头的 .modinfo 段
中。只要在模块中包含 <linux/module.h> ,编译器就会自
动定义这个符号
每个内核版本都需要特定版本的编译器的支持,高版本的
编译器并不适合低版本的内核, Linux-2.4 版本的 insmod
命令装载模块时,首先从 /lib/modules 目录和内核相关的子
目录中查找模块文件,如果需要从当前目录装载,使用
insmod module.o 。
设备驱动程序的作用
设备驱动程序将复杂的硬件抽象成一个结构良好的设备,
并通过提供统一的程序接口为系统的其它部分提供使用设
备的能力和方法。
设备驱动程序 ( 应该只是 ) 为系统的其它部分提供各种使
用设备的能力,使用设备的方法应该由应用程序决定。
Linux 下对外设的访问只能通过驱动程序
Linux 对于驱动程序有统一的接口,以文件的形式定义系
统的驱动程序:
Open 、 Release 、 read 、 write 、 ioctl…
驱动程序是内核的一部分,可以使用中断、 DMA 等操作
驱动程序需要在用户态和内核态之间传递数据
设备驱动程序的分类
字符设备驱动程序
各种串行接口,并行接口等。
块设备驱动程序
磁盘设备等
网络设备驱动程序
网卡等。
杂项设备驱动程序
不属于上述三种设备之外的一些设备,如 SCSI,
时钟等。
剩余33页未读,继续阅读
资源评论
cloverlala
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功