驱动程序 基本知识

本文介绍了驱动程序的基本知识,包括其与应用程序的区别、如何被使用、编写流程,以及中断处理和并发控制机制。同时,阐述了驱动程序的识别过程,涉及平台设备和平台驱动的匹配。此外,讨论了IO端口和IO内存的特点及其管理。
摘要由CSDN通过智能技术生成

什么是驱动程序

驱动程序就是使硬件工作的一种特殊软件,它运行在操作系统的内核空间(虚拟地址0xC0000000到0xFFFFFFFF),封装硬件细节,服务于系统调用。

 

驱动程序和应用程序的区别

1.应用程序运行在用户空间,驱动程序运行在内核空间。

2.应用程序可使用标准的库函数,而驱动程序连接到内核,只能使用内核导出的符号和函数。

3.应用程序错误,一般只会杀死进程,而驱动程序错误,会造成系统不稳定,或者崩溃。

4.应用程序拥有很大的栈空间,而内核栈很小,一般只有4KB。

5.驱动程序类似事件驱动编程,它初始化时候,注册一些设施,服务于系统调用。

 

驱动程序是这样被使用的

1.应用程序使用标准库提供的open函数,打开dev目录下的设备文件。

2.库函数根据参数,执行软件中断指令,引起CPU异常,从而进入内核模式。

3.内核异常处理函数,根据参数找到相应的驱动程序,并返回一个文件句柄给应用程序。

4.应用程序使用文件句柄,操作相应的设备,执行read和write等函数。

 

驱动程序的编写流程

1.查看原理图、数据手册,了解设备参数和操作设备的方法。

2.以内核相近的驱动为模板,进行开发。

3.实现驱动的初始化函数:申请设备号、初始化设备结构、申请中断号并注册中断处理函数、最后使用申请到的设备号连同file_oprations结构一并向内核注册。

4.实现file_oprations结构中的函数和中断服务函数。

5.将驱动程序编译进内核或者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值