CN116521240A - 一种设备驱动管理方法 - Google Patents
一种设备驱动管理方法 Download PDFInfo
- Publication number
- CN116521240A CN116521240A CN202310335463.2A CN202310335463A CN116521240A CN 116521240 A CN116521240 A CN 116521240A CN 202310335463 A CN202310335463 A CN 202310335463A CN 116521240 A CN116521240 A CN 116521240A
- Authority
- CN
- China
- Prior art keywords
- equipment
- bus
- registered
- peripheral
- management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 73
- 230000002093 peripheral effect Effects 0.000 claims abstract description 94
- 238000000034 method Methods 0.000 description 9
- 239000000725 suspension Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种设备驱动管理方法,包括以下步骤:系统上电,初始化总线管理资源;将外围设备按设备总线类型分别注册至对应总线的设备管理链表上,生成设备文件访问路径;将驱动程序按驱动总线类型分别注册至对应总线的驱动管理链表上;外围设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化。本发明解决了现有的嵌入式实时操作系统不支持对外围设备及驱动程序进行动态注册及管理的技术问题。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种设备驱动管理方法。
背景技术
在Linux系统中,支持通过总线对设备及驱动程序进行动态管理,应用程序可通过统一的open、read、write接口来操作设备文件,使得应用程序开发更简单,程序兼容性更好,易于移植。而在使用MCU的嵌入式系统中,由于硬件资源限制、兼容性等原因,无法将Linux中的管理代码移植到实时操作系统中进行使用,而且一般情况下使用MCU搭载实时操作系统的电子系统一般为专用的,系统中的外围设备和驱动程序都是相对固定的,应用程序与底层驱动程序是直接耦合且绑定的,这使得其余的应用程序难以对同一个设备进行分时复用,开发的程序也难以移植。目前,大部分实时操作系统不支持对系统中的设备及驱动程序进行动态管理和“文件化”操作,应用程序与驱动程序直接耦合,操作接口不统一,多个程序复用设备时操作复杂,程序编写难度增大且不利于后续移植;少数系统仅通过创建对象对单个设备使用的驱动程序进行文件接口封装和保定,不支持设备和驱动程序按类型动态管理,设备和驱动程序不支持总线动态管理,不利于同种设备及驱动程序的统一管理,不支持设备与驱动程序动态加载。因此,本发明亟待提出一种设备驱动管理方法,解决现有的嵌入式实时操作系统不支持对外围设备及驱动程序进行动态注册及管理的技术问题。
发明内容
本发明的主要目的是提供一种设备驱动管理方法,旨在解决现有的嵌入式实时操作系统不支持对外围设备及驱动程序进行动态注册及管理的技术问题。
为实现上述目的,本发明提供一种设备驱动管理方法,包括以下步骤:
S1、系统上电,初始化总线管理资源;
S2、将外围设备按设备总线类型分别注册至对应总线的设备管理链表上,生成设备文件访问路径;
S3、将驱动程序按驱动总线类型分别注册至对应总线的驱动管理链表上;
S4、外围设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化。
优选方案之一,所述步骤S1之后还包括:根据设备总线类型注册非虚拟总线和/或虚拟总线。
优选方案之一,所述步骤S1之后还包括:根据驱动总线类型注册非虚拟总线和/或虚拟总线。
优选方案之一,所述步骤S2,具体为:将外围设备按设备总线类型分别注册至对应非虚拟总线和/或虚拟总线的设备管理链表上,生成设备文件访问路径。
优选方案之一,所述步骤S3,具体为:将驱动程序按驱动总线类型分别注册至对应非虚拟总线和/或虚拟总线的驱动管理链表上。
优选方案之一,所述步骤S4中设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化,包括:当外围设备注册时,检测并匹配非虚拟总线和/或虚拟总线上已注册的驱动程序,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表。
优选方案之一,所述步骤S4中设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化,包括:当驱动程序注册时,检测并匹配非虚拟总线和/或虚拟总线上已注册的设备文件,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表。
优选方案之一,所述步骤S4之后,还包括:完成外围设备初始化后,通过open接口打开外围设备,获取外围设备的设备文件操作句柄,从而通过读写接口对外围设备进行操作。
优选方案之一,所述步骤S4之后,还包括:完成外围设备初始化后,若无需操作,则可通过close接口释放外围设备,同时遍历设备管理链表,从而通过接口对外围设备进行挂起或恢复操作。
优选方案之一,所述步骤S4之后,还包括:若不再使用,则可注销非虚拟总线和/或虚拟总线上的外围设备或驱动程序,注销时,对已完成匹配的外围设备和驱动程序进行解绑,并删除设备管理链表上的外围设备或驱动管理链表上的驱动程序。
本发明的上述技术方案中,该设备驱动管理方法包括以下步骤系统上电,初始化总线管理资源;将外围设备按设备总线类型分别注册至对应总线的设备管理链表上,生成设备文件访问路径;将驱动程序按驱动总线类型分别注册至对应总线的驱动管理链表上;外围设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化。本发明解决了现有的嵌入式实时操作系统不支持对外围设备及驱动程序进行动态注册及管理的技术问题。
在本发明中,通过总线对系统中的外围设备及驱动程序进行动态统一管理,实现中外围设备及驱动程序的动态注册和注销,同类型的外围设备及驱动程序挂载到同一总线上,从而可通过统一的文件访问接口对设备进行操作,同时支持对设备进行挂起和回复等低功耗管理操作。
在本发明中,将外围设备虚拟成设备文件,通过文件路肩可获得设备文件句柄,并可通过读写接口对设备进行操作。
附图说明
为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例一种设备驱动管理方法的示意图。
本发明目的的实现、功能特点及优点将结合实施方式,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
并且,本发明各个实施方式之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参见图1,根据本发明的一方面,本发明提供一种设备驱动管理方法,包括以下步骤:
S1、系统上电,初始化总线管理资源;
S2、将外围设备按设备总线类型分别注册至对应总线的设备管理链表上,生成设备文件访问路径;
S3、将驱动程序按驱动总线类型分别注册至对应总线的驱动管理链表上;
S4、外围设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化。
具体地,在本实施例中,所述步骤S1之后还包括:根据设备总线类型注册非虚拟总线和/或虚拟总线;根据驱动总线类型注册非虚拟总线和/或虚拟总线。不同的所述非虚拟总线和虚拟总线设有不同的总线协议,满足某一总线协议的外围设备则划分为一类,每一类设备均设有对应的驱动程序;所述外围设备为系统中除CPU以外的其他设备的统称,本发明不进行具体限定;所述虚拟总线并不限定具体的总线类型,可以是任意类型的总线;所述非虚拟总线包括I2C总线、SPI总线等,本发明不进行具体限定,具体可根据外围设备的驱动类型对应设置与之匹配的总线。
具体地,在本实施例中,所述步骤S2,具体为:将外围设备按设备总线类型分别注册至对应非虚拟总线和/或虚拟总线的设备管理链表上,生成设备文件访问路径,将已完成注册的外围设备,对应匹配非虚拟总线和/或虚拟总线上的驱动程序,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表;所述驱动程序为外围设备驱动程序,是一种可使CPU和外围设备进行相互通信的驱动程序,相当于硬件接口,操作系统只有通过该接口才能控制硬件设备的工作,假如某外围设备的驱动程序未能正确注册,便不能正常工作,因此,驱动程序常比作硬件与系统之间的桥梁。
具体地,在本实施例中,所述步骤S3,具体为:将驱动程序按驱动总线类型分别注册至对应非虚拟总线和/或虚拟总线的驱动管理链表上,将已完成注册的驱动程序,对应匹配非虚拟总线和/或虚拟总线上的设备文件,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表。
具体地,在本实施例中,所述步骤S4之后,还包括:完成外围设备初始化后,通过open接口打开外围设备,获取外围设备的设备文件操作句柄,从而通过读写接口对外围设备进行操作;通过将外围设备虚拟成设备文件,通过文件路径可获得设备文件操作句柄,从而可通过读写接口对外围设备进行操作。
具体地,在本实施例中,所述步骤S4之后,还包括:完成外围设备初始化后,若无需操作,则可通过close接口释放外围设备,同时遍历设备管理链表,从而通过接口对外围设备进行挂起或恢复操作,具体地,可通过suspend接口和resume接口对外围设备进行挂起或恢复操作,从而满足低功耗管理需求。
具体地,在本实施例中,所述步骤S4之后,还包括:若不再使用,则可注销非虚拟总线和/或虚拟总线上的外围设备或驱动程序,注销时,对已完成匹配的外围设备和驱动程序进行解绑,并删除设备管理链表上的外围设备或驱动管理链表上的驱动程序;通过实现系统中外围设备及驱动程序的动态注册和注销,同类型的外围设备及驱动程序挂载到同一总线上,且可通过统一的文件访问接口对设备进行操作,同时支持外围设备挂起和恢复等低功耗管理的操作。
具体地,在本实施例中,将所述设备管理驱动方法具体应用在嵌入式实时操作系统中,可实现低压智能开关对系统中外围设备及驱动程序进行动态注册管理,所述嵌入式实时操作系统包括MCU模块、计量模块、开关模块和USB模块,所述MCU模块支持SPI、USB等接口,所述嵌入式实时操作系统的应用程序运行在RTOS上,所述USB模块用于系统升级、日志导出等使用;所述USB模块通过USB接口与MCU模块连接,所述开关模块通过GPIO接口与MCU模块连接,所述计量模块通过SPI接口与MCU模块连接;在系统上电后,初始化总线管理资源及平台总线,将所述计量模块、开关模块以设备注册方式注册到非虚拟总线上,USB模块在插入U盘时进行注册,在将设备对应的驱动程序一一注册到虚拟总线上,驱动程序注册过程中会去匹配同类型的外围设备,匹配成功将进行初始化核绑定,应用程序通过open接口传入设备文件路径,获得设备的操作句柄,再通过read接口、write接口传入设备文件句柄进行读取或写入操作;所述USB模块可采用HC32F460JETA或其他的MCU芯片,计量模块可采用RN7032或其他计量芯片,开关模块可采用继电器或其他的控制设备,USB模块可采用NB-IOT模块、4G模块、GPRS模块等具备数据传输能力的模块;本发明实现了外围设备与驱动程序的解耦,以及应用程序与设备驱动的解耦,从而使程序系统内部程序运行更加安全;支持应用程序对不同外围设备通过统一接口进行访问操作,程序编写更为简单,易于移植;且支持对外围设备访问进行互斥保护,既保证了设备安全,又方便不同APP程序之间分时复用。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围。
Claims (10)
1.一种设备驱动管理方法,其特征在于,包括以下步骤:
S1、系统上电,初始化总线管理资源;
S2、将外围设备按设备总线类型分别注册至对应总线的设备管理链表上,生成设备文件访问路径;
S3、将驱动程序按驱动总线类型分别注册至对应总线的驱动管理链表上;
S4、外围设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化。
2.根据权利要求1所述的一种设备驱动管理方法,其特征在于,所述步骤S1之后还包括:根据设备总线类型注册非虚拟总线和/或虚拟总线。
3.根据权利要求1-2任意一项所述的一种设备驱动管理方法,其特征在于,所述步骤S1之后还包括:根据驱动总线类型注册非虚拟总线和/或虚拟总线。
4.根据权利要求2所述的一种设备驱动管理方法,其特征在于,所述步骤S2,具体为:将外围设备按设备总线类型分别注册至对应非虚拟总线和/或虚拟总线的设备管理链表上,生成设备文件访问路径。
5.根据权利要求3所述的一种设备驱动管理方法,其特征在于,所述步骤S3,具体为:将驱动程序按驱动总线类型分别注册至对应非虚拟总线和/或虚拟总线的驱动管理链表上。
6.根据权利要求2所述的一种设备驱动管理方法,其特征在于,所述步骤S4中设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化,包括:当外围设备注册时,检测并匹配非虚拟总线和/或虚拟总线上已注册的驱动程序,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表。
7.根据权利要求3所述的一种设备驱动管理方法,其特征在于,所述步骤S4中设备或驱动程序注册时,检测并匹配对应总线上已注册的驱动程序或设备文件,完成已注册外围设备的初始化,包括:当驱动程序注册时,检测并匹配非虚拟总线和/或虚拟总线上已注册的设备文件,若匹配成功,则进行绑定,完成已注册外围设备的初始化,将外围设备添加至驱动管理链表。
8.根据权利要求1-2任意一项所述的一种设备驱动管理方法,其特征在于,所述步骤S4之后,还包括:完成外围设备初始化后,通过open接口打开外围设备,获取外围设备的设备文件操作句柄,从而通过读写接口对外围设备进行操作。
9.根据权利要求1-2任意一项所述的一种设备驱动管理方法,其特征在于,所述步骤S4之后,还包括:完成外围设备初始化后,若无需操作,则可通过close接口释放外围设备,同时遍历设备管理链表,从而通过接口对外围设备进行挂起或恢复操作。
10.根据权利要求1-2任意一项所述的一种设备驱动管理方法,其特征在于,所述步骤S4之后,还包括:若不再使用,则可注销非虚拟总线和/或虚拟总线上的外围设备或驱动程序,注销时,对已完成匹配的外围设备和驱动程序进行解绑,并删除设备管理链表上的外围设备或驱动管理链表上的驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310335463.2A CN116521240A (zh) | 2023-03-31 | 2023-03-31 | 一种设备驱动管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310335463.2A CN116521240A (zh) | 2023-03-31 | 2023-03-31 | 一种设备驱动管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521240A true CN116521240A (zh) | 2023-08-01 |
Family
ID=87398435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310335463.2A Pending CN116521240A (zh) | 2023-03-31 | 2023-03-31 | 一种设备驱动管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521240A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407123A (zh) * | 2023-12-12 | 2024-01-16 | 麒麟软件有限公司 | 基于多系统隔离的usb设备虚拟共享系统 |
-
2023
- 2023-03-31 CN CN202310335463.2A patent/CN116521240A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407123A (zh) * | 2023-12-12 | 2024-01-16 | 麒麟软件有限公司 | 基于多系统隔离的usb设备虚拟共享系统 |
CN117407123B (zh) * | 2023-12-12 | 2024-04-05 | 麒麟软件有限公司 | 基于多系统隔离的usb设备虚拟共享系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445258B1 (en) | Method for creation of device drivers and device objects for peripheral devices | |
US9904527B1 (en) | Optimizing API implementer programs using fine-grained code analysis | |
US9880867B2 (en) | Method and subsystem for data exchange between a guest operating system and a virtualization layer | |
CN1318970C (zh) | 对多体系组件软件的系统管理模式加载程序和执行机制 | |
ES2336892T3 (es) | Sustitucion logica del control del procesador en un entorno informatico emulado. | |
US7747848B1 (en) | Updating the system management information of a computer system | |
US6751737B1 (en) | Multiple protected mode execution environments using multiple register sets and meta-protected instructions | |
US7363480B1 (en) | Method, system, and computer-readable medium for updating the firmware of a computing device via a communications network | |
CN106030548B (zh) | 用于可信计算的多节点中枢 | |
US20120102491A1 (en) | Virtual function boot in single-root and multi-root i/o virtualization environments | |
US20090089815A1 (en) | Method and system for performing i/o operations using a hypervisor | |
KR101935290B1 (ko) | 플랫폼-특유의 피쳐들을 선택적으로 인에이블하기 | |
CN116521240A (zh) | 一种设备驱动管理方法 | |
US9489211B2 (en) | Exposing memory-mapped IO devices to drivers through firmware | |
JP4157771B2 (ja) | 組込み制御環境におけるリモート入出力機能への効率的なアクセスのための方法およびシステム | |
WO2007024444A1 (en) | Method and apparatus for supporting universal serial bus devices in a virtualized environment | |
US20060005003A1 (en) | Method for guest operating system integrity validation | |
US7231512B2 (en) | Technique for reconstituting a pre-boot firmware environment after launch of an operating system | |
CN111213127A (zh) | 用于直接分配的设备的虚拟化操作 | |
US7484083B1 (en) | Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment | |
CN114116024B (zh) | 面向嵌入式操作系统的外设驱动处理方法、装置及系统 | |
CN103842980A (zh) | 协议中立织物 | |
CN114238236A (zh) | 共享文件的访问方法、电子设备及计算机可读存储介质 | |
CN113377566A (zh) | 一种基于uefi的服务器启动方法、装置及存储介质 | |
CN116302141B (zh) | 串口切换方法、芯片及串口切换系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |