CN111381868A - 一种嵌入式系统驱动层的实现方法和装置 - Google Patents

一种嵌入式系统驱动层的实现方法和装置 Download PDF

Info

Publication number
CN111381868A
CN111381868A CN201811639898.1A CN201811639898A CN111381868A CN 111381868 A CN111381868 A CN 111381868A CN 201811639898 A CN201811639898 A CN 201811639898A CN 111381868 A CN111381868 A CN 111381868A
Authority
CN
China
Prior art keywords
user
data
module
interface
peripheral
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.)
Granted
Application number
CN201811639898.1A
Other languages
English (en)
Other versions
CN111381868B (zh
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.)
Beijing Tusimple Technology Co Ltd
Original Assignee
Beijing Tusimple Technology 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 Beijing Tusimple Technology Co Ltd filed Critical Beijing Tusimple Technology Co Ltd
Priority to CN201811639898.1A priority Critical patent/CN111381868B/zh
Priority to PCT/CN2019/077047 priority patent/WO2020133691A1/zh
Publication of CN111381868A publication Critical patent/CN111381868A/zh
Application granted granted Critical
Publication of CN111381868B publication Critical patent/CN111381868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

本申请公开一种嵌入式系统驱动层的实现方法和装置,以解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。嵌入式系统的驱动层包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块,该方法包括:根据来自用户层的调用,驱动接口调用对应的驱动模块;驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果;驱动接口向用户层返回来自驱动模块的操作结果。

Description

一种嵌入式系统驱动层的实现方法和装置
技术领域
本申请涉及嵌入式领域,特别涉及一种嵌入式系统驱动层的实现方法和装置、存储介质、嵌入式系统、片上系统、相机。
背景技术
嵌入式系统是一种具备软件和硬件的完整的计算机系统,它具有功能专一、系统精简、应用范围广的特点。嵌入式系统运行于片上系统(System on Chip,SOC),包括驱动层和用户层两部分。
在实现驱动层功能和用户层功能时,通常会设置驱动功能函数和应用功能函数。在系统运行过程中,驱动功能函数和应用功能函数之间存在依赖性,驱动功能函数之间、应用功能函数之间也都分别存在依赖性。例如,有些函数之间共享全局变量等的寄存器资源,并对共享的寄存器进行操作;还有一些函数的输出是另一些函数的输入的情况。
这种实现方式导致嵌入式系统内部驱动层和应用层的耦合性很高,系统的可移植性较差。当要将一个产品中的SOC及其上的嵌入式系统移植到另一个产品中时,需要根据产品的具体特性来修改共享资源、以及函数的运行逻辑,该修改工作的工作量较大,工作效率低,容易出现错误。
可见,目前嵌入式系统的实现方式存在耦合性高、可移植性差的问题。
发明内容
有鉴于此,本申请提供了一种嵌入式系统驱动层的实现方法和装置、存储介质、嵌入式系统、片上系统、相机,用以解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
根据本申请的一个方面,提供了一种嵌入式系统驱动层的实现方法,嵌入式系统的驱动层包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块,该方法包括:
根据来自用户层的调用,驱动接口调用对应的驱动模块;
驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果;
驱动接口向用户层返回来自驱动模块的操作结果。
根据本申请的一个方面,提供了一种嵌入式系统驱动层的实现装置,该装置包括多个驱动接口、以及每个驱动接口各自对应的一个驱动模块;其中,
驱动接口用于根据来自用户层的调用,调用对应的驱动模块;向用户层返回来自驱动模块的操作结果;
驱动模块用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果。
根据本申请的一个方面,提供了一种非暂态易失性机器可读存储介质,该存储介质中存储至少一条机器可执行指令,机器执行至少一条机器可执行指令以执行如上所述的嵌入式系统驱动层的实现方法。
根据本申请的一个方面,提供了一种嵌入式系统,该系统包括如上所述的嵌入式系统驱动层实现装置。
根据本申请的一个方面,提供了一种嵌入式系统,该系统包括如上所述的非暂态易失性机器可读存储介质。
根据本申请的一个方面,提供了一种片上系统,包括如上所述的嵌入式系统。
根据本申请的一个方面,提供了一种相机,该相机中包括如上所述的片上系统。
在本申请实施例提供的嵌入式系统中,用户层与驱动层相分离、驱动层内部松耦合,能够提高嵌入式系统的可移植性。从而本申请实施例提供的嵌入式系统能够解决现有技术中嵌入式系统存在的耦合性高、可移植性差的问题。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本申请实施例提供的一种嵌入式系统的结构框图;
图2为本申请实施例提供的另一种嵌入式系统的结构框图;
图3为本申请实施例提供的嵌入式系统的驱动层的实现方法的处理流程图;
图4为本申请实施例提供的驱动层执行外设初始化处理的流程图;
图5为本申请实施例提供的驱动层执行用户注册处理的流程图;
图6为本申请实施例提供的驱动层执行数据发送处理的流程图;
图7为本申请实施例提供的驱动层执行数据接收处理的流程图;
图8为图7中步骤704的处理流程图;
图9为图7中步骤704的另一处理流程图;
图10为本申请实施例提供的嵌入式系统的驱动层的实现装置的结构框图;
图11为本申请实施例提供的嵌入式系统的驱动层的实现装置的另一结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1中示出了本申请实施例提供的一种嵌入式系统,该嵌入式系统1包括用户层11和驱动层12,驱动层12中包括多个驱动接口121和多个驱动模块122,其中,一个驱动接口121对应于一个驱动模块122。
在一些实施例中,外设可以是网卡、串口、I2C等设备。
在一些实施例中,驱动层12的配置可如图1所示,即驱动层12包括多个驱动接口121、以及每个驱动接口121各自对应的一个驱动模块122。通过在驱动层12中设置驱动接口121和驱动模块122,可以对驱动层12的内部结构进行规划和分离,能够实现驱动层12内部接口和模块的松耦合状态。
在另一些实施例中,如图2所示,可以在驱动层12配置一个驱动接口单元123和至少一个驱动执行单元124,在驱动接口单元123中配置多个驱动接口121,在每个驱动执行单元124中配置至少一个驱动模块122。驱动接口单元123是面向用户层11的驱动接口层,驱动执行单元124是面向外设的驱动执行层。用户层11加载驱动接口单元123后,调用驱动接口单元123中的驱动接口121,驱动接口121进一步地调用驱动模块122。在具体的应用场景中,可以将一个驱动接口单元123配置为一个驱动接口文件,将一个驱动执行单元124配置为一个驱动执行文件。通过设置驱动接口单元123和驱动执行单元124,能够进一步对驱动层12的内部结构进行规划和分离,能够实现驱动层12内部接口和模块的松耦合状态。
图3中示出了本申请实施例提供的嵌入式系统的驱动层的实现方法的处理流程,也即图1中驱动层12的工作原理,包括:
步骤301、根据来自用户层的调用,驱动接口调用对应的驱动模块;
步骤302、驱动模块根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口返回操作结果;
步骤303、驱动接口向用户层返回来自驱动模块的操作结果。
在本申请实施例提供的技术方案中,驱动接口为用户层提供与外设相关的操作的接口,驱动模块执行具体的与外设相关的操作,驱动接口将驱动模块返回的结果返回给用户层。用户层的运行和处理与驱动层的运行和处理相分离,用户层通过调用驱动层来实现与外设相关的操作,驱动层相对于用户层而言处于黑盒状态,也即用户层与驱动层之间的依赖性较低、为松耦合状态。驱动层内部为模块化设置,相对应的接口和模块只响应于用户层的调用来执行操作,接口之间以及模块之间不存在依赖关系,相对应的接口和模块只与操作相关,驱动层内部能够实现松耦合状态。
从而,在本申请实施例提供的嵌入式系统中,用户层与驱动层相分离、驱动层内部松耦合,能够提高嵌入式系统的可移植性。从而本申请实施例提供的嵌入式系统能够解决现有技术中嵌入式系统存在的耦合性高、可移植性差的问题。
在一些实施例中,用户层触发的操作可以分为外设操作和用户操作,外设操作执行针对外设的诸如初始化的操作,用户操作执行针对用户的诸如注册、数据收/发的操作。在应用场景中,根据具体外设是哪种设备,外设操作和用户操作还可以包括其它的操作,本申请这里不做具体限定。相对应地,驱动接口可以包括外设接口和用户接口,驱动模块包括外设模块和用户模块。本申请实施例在驱动层内部进行与操作相关的模块化设置,根据操作类别来设置对应的驱动接口和驱动模块,能够进一步地对驱动层的内部结构进行规划和分离,实现驱动层内部接口和模块的松耦合状态。
响应于用户层触发的不同的操作调用,驱动接口和驱动模块执行不同的操作。
在一些实施例中,外设接口包括初始化接口、外设模块包括初始化模块,并且,在驱动层中保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数,地址参数中可以包括为外设配置的IP地址、MAC地址,存储参数中可以包括为外设配置的缓存地址、缓存大小、寄存器信息。在其他一些实施例中,驱动参数还可以保存在驱动执行单元中。在另一些实施例中,驱动参数中还可以包括其它的参数,并且驱动数据可以进一步被保存为一个结构体。本申请实施例中,在驱动层中保存预设的驱动数据,能够便于后续移植嵌入式系统时,仅针对该部分内容进行修改,而不需要对驱动接口和驱动模块进行修改。
在用户层对驱动层发起初始化操作调用时,图4中示出了驱动层的外设初始化处理流程,包括:
步骤401、初始化接口响应于来自用户层的初始化操作调用,调用初始化模块;
步骤402、初始化模块响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;
其中,初始化模块对外设执行了初始化操作后,根据驱动数据中的地址参数为外设进行地址配置,例如为外设配置IP地址和MAC地址,根据存储参数为外设分配存储资源,例如为外设配置指定地址和大小的缓存和寄存器资源;
步骤403、初始化模块建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;
其中,外设标识可以是数字、字母或者文字的组合,外设标识唯一地指向该外设,以及该外设具有的地址资源和存储资源;
进一步地,初始化模块还保存建立的该对应关系;
步骤404、初始化模块向初始化接口返回外设标识;
步骤405、初始化接口向用户层返回来自初始化模块的外设标识。
通过上述处理,驱动层将外设标识返回给用户层,用户层并不知晓驱动层中对外设进行的操作和处理,用户层仅知晓该外设的标识。用户层在后续触发其它的操作时根据该外设标识来指定外设。在驱动层内部,驱动模块根据外设标识来定位外设以及外设的地址资源和存储资源。
在一些实施例中,用户接口包括注册接口,用户模块包括注册模块。在用户层对驱动层发起用户注册调用时,图5中示出了驱动层的用户注册处理流程,包括:
步骤501、注册接口响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数。
其中,外设标识即为在图4所示处理中,由驱动层返回给用户层的。在一些实施例中,用户数据通道参数包括外设端口号。在另一些实施例中,用户数据通道参数中还可以进一步包括可调用的解析层的协议解析模块的标识,在后续接收数据的过程中,数据接收模块将调用该协议解析模块。在另一些实施例中,用户数据通道参数还可以包括在外设的存储资源中为用户分配的存储资源参数,包括存储地址和存储大小。在其它的实施例中,根据应用场景的需要,用户数据通道参数还可以包括其它的参数,本申请这里不做具体限定。
步骤502、注册接口调用注册模块,并向注册模块传递外设标识和用户数据通道参数。
步骤503、注册模块响应于注册接口的调用、获取外设标识和用户数据通道参数。
步骤504、注册模块根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源。
其中,注册模块根据外设标识定位对应的外设,并且在为该外设配置的存储资源中为用户配置用户的存储资源。
注册模块为用户分配存储资源时,在一些实施例中,在用户数据通道参数中包括为用户配置的存储资源参数时,注册模块可以根据该存储资源参数,在外设的存储资源中为用户配置存储指定地址和大小的存储资源。在另一实施例中,注册模块可以根据预定的分配规则,在外设的存储资源中为用户配置存储指定地址和大小的存储资源;其中,分配规则中包括对外设的存储资源进行分配的规则,例如,依次将外设存储资源中的指定比例或指定大小的存储资源分配给新注册的用户。
步骤505、注册模块根据用户数据通道参数,在确定的外设上为用户配置数据通道资源。
例如,注册模块将用户数据通道参数指定的外设端口号配置给用户。在另一些实施例中,在用户数据通道参数中还包括协议解析模块标识的情况下,注册模块还为用户配置该协议解析模块标识。
步骤506、注册模块建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识。
进一步地,注册模块还保存建立的用户对应关系。
其中,建立的用户标识能够唯一地标识一个用户,通过外设标识能够定位到用户所注册的外设,并且数据通道资源是用户专用的并非复用、能够唯一对应用户,通过用户数据通道资源数据(例如外设端口号)能够定位到相应的用户。
在建立的用户对应关系中,用户描述符可链接如下信息:该用户注册的外设、该外设的地址资源(例如包括外设的IP地址和MAC地址)、该用户注册在该外设上的端口号、在该外设的存储资源中为该用户分配的存储资源。
步骤507、注册模块向注册接口返回用户标识;
步骤508、注册接口将来自注册模块的用户标识返回给用户层。
通过上述处理,驱动层将用户标识返回为用户层,用户层并不知晓用户注册的具体信息,以及驱动层进行的注册处理和操作。用户层在后续触发关于用户的操作时,根据该用户标识定位到对应的用户。在驱动层内部,驱动模块根据用户标识对应的外设标识定位到外设,根据用户标识中的用户数据通道资源数据(例如外设端口号)在外设上定位到相应的用户。
在一些实施例中,用户接口包括数据发送接口,用户模块包括数据发送模块。在用户层对驱动层发起数据发送调用时,图6中示出了驱动层的数据发送处理流程,包括:
步骤601、数据发送接口响应来自用户层的调用、获取用户层传递的用户标识。
其中,用户标识即为在图5所示处理中,由驱动层返回给用户层的,用户层根据用户标识指定用户。
步骤602、数据发送接口调用数据发送模块,并将用户标识传递给数据发送模块。
步骤603、数据发送模块响应数据发送接口的调用、获取数据发送模块传递的用户标识。
步骤604、数据发送模块根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送。
如上所述,在驱动层内部已经建立了用户对应关系,数据发送模块根据用户标识能够确定对应的用户对应关系,根据用户对应关系确定用户注册的外设以及用户在该外设上的存储资源的地址,并从该存储资源中获取用户要发送的数据,通过用户对应关系中指示的用户数据通道来发送该数据。
步骤605、数据发送模块向数据发送接口返回发送操作结果。
也即数据发送模块向数据发送接口反馈发送操作是否成功的信息。
步骤606、数据发送接口将来自数据发送模块的发送操作结果返回给用户层。
在上述处理过程中,用户层触发数据发送操作后,将用户标识传递给驱动层,并获取驱动层反馈的数据发送是否成功的信息。用户层并不参与或执行具体的数据发送过程,驱动层响应用户层的调用,根据用户标识将用户的数据发送出去。上述处理能够实现用户层和驱动层的分离,使得用户层和驱动层处于松耦合状态。
在一些实施例中,用户接口包括数据接收接口,用户模块包括数据接收模块。在用户层对驱动层发起数据接收调用时,图7中示出了驱动层的数据接收处理流程,包括:
步骤701、数据接收接口响应于来自用户层的调用、获取用户层传递的用户标识。
其中,该标识即为在图5所示处理中,由驱动层返回给用户层的,用户层根据用户标识指定用户。
步骤702、数据接收接口调用数据接收模块,并将用户标识传递给数据接收模块。
步骤703、数据接收模块响应数据接收接口的调用、获取数据接收模块传递的用户标识。
步骤704、数据接收模块根据用户标识接收数据。
步骤705、数据接收模块根据用户标识确定用户的存储地址,将接收到的数据存储到确定的存储地址中。
如上所述,在驱动层内部已经建立了用户对应关系,数据接收模块根据用户标识能够确定对应的用户对应关系,根据用户对应关系确定用户注册的外设以及用户在该外设上的存储资源的地址,将接收到的数据缓存到用户在该外设上的存储地址中。
步骤706、数据接收模块向数据接收接口返回接收操作结果。
也即数据接收模块向数据接收接口反馈发送接收是否成功的信息。
步骤707、数据接收接口将来自数据接收模块的接收结果返回给用户层。
在上述处理过程中,用户层触发数据接收操作后,将用户标识传递给驱动层,并获取驱动层反馈的接收是否成功的信息。用户层并不参与或执行具体的数据接收过程,驱动层根据用户层的调用,根据用户标识接收发送给用户的数据。上述处理能够实现用户层和驱动层的分离。
在不同的实施例中,上述步骤704数据接收模块接收数据的操作可以通过不同的接收方式来实现。本申请实施例提供了如下的两种方式来实施数据接收。
接收方式一,数据接收模块通过查询的方式接收数据。图8中示出了本申请实施例提供的驱动层进行数据接收处理的流程,包括:
步骤704a、数据接收模块查询嵌入式系统是否接收到数据,在嵌入式系统接收到数据的情况下,根据协议解析模块的标识调用协议解析模块,获得协议解析模块解析数据返回的数据的目的地址数据,并且处理进行到步骤704b;在嵌入式系统没有接收到数据的情况下,处理结束。
其中,数据接收模块查询嵌入式系统是否接收到数据,可以通过查询嵌入式系统存储接收数据的寄存器的状态,来确定嵌入式系统是否接收到数据。
其中,如上所述在用户注册的过程中,在一些实施例中用户数据通道参数中包括了解析层的协议解析模块的标识,在数据接收模块主动查询嵌入式系统接收到数据后,可以调用协议解析模块来获取数据的目的地址数据,通目的地址数据中包括IP地址、MAC地址和端口号信息,从而,数据接收模块可以对比协议解析模块解析得到的目的地址数据和用户对应关系中链接的用户注册的外设的IP地址、外设的MAC地址和用户注册的外设端口号,以确定该数据是否是发送给该用户的。
步骤704b、数据接收模块将目的地址信息与用户标识指示的用户数据通道资源进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中,在对比确定不一致的情况下,处理结束。
例如,协议解析模块解析得到的数据的目的地址中包括IP地址为a、MAC地址为b、端口号为c,数据接收模块根据用户标识确定的用户对应关系中指示的外设IP地址为a、MAC地址为b、端口号为c,数据接收模块进行比对后可以确定该数据是发送给用户标识所指的用户的,否则确定该数据不是发送给用户标识所指的用户的。
数据接收模块确定嵌入式系统接收到的数据是发送给该用户的情况下,根据用户标识指示的存储地址,将嵌入式系统接收到的数据存储到为用户分配的存储地址中。
通过接收方式一,数据接收模块能够查询并接收发送给用户的数据。
接收方式二,数据接收模块根据来自协议解析模块的通知接收数据。图9中示出了本申请实施例提供的驱动层进行数据接收处理的流程,包括:
步骤704x、数据接收模块获取解析层的协议解析模块传递的数据源地址信息和目的地址信息;
其中,协议解析模块会对嵌入式系统接收到的数据进行主动解析,获取数据的目的地址数据,并将获取到的数据的目的地址数据发送给数据接收模块;
步骤704y、数据接收模块将目的地址数据与用户标识指示的用户数据通道资源数据和外设地址资源数据进行对比,在对比确定一致的情况下,将嵌入式系统接收到的数据存储到用户标识指示的用户的存储地址中。
如上述接收方式一中所述,数据接收模块对比协议解析模块解析得到的目的地址数据和用户对应关系中保存的为用户对应关系链接的外设端口号,以确定该数据是否是发送给该用户的。在确定嵌入式系统接收到的数据是发送给该用户的情况下,根据用户标识指示的存储地址,将嵌入式系统接收到的数据存储到为用户分配的存储地址中。
通过接收方式二,数据接收模块能够根据协议解析模块的通知来接收发送给用户的数据。
以上对用户层触发的外设操作和用户操作进行了示例性说明,在其他的一些实施例中,根据具体外设设备的不同,外设操作和用户操作中还可以包括其它的操作,相应地,驱动层可以包括对应的接口和模块,以响应用户层的调用、实施具体的操作。
在本申请实施例提供的技术方案中,在系统设置方面,将驱动层和用户层分离设置,用户层和驱动层之间为调用关系,能够实现松耦合状态,在驱动层内部模块化地设置驱动接口和驱动模块,能够实现驱动层内部的松耦合状态。在处理逻辑方面,驱动接口和驱动模块只根据操作进行对应,不同操作对应的驱动接口和驱动模块之间,不存在依赖,对应的驱动接口和驱动模块执行相应的操作,能够实现操作处理之间的分离,降低不同的操作处理之间的依赖关系。从而本申请实施例提供的嵌入式系统能够实现较低的耦合性和较高的可移植性,能够解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
并且,驱动层内部通过模块化配置驱动接口和驱动模块,在将嵌入式系统进行移植时,可只针对关键的预设信息进行修改,例如修改初始化操作涉及的驱动参数,不需要对驱动接口和驱动模块的配置关系、模块内部的处理逻辑和具体的处理过程进行修改。在具体的应用场景中,可以实现较小的代码修改量,嵌入式系统的复用程度高,可移植性高。
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统驱动层的实现装置。
图10中示出了本申请实施例提供的嵌入式系统驱动层的实现装置,该装置包括多个驱动接口1001、以及每个驱动接口各自对应的一个驱动模块1002;其中,
驱动接口1001用于根据来自用户层的调用,调用对应的驱动模块1002;向用户层返回来自驱动模块1002的操作结果;
驱动模块1002用于根据驱动接口的调用,对外设执行相应的驱动操作,并向驱动接口1001返回操作结果。
图11中示出了本申请实施例提供的另一种嵌入式系统驱动层的实现装置,该装置包括一个驱动接口单元1101和至少一个驱动执行单元1102,一个驱动接口单元1101中包括多个驱动接口1001,一个驱动执行单元1102中包括多个驱动模块1002。
图11所示的装置相比图10所示的装置,配置了驱动接口单元1101和驱动执行单元1102。驱动接口单元1101可被用户层加载,并在得到加载后,驱动接口1001得到用户层的调用。
在一些实施例中,在图10或图11所示的装置中还保存有预设的驱动数据,驱动数据中包括为外设配置的地址参数和存储参数。在另一些实施例中,预设的驱动数据可以保存在图11所示的驱动执行单元1102中。
在一些实施例中,在图10或图11所示的装置中,驱动接口1001包括外设接口和用户接口(未在图中示出),驱动模块1002包括外设模块和用户模块(未在图中示出)。
在一些实施例中,外设接口包括初始化接口、外设模块包括初始化模块;初始化接口用于根据来自用户层的调用,调用对应的初始化模块;向用户层返回来自初始化模块的外设标识;
初始化模块用于响应初始化接口的调用,对外设执行初始化操作,根据预设的驱动数据中的地址参数对外设进行地址配置、得到外设地址资源,根据预设的驱动数据中的存储参数为外设分配存储资源、得到外设存储资源;建立外设对应关系,该对应关系包括外设标识、外设地址资源数据和外设存储资源数据的对应关系,为建立的外设对应关系分配外设标识;向初始化接口返回外设标识;其中,地址参数包括IP地址和MAC地址,存储参数包括缓存地址、缓存大小和寄存器信息。
在一些实施例中,用户接口包括注册接口,用户模块包括注册模块;
注册接口用于响应来自用户层的调用、获取用户层传递的外设标识和用户数据通道参数;调用注册模块,并向注册模块传递外设标识和用户数据通道参数;将来自注册模块的用户标识返回给用户层;
注册模块用于响应于注册接口的调用、获取外设标识和用户数据通道参数;根据外设标识确定对应的外设和外设对应关系,根据确定的外设对应关系在外设的存储资源中为用户配置用户存储资源;根据用户数据通道参数,在确定的外设上为用户配置数据通道资源;建立用户对应关系,该对应关系包括外设标识、用户数据通道资源数据和用户存储资源数据的对应关系,为建立的用户对应关系分配用户标识;向注册接口返回用户标识;其中,用户数据通道参数中包括外设的和外设端口号。
在一些实施例中,用户接口包括数据发送接口,用户模块包括数据发送模块;
数据发送接口用于响应来自用户层的调用、获取用户层传递的用户标识;调用数据发送模块,并将用户标识传递给数据发送模块;将来自数据发送模块的发送操作结果返回给用户层;
数据发送模块用于响应数据发送接口的调用、获取数据发送模块传递的用户标识;根据用户标识确定用户的存储资源的地址,从该用户的存储地址中获取数据、通过用户的数据通道资源进行发送;向数据发送接口返回发送操作结果。
在一些实施例中,用户接口包括数据接收接口,用户模块包括数据接收模块;
数据接收接口用于响应于来自用户层的调用、获取用户层传递的用户标识;调用数据接收模块,并将用户标识传递给数据接收模块;将来自数据接收模块的接收结果返回给用户层;
数据接收模块用于响应数据接收接口的调用、获取数据接收模块传递的用户标识;根据用户标识接收数据;根据用户标识确定用户的存储地址,将接收到的数据存储到确定的存储地址中;向数据接收接口返回接收操作结果。
在本申请实施例提供的技术方案中,在系统设置方面,将驱动层和用户层分离设置,用户层和驱动层之间为调用关系,能够实现松耦合状态,在驱动层内部模块化地设置驱动接口和驱动模块,能够实现驱动层内部的松耦合状态。在处理逻辑方面,驱动接口和驱动模块只根据操作进行对应,不同操作对应的驱动接口和驱动模块之间,不存在依赖,对应的驱动接口和驱动模块执行相应的操作,能够实现操作处理之间的分离,降低不同的操作处理之间的依赖关系。从而本申请实施例提供的嵌入式系统能够实现较低的耦合性和较高的可移植性,能够解决现有技术中嵌入式系统的实现方式存在的耦合性高、可移植性差的问题。
基于相同的发明构思,本申请实施例还提供了一种非暂态易失性机器可读存储介质,其特征在于,该存储介质中存储至少一条机器可执行指令,机器执行至少一条机器可执行指令以执行如图3所示的嵌入式系统驱动层的实现方法。
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统,该系统中包括如图10或图11所示的嵌入式系统驱动层的实现装置。
基于相同的发明构思,本申请实施例还提供了一种嵌入式系统,该系统中包括如上所述的非暂态易失性机器可读存储介质。
基于相同的发明构思,本申请实施例还提供了一种片上系统,该片上系统包括如上所述的任一种嵌入式系统。
基于相同的发明构思,本申请实施例还提供了一种相机,该相机包括如上所述的片上系统。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (25)

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.一种非暂态易失性机器可读存储介质,其特征在于,该存储介质中存储至少一条机器可执行指令,机器执行至少一条机器可执行指令以执行权利要求1-10中任一条所述的嵌入式系统驱动层的实现方法。
22.一种嵌入式系统,其特征在于,包括如权利要求11-20中任一项所述的嵌入式系统驱动层实现装置。
23.一种嵌入式系统,其特征在于,包括如权利要求21所述的非暂态易失性机器可读存储介质。
24.一种片上系统,其特征在于,包括如权利要求22或23所述的嵌入式系统。
25.一种相机,其特征在于,包括如权利要求24所述的片上系统。
CN201811639898.1A 2018-12-29 2018-12-29 一种嵌入式系统驱动层的实现方法和装置 Active CN111381868B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811639898.1A CN111381868B (zh) 2018-12-29 2018-12-29 一种嵌入式系统驱动层的实现方法和装置
PCT/CN2019/077047 WO2020133691A1 (zh) 2018-12-29 2019-03-05 一种嵌入式系统驱动层的实现方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811639898.1A CN111381868B (zh) 2018-12-29 2018-12-29 一种嵌入式系统驱动层的实现方法和装置

Publications (2)

Publication Number Publication Date
CN111381868A true CN111381868A (zh) 2020-07-07
CN111381868B CN111381868B (zh) 2021-12-17

Family

ID=71125650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811639898.1A Active CN111381868B (zh) 2018-12-29 2018-12-29 一种嵌入式系统驱动层的实现方法和装置

Country Status (2)

Country Link
CN (1) CN111381868B (zh)
WO (1) WO2020133691A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443115A (zh) * 2020-11-05 2022-05-06 沈阳中科博微科技股份有限公司 一种仪表构件化模型的构建方法及其可配置方法
CN112612523B (zh) * 2020-12-17 2022-06-03 威胜集团有限公司 一种嵌入式设备驱动系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581060A (ja) * 1991-09-24 1993-04-02 Tokyo Electric Co Ltd 駆動部制御装置の検査方法
CN201698602U (zh) * 2009-11-06 2011-01-05 宁波高新区阶梯科技有限公司 多媒体教学一体机
CN107329751A (zh) * 2017-06-28 2017-11-07 浪潮金融信息技术有限公司 驱动层的驱动方法及装置、计算机可读存储介质、终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2245835A2 (en) * 2008-02-08 2010-11-03 Ecrio, Inc. System, method and apparatus for controlling multiple applications and services on a digital electronic device
CN102830983A (zh) * 2011-06-14 2012-12-19 上海未来宽带技术及应用工程研究中心有限公司 一种可动态加载不同终端交换芯片驱动的方法
CN102331935A (zh) * 2011-11-07 2012-01-25 广东天波信息技术股份有限公司 一种嵌入式跨系统软件开发平台
CN102968311B (zh) * 2012-12-13 2015-05-13 中国航空无线电电子研究所 机载嵌入式软件开发平台

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581060A (ja) * 1991-09-24 1993-04-02 Tokyo Electric Co Ltd 駆動部制御装置の検査方法
CN201698602U (zh) * 2009-11-06 2011-01-05 宁波高新区阶梯科技有限公司 多媒体教学一体机
CN107329751A (zh) * 2017-06-28 2017-11-07 浪潮金融信息技术有限公司 驱动层的驱动方法及装置、计算机可读存储介质、终端

Also Published As

Publication number Publication date
WO2020133691A1 (zh) 2020-07-02
CN111381868B (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
US10305823B2 (en) Network interface card configuration method and resource management center
US10917294B2 (en) Network function instance management method and related device
US8788668B2 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
CN106850830B (zh) 一种业务请求处理方法、装置、系统和相关服务器
KR20210031947A (ko) 무선 액세스 네트워크 정보 처리 방법 및 장치, 네트워크 요소 및 저장 매체
US20170373931A1 (en) Method for updating network service descriptor nsd and apparatus
CN105357258B (zh) 一种加速管理节点、加速节点、客户端及方法
CN109314675A (zh) 一种网络切片的确定方法、装置及系统
CN110830282B (zh) 一种用户面功能配置的方法、装置及设备
CN111381868B (zh) 一种嵌入式系统驱动层的实现方法和装置
CN112445865B (zh) 自动化部署区块链网络的方法、装置及云计算平台
CN111597061A (zh) 一种客户端或服务端进行远程过程调用方法及装置
CN109194589B (zh) 一种mdc实现方法及装置
US10353857B2 (en) Parallel processing apparatus and method for controlling communication
KR20230069088A (ko) 컨테이너 클러스터 관리 방법 및 그 시스템
CN108810633B (zh) 弹幕消息传输方法、装置、设备及存储介质
CN114710549A (zh) 一种容器平台中网卡的动态管理方法、系统及业务节点
CN107172139B (zh) 一种无线协议栈及其实现方法
CN111200519B (zh) 数据处理方法、装置、bbu、接入网设备和存储介质
CN113194017B (zh) 设备通信控制方法、装置、设备、系统和存储介质
CN108694040B (zh) 调用处理方法及装置、通信系统
US20220358055A1 (en) Method and apparatus for acquiring device information, storage medium and electronic device
CN115665231A (zh) 服务创建方法、装置以及计算机可读存储介质
CN114356456A (zh) 业务处理方法、装置、存储介质和电子设备
US20220272737A1 (en) Method and apparatus for determining frequency domain resource

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
GR01 Patent grant
GR01 Patent grant