【技术实现步骤摘要】
一种基于微内核的硬件设备驱动系统及其驱动方法
本专利技术属于设备驱动
,具体涉及一种基于微内核的硬件设备驱动系统及其驱动方法。
技术介绍
Linux中,针对不同种类的设备设计了不同的驱动实现,这样的驱动实现是把不同厂家的同类硬件驱动中相同的部分抽出来自己实现,再把不同的部分留出接口给具体的驱动开发工程师来实现,从而实现驱动的标准化。内核中也设计了一些统一管理系统资源的体系,这些体系让内核能够对各个驱动之间使用的资源进行统一协调和分配,从而保证系统的稳定健康运行。通过以上描述可以看出,内核的驱动框架就是它提供的一些特定的接口函数和一些特定的数据结构。Linux的驱动集成在内核中,由内核统一管理。Linux内核使用platform平台总线机制来进行驱动的管理与注册,platform平台总线是一条虚拟的总线,并不是一个物理的总线。platform平台总线最重要的两个结构体是platform_device和platform_driver。这两个结构体分别管理驱动设备和驱动总线,platform_device结构体中包括设备名称、设备ID、资源结构个数、设备资源等信息,其中的resource结构体存入了最为重要的设备资源信息,包括资源起始地址、资源结束地址、资源类型等;platform_driver结构体中包括注册平台设备时被调用的设备探测函数、注销平台设备时被调用的删除函数、设备驱动结构体、该设备驱动支持的设备的列表等。Linux的bus-driver-device框架是目前普遍使用的驱动框架。Linu ...
【技术保护点】
1.一种基于微内核的硬件设备驱动系统,其特征在于,包括底层驱动层、设备抽象层、一致性API层、远程过程调用层和设备管理器;/n所述底层驱动层用于实现对设备的各种操作;/n所述设备抽象层用于提供底层驱动操作的封装接口;/n所述一致性API层用于对设备抽象层的封装接口进行二次封装,提供用户接口;/n所述远程过程调用层用于进行设备抽象层的封装接口和一致性API层的用户接口之间的远程过程调用通信,且通过客户端和服务端之间的远程过程调用通信实现用户对设备驱动的调用;/n所述设备管理器用于管理设备信息、管理设备运行信息和管理设备驱动。/n
【技术特征摘要】
1.一种基于微内核的硬件设备驱动系统,其特征在于,包括底层驱动层、设备抽象层、一致性API层、远程过程调用层和设备管理器;
所述底层驱动层用于实现对设备的各种操作;
所述设备抽象层用于提供底层驱动操作的封装接口;
所述一致性API层用于对设备抽象层的封装接口进行二次封装,提供用户接口;
所述远程过程调用层用于进行设备抽象层的封装接口和一致性API层的用户接口之间的远程过程调用通信,且通过客户端和服务端之间的远程过程调用通信实现用户对设备驱动的调用;
所述设备管理器用于管理设备信息、管理设备运行信息和管理设备驱动。
2.根据权利要求1所述的基于微内核的硬件设备驱动系统,其特征在于,所述设备抽象层的封装接口包括驱动初始化接口、设备驱动绑定接口、设备驱动解绑接口、打开设备接口、关闭设备接口、读写传输接口、写接口、读接口和控制接口;
所述一致性API层的用户接口包括设备绑定驱动接口、设备解绑驱动接口、打开设备接口、关闭设备接口、读写设备接口、写设备接口、读设备接口和设备控制接口。
3.根据权利要求1所述的基于微内核的硬件设备驱动系统,其特征在于,所述设备管理器中,所述设备信息用于对硬件设备驱动系统管理设备进行描述;所述设备运行信息用于管理设备的预初始化、生命周期和设备维护;所述设备驱动包括驱动加载、驱动注册、驱动注销和驱动卸载;
所述驱动加载用于加载设备的驱动ELF文件;所述驱动注册用于关联驱动和设备;所述驱动注销用于取消驱动和设备的关联;所述驱动卸载用于从内存中移除ELF进程;
所述驱动加载包括静态加载和动态加载;所述静态加载用于在硬件设备驱动系统启动过程中调用驱动入口函数加载驱动运行;所述动态加载用于在硬件设备驱动系统启动后进行驱动加载。
4.一种基于微内核的硬件设备驱动方法,其特征在于,所述基于微内核的硬件设备驱动方法应用于如权利要求1-3任一所述的基于微内核的硬件设备驱动系统,包括以下步骤:
S1:调用并初始化设备驱动;
S2:将设备分类,并利用设备管理器启动设备驱动和设备;
S3:基于启动后的设备驱动和设备,进行设备注册和设备驱动注册;
S4:调用不同驱动进程中的设备驱动;
S5:在调用过程中,判断是否存在设备和设备驱动断开连接,若是则进行驱动注销,否则继续不同驱动进程间的设备驱动调用。
5.根据权利要求4所述的基于微内核的硬件设备驱动方法,其特征在于,所述步骤S1中,调用设备驱动的具体方法为:从设备驱动中获取对应设备的设备实例,并对设备实例进行读写操作,完成调用;
初始化设备驱动包括初始化总线类设备驱动和初始化具体设备驱动;其中,初始化总线类设备驱动的具体方法为:启动总线类设备驱动并向设备管理器发起驱动注册,将适配的设备和总线类设备驱动关联,并利用设备管理器通知总线类设备驱动进行初始化;
初始化具体设备驱动的具体方法为:启动具体设备驱动并向设备管理器发起驱动注册,将适配的设备和具体设备驱动关联,并利用设备管理器通知具体设备驱动进行初始化。
...
【专利技术属性】
技术研发人员:张昆,廖元垲,王大维,
申请(专利权)人:成都菁蓉联创科技有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。