Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020133691 - IMPLEMENTATION METHOD FOR DRIVE LAYER OF EMBEDDED SYSTEM AND DEVICE

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23  

附图

1   2   3   4   5   6   7   8   9   10   11  

说明书

发明名称 : 一种嵌入式系统驱动层的实现方法和装置

[0001]
本申请要求在2018年12月29日提交中国专利局、申请号为201811639898.1、发明名称为“一种嵌入式系统驱动层的实现方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002]
本发明涉及嵌入式领域,特别涉及一种嵌入式系统驱动层的实现方法和装置、嵌入式系统、片上系统、相机。

背景技术

[0003]
嵌入式系统是一种具备软件和硬件的完整的计算机系统,它具有功能专一、系统精简、应用范围广的特点。嵌入式系统运行于片上系统(System on Chip,SOC),包括驱动层和用户层两部分。
[0004]
在实现驱动层功能和用户层功能时,通常会设置相应的驱动功能函数和应用功能函数。在系统运行过程中,驱动功能函数和应用功能函数之间存在依赖性,驱动功能函数之间、应用功能函数之间也都分别存在依赖性。例如,有些函数之间共享全局变量等的寄存器资源,并对共享的寄存器进行操作;还有一些函数的输出是另一些函数的输入的情况。
[0005]
这种实现方式导致嵌入式系统内部驱动层和应用层的耦合性很高,系统的可移植性较差。当要将一个产品中的SOC及其上的嵌入式系统移植到另一个产品中时,需要根据产品的具体特性来修改共享资源、以及函数的运行逻辑,该修改工作的工作量较大,工作效率低,容易出现错误。
[0006]
可见,目前嵌入式系统的实现方式存在耦合性高、可移植性差的问题。
[0007]
发明内容
[0008]
有鉴于此,本申请提供了一种嵌入式系统驱动层的实现方法和装置、嵌入式系统、片上系统、相机,用以解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
[0009]
根据本申请的一个方面,提供了一种嵌入式系统驱动层的实现方法,嵌入式系统的驱动层包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块,该方法包括:
[0010]
根据来自用户层的调用,驱动接口调用对应的驱动模块;
[0011]
驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作 结果;
[0012]
驱动接口向用户层返回来自驱动模块的操作结果。
[0013]
根据本申请的一个方面,提供了一种嵌入式系统驱动层的实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中,
[0014]
驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果;
[0015]
驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[0016]
根据本申请的一个方面,提供了一种嵌入式系统,该系统包括如上所述的嵌入式系统驱动层实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中,
[0017]
驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果;
[0018]
驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[0019]
根据本申请的一个方面,提供了一种片上系统,该片上系统包括嵌入式系统,该嵌入式系统包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中,
[0020]
驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果;
[0021]
驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。根据本申请的一个方面,提供了一种相机,该相机中包括一种片上系统,该片上系统包括嵌入式系统,该嵌入式系统包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中,
[0022]
驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果;
[0023]
驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[0024]
在本申请实施例提供的嵌入式系统中,用户层与驱动层相分离、驱动层内部松耦合,能够提高嵌入式系统的可移植性。从而本申请实施例提供的嵌入式系统能够解决现有技术中嵌入式系统存在的耦合性高、可移植性差的问题。
[0025]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、 权利要求书、以及附图中所特别指出的结构来实现和获得。
[0026]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0027]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。显而易见地,下面描述中的附图仅仅是本发明一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0028]
图1为本申请实施例提供的一种嵌入式系统的结构框图;
[0029]
图2为本申请实施例提供的另一种嵌入式系统的结构框图;
[0030]
图3为本申请实施例提供的嵌入式系统的驱动层的实现方法的处理流程图;
[0031]
图4为本申请实施例提供的驱动层执行外设初始化处理的流程图;
[0032]
图5为本申请实施例提供的驱动层执行用户注册处理的流程图;
[0033]
图6为本申请实施例提供的驱动层执行数据发送处理的流程图;
[0034]
图7为本申请实施例提供的驱动层执行数据接收处理的流程图;
[0035]
图8为图7中步骤704的处理流程图;
[0036]
图9为图7中步骤704的另一处理流程图;
[0037]
图10为本申请实施例提供的嵌入式系统的驱动层的实现装置的结构框图;
[0038]
图11为本申请实施例提供的嵌入式系统的驱动层的实现装置的另一结构框图。

具体实施方式

[0039]
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0040]
图1中示出了本申请实施例提供的一种嵌入式系统,该嵌入式系统1包括用户层11和驱动层12,驱动层12中包括多个驱动接口121和多个驱动模块122,其中,一个驱动接口121对应于一个驱动模块122。
[0041]
在一些实施例中,外设可以是网卡、串口、I2C等设备。
[0042]
在一些实施例中,驱动层12的配置可如图1所示,即驱动层12包括多个驱动接口121、以及每个驱动接口121各自对应的一个驱动模块122。通过在驱动层12中设置驱动接口 121和驱动模块122,可以对驱动层12的内部结构进行规划和分离,能够实现驱动层12内部接口和模块的松耦合状态。
[0043]
在另一些实施例中,如图2所示,可以在驱动层12配置一个驱动接口单元123和至少一个驱动执行单元124,在驱动接口单元123中配置多个驱动接口121,在每个驱动执行单元124中配置至少一个驱动模块122。驱动接口单元123是面向用户层11的驱动接口层,驱动执行单元124是面向外设的驱动执行层。用户层11加载驱动接口单元123后,调用驱动接口单元123中的驱动接口121,驱动接口121进一步地调用驱动模块122。在具体的应用场景中,可以将一个驱动接口单元123配置为一个驱动接口文件,将一个驱动执行单元124配置为一个驱动执行文件。通过设置驱动接口单元123和驱动执行单元124,能够进一步对驱动层12的内部结构进行规划和分离,能够实现驱动层12内部接口和模块的松耦合状态。
[0044]
图3中示出了本申请实施例提供的嵌入式系统的驱动层的实现方法的处理流程,也即图1中驱动层12的工作原理,包括:
[0045]
步骤301、根据来自用户层的调用,驱动接口调用对应的驱动模块;
[0046]
步骤302、驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果;
[0047]
步骤303、驱动接口向用户层返回来自驱动模块的操作结果。
[0048]
在本申请实施例提供的技术方案中,驱动接口为用户层提供与外设相关的操作的接口,驱动模块执行具体的与外设相关的操作,驱动接口将驱动模块返回的结果返回给用户层。用户层的运行和处理与驱动层的运行和处理相分离,用户层通过调用驱动层来实现与外设相关的操作,驱动层相对于用户层而言处于黑盒状态,也即用户层与驱动层之间的依赖性较低、为松耦合状态。驱动层内部为模块化设置,相对应的接口和模块只响应于用户层的调用来执行操作,接口之间以及模块之间不存在依赖关系,相对应的接口和模块只与操作相关,驱动层内部能够实现松耦合状态。
[0049]
从而,在本申请实施例提供的嵌入式系统中,用户层与驱动层相分离、驱动层内部松耦合,能够提高嵌入式系统的可移植性。从而本申请实施例提供的嵌入式系统能够解决现有技术中嵌入式系统存在的耦合性高、可移植性差的问题。
[0050]
在一些实施例中,用户层触发的操作可以分为外设操作和用户操作,外设操作执行针对外设的诸如初始化的操作,用户操作执行针对用户的诸如注册、数据收/发的操作。在应用场景中,根据具体外设是哪种设备,外设操作和用户操作还可以包括其它的操作,本申请这里不做具体限定。相对应地,驱动接口可以包括外设接口和用户接口,驱动模块包括外设模块和用户模块。本申请实施例在驱动层内部进行与操作相关的模块化设置,根据操 作类别来设置对应的驱动接口和驱动模块,能够进一步地对驱动层的内部结构进行规划和分离,实现驱动层内部接口和模块的松耦合状态。
[0051]
响应于用户层触发的不同的操作调用,驱动接口和驱动模块执行不同的操作。
[0052]
在一些实施例中,外设接口包括初始化接口、外设模块包括初始化模块,并且,在驱动层中保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数,地址参数中可以包括为外设配置的IP地址、MAC地址,存储参数中可以包括为外设配置的缓存地址、缓存大小、寄存器信息。在其他一些实施例中,驱动参数还可以保存在驱动执行单元中。在另一些实施例中,驱动参数中还可以包括其它的参数,并且驱动数据可以进一步被保存为一个结构体。本申请实施例中,在驱动层中保存预设的驱动数据,能够便于后续移植嵌入式系统时,仅针对该部分内容进行修改,而不需要对驱动接口和驱动模块进行修改。
[0053]
在用户层对驱动层发起初始化操作调用时,图4中示出了驱动层的外设初始化处理流程,包括:
[0054]
步骤401、初始化接口响应于来自用户层的初始化操作调用,调用初始化模块;
[0055]
步骤402、初始化模块响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;
[0056]
其中,初始化模块对外设执行了初始化操作后,根据驱动数据中的地址参数为外设进行地址配置,例如为外设配置IP地址和MAC地址,根据存储参数为外设分配存储资源,例如为外设配置指定地址和大小的缓存和寄存器资源;
[0057]
步骤403、初始化模块建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;
[0058]
其中,外设标识可以是数字、字母或者文字的组合,外设标识唯一地指向该外设,以及该外设具有的地址资源和存储资源;
[0059]
进一步地,初始化模块还保存建立的该对应关系;
[0060]
步骤404、初始化模块向初始化接口返回外设标识;
[0061]
步骤405、初始化接口向用户层返回来自初始化模块的外设标识。
[0062]
通过上述处理,驱动层将外设标识返回给用户层,用户层并不知晓驱动层中对外设进行的操作和处理,用户层仅知晓该外设的标识。用户层在后续触发其它的操作时根据该外设标识来指定外设。在驱动层内部,驱动模块根据外设标识来定位外设以及外设的地址资源和存储资源。
[0063]
在一些实施例中,用户接口包括注册接口,用户模块包括注册模块。在用户层对驱动 层发起用户注册调用时,图5中示出了驱动层的用户注册处理流程,包括:
[0064]
步骤501、注册接口响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数。
[0065]
其中,外设标识即为在图4所示处理中,由驱动层返回给用户层的。在一些实施例中,用户数据通道参数包括外设端口号。在另一些实施例中,用户数据通道参数中还可以进一步包括可调用的解析层的协议解析模块的标识,在后续接收数据的过程中,数据接收模块将调用该协议解析模块。在另一些实施例中,用户数据通道参数还可以包括在外设的存储资源中为用户分配的存储资源参数,包括存储地址和存储大小。在其它的实施例中,根据应用场景的需要,用户数据通道参数还可以包括其它的参数,本申请这里不做具体限定。
[0066]
步骤502、注册接口调用注册模块,并向注册模块传递外设标识和用户数据通道参数。
[0067]
步骤503、注册模块响应于注册接口的调用、获取外设标识和用户数据通道参数。
[0068]
步骤504、注册模块根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源。
[0069]
其中,注册模块根据外设标识定位对应的外设,并且在为该外设配置的存储资源中为用户配置用户的存储资源。
[0070]
注册模块为用户分配存储资源时,在一些实施例中,在用户数据通道参数中包括为用户配置的存储资源参数时,注册模块可以根据该存储资源参数,在外设的存储资源中为用户配置存储指定地址和大小的存储资源。在另一实施例中,注册模块可以根据预定的分配规则,在外设的存储资源中为用户配置存储指定地址和大小的存储资源;其中,分配规则中包括对外设的存储资源进行分配的规则,例如,依次将外设存储资源中的指定比例或指定大小的存储资源分配给新注册的用户。
[0071]
步骤505、注册模块根据用户数据通道参数,在确定的外设上为用户配置数据通道资源。
[0072]
例如,注册模块将用户数据通道参数指定的外设端口号配置给用户。在另一些实施例中,在用户数据通道参数中还包括协议解析模块标识的情况下,注册模块还为用户配置该协议解析模块标识。
[0073]
步骤506、注册模块建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识。
[0074]
进一步地,注册模块还保存建立的用户对应关系。
[0075]
其中,建立的用户标识能够唯一地标识一个用户,通过外设标识能够定位到用户所注册的外设,并且数据通道资源是用户专用的并非复用、能够唯一对应用户,通过用户数据通道资源数据(例如外设端口号)能够定位到相应的用户。
[0076]
在建立的用户对应关系中,用户描述符可链接如下信息:该用户注册的外设、该外设的地址资源(例如包括外设的IP地址和MAC地址)、该用户注册在该外设上的端口号、在该外设的存储资源中为该用户分配的存储资源。
[0077]
步骤507、注册模块向注册接口返回用户标识;
[0078]
步骤508、注册接口将来自注册模块的用户标识返回给用户层。
[0079]
通过上述处理,驱动层将用户标识返回为用户层,用户层并不知晓用户注册的具体信息,以及驱动层进行的注册处理和操作。用户层在后续触发关于用户的操作时,根据该用户标识定位到对应的用户。在驱动层内部,驱动模块根据用户标识对应的外设标识定位到外设,根据用户标识中的用户数据通道资源数据(例如外设端口号)在外设上定位到相应的用户。
[0080]
在一些实施例中,用户接口包括数据发送接口,用户模块包括数据发送模块。在用户层对驱动层发起数据发送调用时,图6中示出了驱动层的数据发送处理流程,包括:
[0081]
步骤601、数据发送接口响应来自用户层的调用、获取用户层传递的用户标识。
[0082]
其中,用户标识即为在图5所示处理中,由驱动层返回给用户层的,用户层根据用户标识指定用户。
[0083]
步骤602、数据发送接口调用数据发送模块,并将用户标识传递给数据发送模块。
[0084]
步骤603、数据发送模块响应数据发送接口的调用、获取数据发送模块传递的用户标识。
[0085]
步骤604、数据发送模块根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送。
[0086]
如上所述,在驱动层内部已经建立了用户对应关系,数据发送模块根据用户标识能够确定对应的用户对应关系,根据用户对应关系确定用户注册的外设以及用户在该外设上的存储资源的地址,并从该存储资源中获取用户要发送的数据,通过用户对应关系中指示的用户数据通道来发送该数据。
[0087]
步骤605、数据发送模块向数据发送接口返回发送操作结果。
[0088]
也即数据发送模块向数据发送接口反馈发送操作是否成功的信息。
[0089]
步骤606、数据发送接口将来自数据发送模块的发送操作结果返回给用户层。
[0090]
在上述处理过程中,用户层触发数据发送操作后,将用户标识传递给驱动层,并获取驱动层反馈的数据发送是否成功的信息。用户层并不参与或执行具体的数据发送过程,驱动层响应用户层的调用,根据用户标识将用户的数据发送出去。上述处理能够实现用户层和驱动层的分离,使得用户层和驱动层处于松耦合状态。
[0091]
在一些实施例中,用户接口包括数据接收接口,用户模块包括数据接收模块。在用户 层对驱动层发起数据接收调用时,图7中示出了驱动层的数据接收处理流程,包括:
[0092]
步骤701、数据接收接口响应于来自用户层的调用、获取用户层传递的用户标识。
[0093]
其中,该标识即为在图5所示处理中,由驱动层返回给用户层的,用户层根据用户标识指定用户。
[0094]
步骤702、数据接收接口调用数据接收模块,并将用户标识传递给数据接收模块。
[0095]
步骤703、数据接收模块响应数据接收接口的调用、获取数据接收模块传递的用户标识。
[0096]
步骤704、数据接收模块根据用户标识接收数据。
[0097]
步骤705、数据接收模块根据用户标识确定用户的存储地址,将接收到的数据存储到确定的存储地址中。
[0098]
如上所述,在驱动层内部已经建立了用户对应关系,数据接收模块根据用户标识能够确定对应的用户对应关系,根据用户对应关系确定用户注册的外设以及用户在该外设上的存储资源的地址,将接收到的数据缓存到用户在该外设上的存储地址中。
[0099]
步骤706、数据接收模块向数据接收接口返回接收操作结果。
[0100]
也即数据接收模块向数据接收接口反馈发送接收是否成功的信息。
[0101]
步骤707、数据接收接口将来自数据接收模块的接收结果返回给用户层。
[0102]
在上述处理过程中,用户层触发数据接收操作后,将用户标识传递给驱动层,并获取驱动层反馈的接收是否成功的信息。用户层并不参与或执行具体的数据接收过程,驱动层根据用户层的调用,根据用户标识接收发送给用户的数据。上述处理能够实现用户层和驱动层的分离。
[0103]
在不同的实施例中,上述步骤704数据接收模块接收数据的操作可以通过不同的接收方式来实现。本申请实施例提供了如下的两种方式来实施数据接收。
[0104]
接收方式一,数据接收模块通过查询的方式接收数据。图8中示出了本申请实施例提供的驱动层进行数据接收处理的流程,包括:
[0105]
步骤704a、数据接收模块查询嵌入式系统是否接收到数据,在嵌入式系统接收到数据的情况下,根据协议解析模块的标识调用协议解析模块,获得协议解析模块解析数据返回的数据的目的地址数据,并且处理进行到步骤704b;在嵌入式系统没有接收到数据的情况下,处理结束。
[0106]
其中,数据接收模块查询嵌入式系统是否接收到数据,可以通过查询嵌入式系统存储接收数据的寄存器的状态,来确定嵌入式系统是否接收到数据。
[0107]
其中,如上所述在用户注册的过程中,在一些实施例中用户数据通道参数中包括了解析层的协议解析模块的标识,在数据接收模块主动查询嵌入式系统接收到数据后,可以调 用协议解析模块来获取数据的目的地址数据,通目的地址数据中包括IP地址、MAC地址和端口号信息,从而,数据接收模块可以对比协议解析模块解析得到的目的地址数据和用户对应关系中链接的用户注册的外设的IP地址、外设的MAC地址和用户注册的外设端口号,以确定该数据是否是发送给该用户的。
[0108]
步骤704b、数据接收模块将目的地址信息与用户标识指示的用户数据通道资源进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中,在对比确定不一致的情况下,处理结束。
[0109]
例如,协议解析模块解析得到的数据的目的地址中包括IP地址为a、MAC地址为b、端口号为c,数据接收模块根据用户标识确定的用户对应关系中指示的外设IP地址为a、MAC地址为b、端口号为c,数据接收模块进行比对后可以确定该数据是发送给用户标识所指的用户的,否则确定该数据不是发送给用户标识所指的用户的。
[0110]
数据接收模块确定嵌入式系统接收到的数据是发送给该用户的情况下,根据用户标识指示的存储地址,将嵌入式系统接收到的数据存储到为用户分配的存储地址中。
[0111]
通过接收方式一,数据接收模块能够查询并接收发送给用户的数据。
[0112]
接收方式二,数据接收模块根据来自协议解析模块的通知接收数据。图9中示出了本申请实施例提供的驱动层进行数据接收处理的流程,包括:
[0113]
步骤704x、数据接收模块获取解析层的协议解析模块传递的数据源地址信息和目的地址信息;
[0114]
其中,协议解析模块会对嵌入式系统接收到的数据进行主动解析,获取数据的目的地址数据,并将获取到的数据的目的地址数据发送给数据接收模块;
[0115]
步骤704y、数据接收模块将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
[0116]
如上述接收方式一中所述,数据接收模块对比协议解析模块解析得到的目的地址数据和用户对应关系中保存的为用户对应关系链接的外设端口号,以确定该数据是否是发送给该用户的。在确定嵌入式系统接收到的数据是发送给该用户的情况下,根据用户标识指示的存储地址,将嵌入式系统接收到的数据存储到为用户分配的存储地址中。
[0117]
通过接收方式二,数据接收模块能够根据协议解析模块的通知来接收发送给用户的数据。
[0118]
以上对用户层触发的外设操作和用户操作进行了示例性说明,在其他的一些实施例中,根据具体外设设备的不同,外设操作和用户操作中还可以包括其它的操作,相应地,驱动层可以包括对应的接口和模块,以响应用户层的调用、实施具体的操作。
[0119]
在本申请实施例提供的技术方案中,在系统设置方面,将驱动层和用户层分离设置,用户层和驱动层之间为调用关系,能够实现松耦合状态,在驱动层内部模块化地设置驱动接口和驱动模块,能够实现驱动层内部的松耦合状态。在处理逻辑方面,驱动接口和驱动模块只根据操作进行对应,不同操作对应的驱动接口和驱动模块之间,不存在依赖,对应的驱动接口和驱动模块执行相应的操作,能够实现操作处理之间的分离,降低不同的操作处理之间的依赖关系。从而本申请实施例提供的嵌入式系统能够实现较低的耦合性和较高的可移植性,能够解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
[0120]
并且,驱动层内部通过模块化配置驱动接口和驱动模块,在将嵌入式系统进行移植时,可只针对关键的预设信息进行修改,例如修改初始化操作涉及的驱动参数,不需要对驱动接口和驱动模块的配置关系、模块内部的处理逻辑和具体的处理过程进行修改。在具体的应用场景中,可以实现较小的代码修改量,嵌入式系统的复用程度高,可移植性高。
[0121]
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统驱动层的实现装置。
[0122]
图10中示出了本申请实施例提供的嵌入式系统驱动层的实现装置,该装置包括多个驱动接口1001、以及每个驱动接口各自对应的一个驱动模块1002;其中,
[0123]
驱动接口1001用于根据来自用户层的调用,调用对应的驱动模块1002;向用户层返回来自驱动模块1002的操作结果;
[0124]
驱动模块1002用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口1001返回操作结果。
[0125]
图11中示出了本申请实施例提供的另一种嵌入式系统驱动层的实现装置,该装置包括一个驱动接口单元1101和至少一个驱动执行单元1102,一个驱动接口单元1101中包括多个驱动接口1001,一个驱动执行单元1102中包括多个驱动模块1002。
[0126]
图11所示的装置相比图10所示的装置,配置了驱动接口单元1101和驱动执行单元1102。驱动接口单元1101可被用户层加载,并在得到加载后,驱动接口1001得到用户层的调用。
[0127]
在一些实施例中,在图10或图11所示的装置中还保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数。在另一些实施例中,预设的驱动数据可以保存在图11所示的驱动执行单元1102中。
[0128]
在一些实施例中,在图10或图11所示的装置中,驱动接口1001包括外设接口和用户接口(未在图中示出),驱动模块1002包括外设模块和用户模块(未在图中示出)。
[0129]
在一些实施例中,外设接口包括初始化接口、外设模块包括初始化模块;初始化接口 用于根据来自用户层的调用,调用对应的初始化模块;向用户层返回来自初始化模块的外设标识;
[0130]
初始化模块用于响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;向初始化接口返回外设标识;其中,地址参数包括IP地址和MAC地址,存储参数包括缓存地址、缓存大小和寄存器信息。
[0131]
在一些实施例中,用户接口包括注册接口,用户模块包括注册模块;
[0132]
注册接口用于响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数;调用注册模块,并向注册模块传递外设标识和用户数据通道参数;将来自注册模块的用户标识返回给用户层;
[0133]
注册模块用于响应于注册接口的调用、获取外设标识和用户数据通道参数;根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源;根据用户数据通道参数,在确定的外设上为用户配置数据通道资源;建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识;向注册接口返回用户标识;其中,用户数据通道参数中包括外设的和外设端口号。
[0134]
在一些实施例中,用户接口包括数据发送接口,用户模块包括数据发送模块;
[0135]
数据发送接口用于响应来自用户层的调用、获取用户层传递的用户标识;调用数据发送模块,并将用户标识传递给数据发送模块;将来自数据发送模块的发送操作结果返回给用户层;
[0136]
数据发送模块用于响应数据发送接口的调用、获取数据发送模块传递的用户标识;根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送;向数据发送接口返回发送操作结果。
[0137]
在一些实施例中,用户接口包括数据接收接口,用户模块包括数据接收模块;
[0138]
数据接收接口用于响应于来自用户层的调用、获取用户层传递的用户标识;调用数据接收模块,并将用户标识传递给数据接收模块;将来自数据接收模块的接收结果返回给用户层;
[0139]
数据接收模块用于响应数据接收接口的调用、获取数据接收模块传递的用户标识;根据用户标识接收数据;根据用户标识确定用户的存储地址,将接收到的数据存储到确定的存储地址中;向数据接收接口返回接收操作结果。
[0140]
在本申请实施例提供的技术方案中,在系统设置方面,将驱动层和用户层分离设置,用户层和驱动层之间为调用关系,能够实现松耦合状态,在驱动层内部模块化地设置驱动接口和驱动模块,能够实现驱动层内部的松耦合状态。在处理逻辑方面,驱动接口和驱动模块只根据操作进行对应,不同操作对应的驱动接口和驱动模块之间,不存在依赖,对应的驱动接口和驱动模块执行相应的操作,能够实现操作处理之间的分离,降低不同的操作处理之间的依赖关系。从而本申请实施例提供的嵌入式系统能够实现较低的耦合性和较高的可移植性,能够解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
[0141]
基于相同的发明构思,本申请实施例还提供了一种非暂态易失性机器可读存储介质,其特征在于,该存储介质中存储至少一条机器可执行指令,机器执行至少一条机器可执行指令以执行如图3所示的嵌入式系统驱动层的实现方法。
[0142]
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统,该系统中包括如图10或图11所示的嵌入式系统驱动层的实现装置。
[0143]
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统,该系统中包括如上所述的非暂态易失性机器可读存储介质。
[0144]
基于相同的发明构思,本申请实施例还提供了一种片上系统,该片上系统包括如上所述的任一种嵌入式系统,该嵌入式系统包括如图10或图11所示的嵌入式系统驱动层的实现装置。
[0145]
基于相同的发明构思,本申请实施例还提供了一种相机,该相机包括如上所述的片上系统,该片上系统包括如上所述的任一种嵌入式系统,该嵌入式系统包括如图10或图11所示的嵌入式系统驱动层的实现装置。
[0146]
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件固件、软件或者他们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用它们的基本编程技能就能实现的。
[0147]
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0148]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0149]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0150]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0151]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0152]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0153]
尽管已描述了本发明的上述实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括上述实施例以及落入本发明范围的所有变更和修改。
[0154]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和 范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

权利要求书

[权利要求 1]
一种嵌入式系统驱动层的实现方法,其特征在于,嵌入式系统的驱动层包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块,该方法包括: 根据来自用户层的调用,驱动接口调用对应的驱动模块; 驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果; 驱动接口向用户层返回来自驱动模块的操作结果。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,驱动层包括一个驱动接口单元和至少一个驱动执行单元,一个驱动接口单元中包括多个驱动接口,一个驱动执行单元中包括多个驱动模块; 所述方法还包括:驱动接口单元被用户层加载后,驱动接口单元中的驱动接口得到用户层的调用。
[权利要求 3]
根据权利要求1所述的方法,其特征在于,驱动执行层中保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数。
[权利要求 4]
根据权利要求3所述的方法,其特征在于,驱动接口包括外设接口和用户接口,驱动模块包括外设模块和用户模块。
[权利要求 5]
根据权利要求4所述的方法,其特征在于,外设接口包括初始化接口、外设模块包括初始化模块; 驱动接口调用对应的驱动模块,包括:初始化接口调用初始化模块; 驱动模块对外设执行相应的驱动操作,并向驱动接口返回操作结果,包括:初始化模块响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;向初始化接口返回外设标识;其中,地址参数包括IP地址和MAC地址,存储参数包括缓存地址、缓存大小和寄存器信息; 驱动接口向用户层返回来自驱动模块的操作结果,包括:初始化接口向用户层返回来自初始化模块的外设标识。
[权利要求 6]
根据权利要求5所述的方法,其特征在于,用户接口包括注册接口,用户模块包括注册模块; 根据来自用户层的调用,驱动接口调用驱动资源文件中对应的驱动模块,包括:注册接口响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数;注册接口 调用注册模块,并向注册模块传递外设标识和用户数据通道参数; 驱动模块对外设执行相应的驱动操作,并向驱动接口返回操作结果,包括:注册模块响应于注册接口的调用、获取外设标识和用户数据通道参数;根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源;根据用户数据通道参数,在确定的外设上为用户配置数据通道资源;建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识;向注册接口返回用户标识;其中,用户数据通道参数中包括外设的和外设端口号; 驱动接口向用户层返回来自驱动模块的操作结果,包括:注册接口将来自注册模块的用户标识返回给用户层。
[权利要求 7]
根据权利要求6所述的方法,其特征在于,用户接口包括数据发送接口,用户模块包括数据发送模块; 根据来自用户层的调用,驱动接口调用驱动资源文件中对应的驱动模块,包括:数据发送接口响应来自用户层的调用、获取用户层传递的用户标识;数据发送接口调用数据发送模块,并将用户标识传递给数据发送模块; 驱动模块对外设执行相应的驱动操作,并向驱动接口返回操作结果,包括:数据发送模块响应数据发送接口的调用、获取数据发送模块传递的用户标识;根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送;向数据发送接口返回发送操作结果; 驱动接口向用户层返回来自驱动模块的操作结果,包括:数据发送接口将来自数据发送模块的发送操作结果返回给用户层。
[权利要求 8]
根据权利要求6所述的方法,其特征在于,用户接口包括数据接收接口,用户模块包括数据接收模块; 根据来自用户层的调用,驱动接口调用驱动资源文件中对应的驱动模块,包括:数据接收接口响应于来自用户层的调用、获取用户层传递的用户标识;数据接收接口调用数据接收模块,并将用户标识传递给数据接收模块; 驱动模块对外设执行相应的驱动操作,并向驱动接口返回操作结果,包括:数据接收模块响应数据接收接口的调用、获取数据接收模块传递的用户标识;根据用户标识接收数据;根据用户标识确定用户的存储地址,将接收到的数据存储到确定的存储地址中;向数据接收接口返回接收操作结果; 驱动接口向用户层返回来自驱动模块的操作结果,包括:数据接收接口将来自数据接收模块的接收结果返回给用户层。
[权利要求 9]
根据权利要求8所述的方法,其特征在于,用户数据通道参数还包括调用的解析层的协议解析模块的标识; 数据接收模块接收数据,包括: 数据接收模块查询嵌入式系统是否接收到数据,在嵌入式系统接收到数据的情况下,根据协议解析模块的标识调用协议解析模块,获得协议解析模块解析数据返回的数据的目的地址数据; 将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
[权利要求 10]
根据权利要求8所述的方法,其特征在于,数据接收模块接收数据,包括: 数据接收模块获取解析层的协议解析模块传递的数据目的地址数据; 将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
[权利要求 11]
一种嵌入式系统驱动层的实现装置,其特征在于,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中, 驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果; 驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[权利要求 12]
根据权利要求11所述的装置,其特征在于,该装置包括一个驱动接口单元和至少一个驱动执行单元,一个驱动接口单元中包括多个驱动接口,一个驱动执行单元中包括多个驱动模块; 驱动接口单元用于被用户层加载后,驱动接口得到用户层的调用。
[权利要求 13]
根据权利要求11所述的装置,其特征在于,所述装置中保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数。
[权利要求 14]
根据权利要求13所述的装置,其特征在于,驱动接口包括外设接口和用户接口,驱动模块包括外设模块和用户模块。
[权利要求 15]
根据权利要求14所述的装置,其特征在于,外设接口包括初始化接口、外设模块包括初始化模块; 初始化接口用于根据来自用户层的调用,调用对应的初始化模块;向用户层返回来自初始化模块的外设标识; 初始化模块用于响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;向初始化接口返回外设标识;其中,地址参数包括IP地址和MAC地址,存储参数包括缓存地址、缓存大小和寄存器信息。
[权利要求 16]
根据权利要求15所述的装置,其特征在于,用户接口包括注册接口,用户模块包括注册模块; 注册接口用于响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数;调用注册模块,并向注册模块传递外设标识和用户数据通道参数;将来自注册模块的用户标识返回给用户层; 注册模块用于响应于注册接口的调用、获取外设标识和用户数据通道参数;根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源;根据用户数据通道参数,在确定的外设上为用户配置数据通道资源;建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识;向注册接口返回用户标识;其中,用户数据通道参数中包括外设的和外设端口号。
[权利要求 17]
根据权利要求16所述的装置,其特征在于,用户接口包括数据发送接口,用户模块包括数据发送模块; 数据发送接口用于响应来自用户层的调用、获取用户层传递的用户标识;调用数据发送模块,并将用户标识传递给数据发送模块;将来自数据发送模块的发送操作结果返回给用户层; 数据发送模块用于响应数据发送接口的调用、获取数据发送模块传递的用户标识;根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送;向数据发送接口返回发送操作结果。
[权利要求 18]
根据权利要求16所述的装置,其特征在于,用户接口包括数据接收接口,用户模块包括数据接收模块; 数据接收接口用于响应于来自用户层的调用、获取用户层传递的用户标识;调用数据接收模块,并将用户标识传递给数据接收模块;将来自数据接收模块的接收结果返回给用户层; 数据接收模块用于响应数据接收接口的调用、获取数据接收模块传递的用户标识;根据用户标识接收数据;根据用户标识确定用户的存储地址,将接收到的数据存储到确定的 存储地址中;向数据接收接口返回接收操作结果。
[权利要求 19]
根据权利要求18所述的装置,其特征在于,用户数据通道参数还包括调用的解析层的协议解析模块的标识; 数据接收模块接收数据,包括:数据接收模块查询嵌入式系统是否接收到数据,在嵌入式系统接收到数据的情况下,根据协议解析模块的标识调用协议解析模块,获得协议解析模块解析数据返回的数据的目的地址数据; 将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
[权利要求 20]
根据权利要求18所述的方法,其特征在于,数据接收模块接收数据,包括: 数据接收模块获取解析层的协议解析模块传递的数据目的地址数据; 将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
[权利要求 21]
一种嵌入式系统,其特征在于,包括一种嵌入式系统驱动层实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中, 驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果; 驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[权利要求 22]
一种片上系统,其特征在于,包括一种嵌入式系统,该嵌入式系统驱动层实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中, 驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果; 驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
[权利要求 23]
一种相机,其特征在于,包括一种片上系统,该片上系统包括一种嵌入式系统,该嵌入式系统驱动层实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中, 驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果; 驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回 操作结果。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]  
[ 图 8]  
[ 图 9]  
[ 图 10]  
[ 图 11]