CN110837446A - 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备 - Google Patents

应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备 Download PDF

Info

Publication number
CN110837446A
CN110837446A CN201810933677.9A CN201810933677A CN110837446A CN 110837446 A CN110837446 A CN 110837446A CN 201810933677 A CN201810933677 A CN 201810933677A CN 110837446 A CN110837446 A CN 110837446A
Authority
CN
China
Prior art keywords
driver
registration
api
hardware
drive
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
Application number
CN201810933677.9A
Other languages
English (en)
Inventor
郭晖
张楠赓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canaan Bright Sight Co Ltd
Original Assignee
Canaan Creative Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canaan Creative Co Ltd filed Critical Canaan Creative Co Ltd
Priority to CN201810933677.9A priority Critical patent/CN110837446A/zh
Publication of CN110837446A publication Critical patent/CN110837446A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了应用于嵌入式***的设备管理方法、装置及介质以及嵌入式设备。本申请的设备管理方法至少包括:获取用于设备的硬件驱动注册的注册信息;根据注册信息,实例化相应的驱动,以便驱动进行注册,其中,驱动包含对强类型的API的实现,强类型的API根据***适应于驱动而预定义的API得到;在驱动注册后,若接收到用户程序针对驱动的交互请求,则根据交互请求携带的驱动注册的标识信息,查找到驱动,以便用户程序通过调用驱动包含的强类型的API来操作硬件。本申请的方案有助于提高嵌入式***下的程序开发效率,降低程序调试难度,减少程序错误。

Description

应用于嵌入式***的设备管理方法及装置、介质以及嵌入式 设备
技术领域
本申请涉及嵌入式技术领域,尤其涉及应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备。
背景技术
嵌入式***是一种嵌入受控器件内部,为特定应用而设计的专用计算机***,与个人计算机这样的通用计算机***不同,嵌入式***通常执行的是带有特定要求的预定义的任务。由于嵌入式***通常只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。
与此同时,嵌入式***也存在明显的不足之处,尤其资源方面限制较大。在现有技术中,考虑到嵌入式***资源相对有限,研发人员在进行程序设计时也会适应于这种情况采取措施,其中一项措施是关于用户程序对驱动的操作方式,具体地,目前在嵌入式***的场景下,经常使用户程序直接操作设备的硬件驱动,或者通过控制命令和字节流与驱动进行交互。
但是,现有技术的方案缺乏安全驱动、用户隔离和同步机制,而且编程接口缺乏类型检查,使得程序开发效率降低,难以调试,容易出现程序错误。
发明内容
本申请实施例提供应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备,用以解决现有技术中的如下技术问题:现有技术的方案缺乏安全驱动、用户隔离和同步机制,而且编程接口缺乏类型检查,使得程序开发效率降低,难以调试,容易产生程序错误。
本申请实施例采用下述技术方案:
一种应用于嵌入式***的设备管理方法,包括:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的应用程序编程接口(Application Programming Interface,API)的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
可选地,所述获取用于设备的硬件驱动注册的注册信息,具体包括:
获取板级支持包提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;
获取设备的指定硬件的硬件配置信息;
根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
可选地,在所述获取用于所述设备的硬件驱动注册的注册信息前,所述方法还包括:
预定义多个驱动类别;
分别为各所述驱动类别预定义API,以供属于对应的驱动类别的驱动实现。
可选地,在所述驱动进行注册的过程中,所述方法还包括:
确定所述驱动在所述多个驱动类别中所属的驱动类别。
可选地,所述交互请求中携带有所述驱动进行注册时至少注册的其标识信息;
所述根据所述交互请求,查找到所述驱动,具体包括:
根据所述交互请求中携带的所述标识信息,查找到对应的所述驱动。
可选地,所述驱动进行注册,具体包括:
所述驱动在内核对象管理***中进行注册;
在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,所述方法还包括:
所述用户程序通过所述内核对象管理***,打开所述驱动。
可选地,所述查找到所述驱动,还包括:
校验所述驱动所属的驱动类别;
根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API。
可选地,在多个不同的驱动注册后,所述方法还包括:
对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
一种应用于嵌入式***的设备管理装置,包括:
信息获取模块,获取用于设备的硬件驱动注册的注册信息;
注册支持模块,根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
交互处理模块,在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
可选地,所述信息获取模块获取用于设备的硬件驱动注册的注册信息,具体包括:
所述信息获取模块获取板级支持包提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;
获取设备的指定硬件的硬件配置信息;
根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
可选地,所述装置还包括:
预处理模块,在所述信息获取模块获取用于所述设备的硬件驱动注册的注册信息前,执行:
预定义多个驱动类别;
分别为各所述驱动类别预定义API,以供属于对应的驱动类别的驱动实现。
可选地,所述装置还包括:
驱动类别确定模块,在所述驱动进行注册的过程中,执行:
确定所述驱动在所述多个驱动类别中所属的驱动类别。
可选地,所述驱动进行注册,具体包括:
所述驱动在内核对象管理***中进行注册;
在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,所述用户程序还执行:
通过所述内核对象管理***,打开所述驱动。
可选地,所述交互处理模块查找到所述驱动,还包括:
所述交互处理模块校验所述驱动所属的驱动类别;
根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API。
可选地,所述装置还包括:
并行处理模块,在多个不同的驱动注册后,执行:
对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
一种嵌入式设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
一种应用于嵌入式***的设备管理非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:有助于提高嵌入式***下的程序开发效率,降低程序调试难度,降低程序错误的可能性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请的一些实施例提供的一种应用于嵌入式***的设备管理方法的流程示意图;
图2为本申请的一些实施例提供的一种实际应用场景下,图1的方法的一种具体实施方式的原理示意图;
图3为本申请的一些实施例提供的对应于图1的一种应用于嵌入式***的设备管理装置的结构示意图;
图4为本申请的一些实施例提供的对应于图1的一种嵌入式设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请的一些实施例提供的一种应用于嵌入式***的设备管理方法的流程示意图。在该流程中,从设备角度而言,执行主体可以是嵌入式设备,比如,手机、内置于家用电器或者工业设备中的控制设备等,或者能够连接嵌入式设备并辅助其工作的扩展设备等,以下主要以嵌入式设备为例进行说明;从程序角度而言,执行主体可以是嵌入式设备上的操作***,或者操作***以外的扩展程序等。
图1中的流程可以包括以下步骤:
S102:获取用于设备的硬件驱动注册的注册信息。
在本申请的一些实施例中,设备的硬件可以有多种类别,相应地,硬件的驱动也可以有多种类别,这里对类别如何划分不做具体限定,可以按照访问方式、功能等维度进行划分。比如将设备的各硬件划分为需要以字符串行方式访问的硬件、能够以块为单位操作的硬件、提供网络功能的硬件等。
在本申请的一些实施例中,基于注册信息,硬件的驱动进行注册后,该硬件能够在嵌入式***中正常使用,位于上层的用户程序则能够通过与该驱动便利地操作该硬件,实现应用功能。不同的硬件可以分别对应不同的注册信息,或者,不同类型的硬件可以分别对应不同的注册信息,同一类型的硬件也可以对应相同的注册信息。
S104:根据所述注册信息,实例化相应的驱动,以便所述驱动(具体指实例化得到的驱动实例)进行注册,其中,所述强类型的API根据***适应于所述驱动而预定义的API得到。
在本申请的一些实施例中,驱动可以基于自己的注册信息,以自己的标识信息(比如,名字、适用的硬件信息等)在操作***中进行注册,若不存在操作***,也可以在相应的扩展程序中进行注册。步骤S104中的***可以指该操作***或者该扩展程序中的至少部分模块。
***适应于该驱动而预定义的API可以是非强类型的API,也可以直接是步骤S104中的强类型的API。
不同的硬件支持的操作可能不同,常见的操作比如包括,写操作、读操作、安装操作、打开文件操作、关闭文件操作等类型的操作,需要说明的是,这里对每类操作的粒度大小和划分依据并不做限制,可以根据实际需要预先划分各类操作。目前,操作***可以为每类操作分别预定义用于实现该类操作的统一的API,该统一的API不是强类型的,而且也不会对不同的驱动进行区分,而不同的驱动在实现该统一的API时,所采用的参数及其数据类型可能不同,则当用户程序调用该统一的API可能传参错误,***也不会进行参数及其数据类型检查,从而容易导致程序错误。而在本申请的方案中,针对同一类操作,会对不同的驱动或者不同类别的驱动进行区分,以供用户程序精确调用强类型的API,而可以不直接调用上述的非强类型的统一的API,从而,有助于用户程序更精确地与驱动进行交互,***也能够更精确地管理驱动及其对应的硬件,有助于实现安全驱动、用户隔离和同步机制。
S106:在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
在本申请的一些实施例中,交互请求中可以携带其针对的驱动所注册的至少部分信息,根据该至少部分信息,能够精确查找到该驱动。该至少部分信息并不限于标识信息,也可以是用于定位该驱动的其他信息。
通过图1的方法,有助于提高嵌入式***下的程序开发效率,降低程序调试难度,降低程序出错的可能性。
基于图1的方法,本申请的一些实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请的一些实施例中,注册信息可以由嵌入式***本身提供,如此有助于保证兼容性。比如,可以由板级支持包(Board Support Package,BSP)提供,BSP是介于硬件和操作***中驱动层之间的一层,一般认为其属于操作***一部分,主要是实现对操作***的支持,为驱动提供访问硬件寄存器的函数包,使之能够更好地运行。在该例的情况下,对于步骤S102,所述获取用于设备的硬件驱动注册的注册信息,比如可以包括:获取BSP提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;获取设备的指定硬件的硬件配置信息;根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
其中,注册信息集合可以通过诸如数组、哈希表等数据结构进行保存,以便快速检索,提高效率。
注册信息也可以由嵌入式***之外的途径提供,比如,通过网络直接提供等。
在本申请的一些实施例中,前面提到了可以针对驱动类别提供API,在这种情况下,对于步骤S102,在所述获取用于所述设备的硬件驱动注册的注册信息前,还可以执行:预定义多个驱动类别;分别为各所述驱动类别预定义API,以适应于对应的驱动类别的驱动并供其实现。
进一步地,在驱动进行注册的过程中,可以确定该驱动在这多个驱动类别中所属的驱动类别,以便后续用户程序交互时,能够据此进行驱动类别校验,从而精确地找到应该调用哪个驱动类别下的强类型的API。确定驱动所属的驱动类别这个动作也可以在其他合适的时候执行,而并非要在驱动注册过程中执行,比如,在驱动注册后为用户程序提供服务前执行。
基于此,对于步骤S106,所述查找到所述驱动,还可以包括以下动作:校验所述驱动所属的驱动类别;根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API(比如可以具体到上述的强类型的API)。
在本申请的一些实施例中,在有操作***的情况下,驱动可以向操作***的内核进行注册,假定操作***通过内核对象管理***来管理这部分的相关工作,则对于步骤S104,所述驱动进行注册,具体可以包括:所述驱动在内核对象管理***中进行注册。相应地,对于步骤S106,在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,还可以执行:所述用户程序通过所述内核对象管理***,打开所述驱动。在交互完毕后,用户程序也可以通过所述内核对象管理***,关闭所述驱动。
目前,对于用于实现同一类操作的统一的API,若有多个交互请求需要调用该统一的API,往往以队列方式排队,串行处理,效率低下。而基于本申请的方案,则能够并行处理,提高效率,具体地,在多个不同的驱动注册后,还可以执行:对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
基于前面的说明,为了便于理解,本申请的一些实施例还提供了一种实际应用场景下,图1的方法的一种具体实施方式的原理示意图,如图2所示,结合一些不完整的示例性代码进行说明。
为了便于理解,先对该原理示意图中未表现的一些预先完成的动作进行说明。在该场景下,***预定义设备的API,比如所有驱动的基础接口:
Figure BDA0001767259330000101
Figure BDA0001767259330000111
***从固件中获取硬件配置,比如,设备树(Device Tree)格式文件或者JSON文件等,配置中每个节点定义了一个硬件的配置,比如包括名称、寄存器基址以及对应的驱动需要的其他配置信息等。
驱动提供者基于***定义的驱动接口编写驱动实现,比如:
Figure BDA0001767259330000121
Figure BDA0001767259330000131
基于该场景,图2主要可以包括以下步骤:
BSP提供商提供一个驱动注册数组,里面包含所有需要的驱动的注册信息(适应于上述的驱动注册描述),比如:
Figure BDA0001767259330000132
***遍历硬件配置的每个节点,然后对于每个节点遍历驱动注册数组并找到对应的驱动注册信息;***通过调用注册信息的实例化函数获得驱动的一个实例;驱动在实例化过程中将自己注册到内核对象管理***中;用户程序通过内核对象管理***打开驱动的实例;用户程序使用***预定义的API操作驱动的实例。
基于同样的思路,本申请的一些实施例还提供了上述方法对应的装置、设备和非易失性计算机存储介质。
图3为本申请的一些实施例提供的对应于图1的一种应用于嵌入式***的设备管理装置的结构示意图,虚线方框表示可选的模块,该装置包括:
信息获取模块301,获取用于设备的硬件驱动注册的注册信息;
注册支持模块302,根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
交互处理模块303,在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
可选地,所述信息获取模块301获取用于设备的硬件驱动注册的注册信息,具体包括:
所述信息获取模块301获取板级支持包提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;
获取设备的指定硬件的硬件配置信息;
根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
可选地,所述装置还包括:
预处理模块304,在所述信息获取模块301获取用于所述设备的硬件驱动注册的注册信息前,执行:
预定义多个驱动类别;
分别为各所述驱动类别预定义API,以供属于对应的驱动类别的驱动实现。
可选地,所述装置还包括:
驱动类别确定模块305,在所述驱动进行注册的过程中,执行:
确定所述驱动在所述多个驱动类别中所属的驱动类别。
可选地,所述驱动进行注册,具体包括:
所述驱动在内核对象管理***中进行注册;
在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,所述用户程序还执行:
通过所述内核对象管理***,打开所述驱动。
可选地,所述交互处理模块303查找到所述驱动,还包括:
所述交互处理模块303校验所述驱动所属的驱动类别;
根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API。
可选地,所述装置还包括:
并行处理模块306,在多个不同的驱动注册后,执行:
对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
图4为本申请的一些实施例提供的对应于图1的一种嵌入式设备的结构示意图,该设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
本申请的一些实施例提供的对应于图1的一种应用于嵌入式***的设备管理非易失性计算机存储介质,存储有计算机可执行指令,该计算机可执行指令设置为:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的装置、设备和介质与方法是一一对应的,因此,装置、设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种应用于嵌入式***的设备管理方法,其特征在于,包括:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的应用程序编程接口API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
2.如权利要求1所述的方法,其特征在于,所述获取用于设备的硬件驱动注册的注册信息,具体包括:
获取板级支持包提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;
获取设备的指定硬件的硬件配置信息;
根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
3.如权利要求1所述的方法,其特征在于,在所述获取用于所述设备的硬件驱动注册的注册信息前,所述方法还包括:
预定义多个驱动类别;
分别为各所述驱动类别预定义API,以供属于对应的驱动类别的驱动实现。
4.如权利要求3所述的方法,其特征在于,在所述驱动进行注册的过程中,所述方法还包括:
确定所述驱动在所述多个驱动类别中所属的驱动类别。
5.如权利要求1所述的方法,其特征在于,所述驱动进行注册,具体包括:
所述驱动在内核对象管理***中进行注册;
在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,所述方法还包括:
所述用户程序通过所述内核对象管理***,打开所述驱动。
6.如权利要求3所述的方法,其特征在于,所述查找到所述驱动,还包括:
校验所述驱动所属的驱动类别;
根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API。
7.如权利要求1所述的方法,其特征在于,在多个不同的驱动注册后,所述方法还包括:
对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
8.一种应用于嵌入式***的设备管理装置,其特征在于,包括:
信息获取模块,获取用于设备的硬件驱动注册的注册信息;
注册支持模块,根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的应用程序编程接口API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
交互处理模块,在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
9.如权利要求8所述的装置,其特征在于,所述信息获取模块获取用于设备的硬件驱动注册的注册信息,具体包括:
所述信息获取模块获取板级支持包提供的注册信息集合,所述注册信息集合包含的多组注册信息分别用于对应的硬件驱动注册;
获取设备的指定硬件的硬件配置信息;
根据所述硬件配置信息,在所述注册信息集合中查找得到匹配于所述指定硬件的注册信息。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
预处理模块,在所述信息获取模块获取用于所述设备的硬件驱动注册的注册信息前,执行:
预定义多个驱动类别;
分别为各所述驱动类别预定义API,以供属于对应的驱动类别的驱动实现。
11.如权利要求10所述的装置,其特征在于,所述装置还包括:
驱动类别确定模块,在所述驱动进行注册的过程中,执行:
确定所述驱动在所述多个驱动类别中所属的驱动类别。
12.如权利要求8所述的装置,其特征在于,所述驱动进行注册,具体包括:
所述驱动在内核对象管理***中进行注册;
在所述查找到所述驱动后,所述用户程序调用所述强类型的API前,所述用户程序还执行:
通过所述内核对象管理***,打开所述驱动。
13.如权利要求10所述的装置,其特征在于,所述交互处理模块查找到所述驱动,还包括:
所述交互处理模块校验所述驱动所属的驱动类别;
根据所述驱动所属的驱动类别,确定所述用户程序所要调用的API。
14.如权利要求8所述的装置,其特征在于,所述装置还包括:
并行处理模块,在多个不同的驱动注册后,执行:
对于所述多个不同的驱动分别实现的、用于实现同一类操作的各强类型的API,若接收到用户程序分别针对所述多个不同的驱动的各交互请求,且所述各交互请求均针对该同一类操作,则并行地处理所述用户程序对所述各强类型的API的调用。
15.一种嵌入式设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的应用程序编程接口API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
16.一种应用于嵌入式***的设备管理非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
获取用于设备的硬件驱动注册的注册信息;
根据所述注册信息,实例化相应的驱动,以便所述驱动进行注册,其中,所述驱动包含对强类型的应用程序编程接口API的实现,所述强类型的API根据***适应于所述驱动而预定义的API得到;
在所述驱动注册后,若接收到用户程序针对所述驱动的交互请求,则根据所述交互请求携带的所述驱动注册的标识信息,查找到所述驱动,以便所述用户程序通过调用所述驱动包含的强类型的API来操作硬件。
CN201810933677.9A 2018-08-16 2018-08-16 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备 Pending CN110837446A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810933677.9A CN110837446A (zh) 2018-08-16 2018-08-16 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810933677.9A CN110837446A (zh) 2018-08-16 2018-08-16 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备

Publications (1)

Publication Number Publication Date
CN110837446A true CN110837446A (zh) 2020-02-25

Family

ID=69573207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810933677.9A Pending CN110837446A (zh) 2018-08-16 2018-08-16 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备

Country Status (1)

Country Link
CN (1) CN110837446A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000447A (zh) * 2020-07-16 2020-11-27 南方电网数字电网研究院有限公司 双芯智能电表中的硬件设备管理方法、装置和计算机设备
CN113157240A (zh) * 2021-04-27 2021-07-23 百度在线网络技术(北京)有限公司 语音处理方法、装置、设备、存储介质及计算机程序产品
CN114168209A (zh) * 2021-12-07 2022-03-11 浙江国利网安科技有限公司 硬件操作方法及装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097581A1 (en) * 2001-09-28 2003-05-22 Zimmer Vincent J. Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、***和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097581A1 (en) * 2001-09-28 2003-05-22 Zimmer Vincent J. Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、***和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑任持, 王晨辉, 陈榕, 王小鸽: "一种新型的基于构件和微内核的设备驱动模型", 计算机工程与应用, no. 07, pages 4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000447A (zh) * 2020-07-16 2020-11-27 南方电网数字电网研究院有限公司 双芯智能电表中的硬件设备管理方法、装置和计算机设备
CN113157240A (zh) * 2021-04-27 2021-07-23 百度在线网络技术(北京)有限公司 语音处理方法、装置、设备、存储介质及计算机程序产品
CN114168209A (zh) * 2021-12-07 2022-03-11 浙江国利网安科技有限公司 硬件操作方法及装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN107193577B (zh) 一种应用启动方法、装置和智能终端
CN107943485B (zh) 一种补丁编译平台及补丁编译方法
CN107608609B (zh) 一种事件对象发送方法与装置
CN110223682B (zh) 一种语音指令仲裁方法和装置
CN108268609B (zh) 一种文件路径的建立、访问方法和装置
CN109753347B (zh) 一种实现驱动的***及方法
CN109947643B (zh) 一种基于a/b测试的实验方案的配置方法、装置及设备
CN110716845B (zh) 一种Android***的日志信息读取的方法
CN110837446A (zh) 应用于嵌入式***的设备管理方法及装置、介质以及嵌入式设备
CN110895544B (zh) 一种接口数据处理方法、装置、***及存储介质
US20140222410A1 (en) Hybrid emulation and kernel function processing systems and methods
CN111949297B (zh) 一种区块链智能合约升级方法、装置及电子设备
CN107301097B (zh) 一种调用java对象、java对象的引用地址信息的存储方法及装置
CN108037914B (zh) 一种安卓原生***结合js开发的方法及装置
CN114691496A (zh) 单元测试方法、装置、计算设备及介质
CN114791884A (zh) 测试环境的构建方法、装置、存储介质及电子设备
CN114253845A (zh) 异型架构集成体系的自动化测试方法和装置
CN111433738A (zh) 控制器事件队列
CN114594944A (zh) 一种应用构建***以及设备
CN110908876B (zh) 一种硬件性能数据的获取方法及装置
CN112579938A (zh) 一种页面加载方法、装置、存储介质及电子设备
CN112416444A (zh) 一种板卡切换控制方法、装置、设备及介质
CN112306710A (zh) 一种业务处理***、接口调用方法及装置
CN107454124B (zh) 设备自动化方法及装置
CN113094047B (zh) 网页按钮的处理方法、装置、存储介质及处理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20201203

Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Applicant after: Canaan Bright Sight Co.,Ltd.

Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307

Applicant before: Canaan Creative Co.,Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination