一种Linux操作系统的设备驱动控制方法和装置制造方法及图纸

技术编号:8190928 阅读:181 留言:0更新日期:2013-01-10 01:50
本申请提供了一种Linux操作系统的设备驱动控制方法和装置,其中,所述方法包括:注册总线的操作方法集;注册设备的操作方法集,所述设备的操作方法集包括,所述总线上挂接的各个设备对应的操作方法集;生成数据处理请求,所述数据处理请求中包括需访问设备的信息;获取所述需访问设备的内部控制信息和接口总线参数;根据所述接口总线参数调用所述需访问设备的设备操作方法集;根据所述接口总线参数调用所述需访问设备的总线操作方法集;采用所述需访问设备的内部控制信息,接口总线参数,以及,对应的设备操作方法集和总线操作方法集,处理所述数据处理请求,返回处理结果。本申请可以提高Linux操作系统的设备驱动可维护性、可调试性以及稳定性。

【技术实现步骤摘要】

本申请涉及Linux操作系统的
,特别是涉及ー种Linux操作系统的设备驱动控制方法,以及,ー种Linux操作系统的设备驱动控制装置。
技术介绍
Linux操作系统,特别是其嵌入式系统,由于其源代码的可开发性、成本低廉、系统稳定可靠以及可裁剪等特点,如今成为主流的嵌入式操作系统之一,已被广泛应用于エ业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。Linux操作系统的应用离不开处理器硬件平台,大量、复杂的需求带来了各种各样处理器外围芯片设备的广泛应用,这样不可避免地需要开发这些外围芯片的驱动。虽然Linux操作系统本身支持ー些常用的、标准的芯片设备,如常用的网ロ芯片、串ロ芯片等,但是所能支持的外围芯片种类毕竟是有限的,绝大多数的专用芯片的驱动程序是需要在Linux操作系统的基础上进行开发的。由于Linux操作系统,特别是嵌入式Linux操作系统,大量应用的时间还不是很长,目前基于这个系统的设备驱动开发还不是很成熟,设计和开发多是为了满足小規模系统或短期产品,对于大規模系统或者长期产品来说,相关继承性和移植性较差,不能满足长期发展需要。參照图1,其示出了现有技术中Linux操作系统的设备驱动开发的逻辑结构图,一般采用总线+设备+设备应用驱动架构,需要说明的是,其中所指的“设备”是指处理器外围芯片。现有技术中,在驱动开发时将设备和设备的接ロ总线做为ー个整体进行开发,且都是在Linux操作系统的核心层下进行开发。采用这种现有的Linux操作系统的设备驱动开发的逻辑结构,同一总线如果挂接多个设备,并且多个设备同时访问的话,总线互斥访问很难做到;同时现有技术把设备驱动开发的大部分工作都放在了 Linux核心层,使核心层功能越做越大,调试和维护也将越来越困难(核心层调试和定位很不方便),带来的潜在风险或隐患也越来越多;另一方面,设备和设备接ロ总线做为ー个整体来开发,这样会带来可移植性和可扩展性很差,比如,相同的总线挂接了另ー种设备,需要重新开发ー套设备驱动,同样,相同的设备挂接在不同的总线,也需要重新开发ー套设备驱动。再者,在传统的Linux系统的设备驱动ホ吴型中,为了兼顾系统性能和I/O指令的特权操作要求,设备驱动往往与操作系统内核运行在同一个地址空间,具有内核的所有权限(例如,可以直接访问所有物理内存、任意访问和操作内核其他层等)。一般而言,操作系统对运行在内核态的代码是无条件信任的,因此,设备驱动内ー个小小的bug,也将会导致一个系统范围内的故障。另外,内核态驱动编程要遵循严格的限制,驱动开发、调试以及测试的工具匮乏,很难保证Linux系统的设备驱动的可靠性。综上,现有Linux操作系统的设备驱动主要存在如下缺陷I)可维护性、可调试性以及稳定性较差。由于现有技术将大部分设备驱动开发工作放在核心层实现,将不可避免地由于调试手段缺乏带来调试不方便、异常定位困难,且很容易造成Linux操作系统的崩溃。2)可扩展性以及可移植性较差。由于现有技术将设备和设备接ロ总线做为ー个整体开发,所以可扩展性和可移植性很差,将不利于系统软件的长期发展和建设。3)同一总线多个设备同时访问互斥保护很难实现如果同一总线多个设备同时被访问,软件的互斥保护实现困难。因此,目前本领域技术人员迫切需要解决的ー个技术问题为,创造性地提出ー种Linux操作系统的设备驱动控制机制,用以提高Linux操作系统的设备驱动可维护性、可调·试性以及稳定性,使Linux操作系统的设备驱动具有可扩展性以及可移植性,同时保证多个设备同时访问时的总线互斥访问。
技术实现思路
本申请所要解决的技术问题是提供ー种Linux操作系统的设备驱动控制方法,用以提高Linux操作系统的设备驱动可维护性、可调试性以及稳定性,使Linux操作系统的设备驱动具有可扩展性以及可移植性,同时保证多个设备同时访问时的总线互斥访问。相应的,本申请还提供了ー种Linux操作系统的设备驱动控制装置,用以保证上述方法的实现及应用。为了解决上述问题,本申请公开了ー种Linux操作系统的设备驱动控制方法,包括注册总线的操作方法集;注册设备的操作方法集,所述设备的操作方法集包括,所述总线上挂接的各个设备对应的操作方法集;生成数据处理请求,所述数据处理请求中包括需访问设备的信息;获取所述需访问设备的内部控制信息和接ロ总线參数;根据所述接ロ总线參数调用所述需访问设备的设备操作方法集;根据所述接ロ总线參数调用所述需访问设备的总线操作方法集;采用所述需访问设备的内部控制信息,接ロ总线參数,以及,对应的设备操作方法集和总线操作方法集,处理所述数据处理请求,返回处理結果。优选地,所述注册总线的操作方法集的步骤包括将各个总线控制器的操作方法集注册到总线注册接口中;所述总线控制器对应各条总线设置,其中,所述总线控制器的操作方法集包括总线控制器的标识,总线的读操作方法,以及,总线的写操作方法;所述注册设备的操作方法集的步骤包括将挂接在所述总线上的各个设备的操作方法集注册到设备注册接口中;其中,所述设备的操作方法集包括设备所挂接的总线控制器的标识,设备的读操作方法,以及,设备的写操作方法。优选地,当存在多条同类总线时,所述总线控制器的操作方法集还包括次总线设备的个数,以及,总线的初始化操作方法;所述设备的操作方法集还包括设备所挂接的次总线设备的标识,以及,设备的初始化操作方法。优选地,所述根据接ロ总线參数调用所述需访问设备的设备操作方法集的步骤包括 调用所述设备注册接ロ ;从所述设备操作方法集中查找所述接ロ总线參数对应的设备操作方法集;所述根据接ロ总线參数调用所述需访问设备的总线操作方法集的步骤包括调用所述总线注册接ロ ;从所述总线操作方法集中查找所述接ロ总线參数对应的总线控制器的操作方法集。优选地,所述访问设备的接ロ总线參数包括,总线控制器的标识,设备所挂接的次总线设备的标识,设备的总线地址,以及,总线时序要求;所述访问设备的内部控制信息包括设备内部寄存器的信息。优选地,所述Linux操作系统的设备驱动包括内核态的总线级访问层、用户态的设备总线适配层、用户态的设备管理层以及用户态的产品应用层的四层结构;所述内核态为Linux操作系统的内核态,所述用户态为Linux操作系统的用户态;所述注册总线的操作方法集的步骤,在内核态总线级访问层执行;所述注册设备的操作方法集的步骤,在用户态总线设备适配层执行;所述生成数据处理请求的步骤,在用户态产品应用层执行;所述获取需访问设备的内部控制信息和接ロ总线參数的步骤,在用户态设备管理层执行;所述根据接ロ总线參数调用所述需访问设备的设备操作方法集的步骤,在用户态设备总线适配层执行;所述根据接ロ总线參数调用所述需访问设备的总线操作方法集的步骤,在内核态总线级访问层执行;所述采用需访问设备的内部控制信息,接ロ总线參数,以及,对应的设备操作方法集和总线操作方法集,处理所述数据处理请求,返回处理结果的步骤,在内核态总线级访问层执行。本申请还公开了ー种Linux操作系统的设备驱动控制装置,包括总线级访问模块、设备总线适配模块、设备管理模块以及产品应用模块,其中,所述总线级访问模块位于Linux操作系统的内核态,所述设备总线适配模块、设备管理本文档来自技高网
...

【技术保护点】
一种Linux操作系统的设备驱动控制方法,其特征在于,包括:注册总线的操作方法集;注册设备的操作方法集,所述设备的操作方法集包括,所述总线上挂接的各个设备对应的操作方法集;生成数据处理请求,所述数据处理请求中包括需访问设备的信息;获取所述需访问设备的内部控制信息和接口总线参数;根据所述接口总线参数调用所述需访问设备的设备操作方法集;根据所述接口总线参数调用所述需访问设备的总线操作方法集;采用所述需访问设备的内部控制信息,接口总线参数,以及,对应的设备操作方法集和总线操作方法集,处理所述数据处理请求,返回处理结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:韩毅宏
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1