买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种多产品线通用代码架构系统_苏州浪潮智能科技有限公司_201711286652.6 

申请/专利权人:苏州浪潮智能科技有限公司

申请日:2017-12-07

公开(公告)日:2021-01-08

公开(公告)号:CN107967223B

主分类号:G06F13/10(20060101)

分类号:G06F13/10(20060101);G06F8/70(20180101)

优先权:

专利状态码:有效-授权

法律状态:2021.01.08#授权;2018.05.22#实质审查的生效;2018.04.27#公开

摘要:本发明公开了一种多产品线通用代码架构系统,所述架构系统包括libdvr、libcom、libres、drvbox,其中:libdvr为架构系统的最上层,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;libcom为libdvr库层与drvbox驱动层的中间层,包含I2C模块,GPIO模块,UART模块,MTD模块,thread模块,为libdvr提供使用;libres作libdvr的库层与drvbox驱动层的中间层,用于资源的管理和获取;drvbox作为底层驱动层,供libcom库调用。本发明针对采用不同主控芯片的硬件产品,使用同一套软件框架进行开发,将硬件、产品资源的差异化进行统一管理,屏蔽到底层,实现不管使用哪家的芯片,对上层开发人员来说,都是使用统一的函数库接口。

主权项:1.一种多产品线通用代码架构系统,其特征在于,所述架构系统包括libdvr、libcom、libres、drvbox,其中:libdvr为架构系统的最上层,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;libcom为libdvr库层与drvbox驱动层的中间层,包含I2C模块,GPIO模块,UART模块,MTD模块,thread模块,为libdvr提供使用;libres作libdvr的库层与drvbox驱动层的中间层,用于资源的管理和获取;drvbox作为底层驱动层,供libcom库调用;所述Libres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件;所述drvbox的主要功能包括GPIO、I2C、资源和看门狗的驱动加载及功能实现,平台资源和产品资源的设计及获取,HWID号的获取;所述libdvr中的每个模块都包含API文件,设备文件,功能文件及资源文件4部分;所述模块的实现包括:在设备文件部分,首先获取设备资源,根据资源中的配置,对设备进行初始化,完成资源的赋值和功能指针的赋值;在设备文件中完成设备的创建和初始化;在功能文件中完成功能的操作,功能文件通过资源来判断;在功能文件中创建相应的设备,功能接口就调用libcom;所述libres在运行时,所有设备的资源都为空,在每个模块初始化完成之后,实现相应模块的资源获取;所述drvbox的实现包括三个部分:1)注册GPIO,I2C,RES,Watchdog设备驱动;2)初始化平台资源;3)获取HWID,初始化产品资源;所述架构系统通过在libcom、drvbox添加新的硬件功能模块的支持,将所述架构系统的软件框架快速移植到其他产品线进行应用。

全文数据:一种多产品线通用代码架构系统技术领域[0001]本发明涉及软件系统设计技术领域,具体涉及一种多产品线通用代码架构系统。背景技术[0002]传统的硬件产品开发一般都是基于SoC芯片厂商打包的方案,这种做法对于单一产品来说利于缩短研发周期,实现产品快速上线。但随着后期产品采用多家S〇C厂商的方案以定位不同的市场需求时,由于不同SoC各家厂商方案不尽相同,因此势必要投入更多的研发人员去维护多条产品线,无形中增大了维护成本,而随着更多新产品的投入研发,这种情况只会越来越糟糕,非常不利于研发工作的可持续推进。发明内容[0003]本发明要解决的技术问题是:针对上述问题,本发明提供一种多产品线通用代码架构系统。[0004]本发明所采用的技术方案为:一种多产品线通用代码架构系统,所述架构系统包括libdvr、libcom、libres、drvbox,其中:libdvr为架构系统的最上层,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;每个模块都是一个独立的整体,模块之间尽量减少互相调用,降低模块的耦合性;1ibcom为1ibdvr库层与drvbox驱动层的中间层,包含I2C模块,GPI0模块,UART模块,MTD模块,thread模块,为libdvr提供使用,可以使结构更加清晰化,方便维护;libres作libdvr库层与drvbox驱动层的中间层,库的功能较为单一,只是用于资源的管理和获取;在这套软件架构中,资源数据的管理和获取是核心部分;drvbox作为底层驱动层,供1ibcom库调用。[0005]所述Libres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件。[0006]所述drvbox的主要功能包括GPI0、I2C、资源和看门狗的驱动加载及功能实现,平台资源和产品资源的设计及获取,HWID号的获取。[0007]所述libdvr中的每个模块都包含API文件,设备文件,功能文件及资源文件4部分。[0008]所述模块的实现包括:在设备文件部分,首先获取设备资源,根据资源中的配置,对设备进行初始化,完成资源的赋值和功能指针的赋值;在设备文件中不做任何功能的操作,单纯完成设备的创建和初始化;在功能文件中完成功能的操作,功能文件可能存在多种,例如alarmS备存在§11〇和i2c两种方式,通过资源来判断;在功能文件中创建相应的gpio或i2c设备,此时的功能接口就调用ubcom。[0009]libres层在运行时,所有设备的资源都为空,只有在每个模块初始化完成之后,才会实现相应模块的资源获取,资源获取的是从内核态的拷贝。[0010]所述drvbox的实现包括三个部分:1注册GPI0,I2C,RES,Watchdog设备驱动;2初始化平台资源;3获取HffID,初始化产品资源。[0011]所述I2C设备驱动的实现包括:1I2C驱动注册文件,用来注册I2C设备驱动,提供ioctl功能;2I2C功能实现文件,具体实现I2C设备的初始化,读写功能;3I2C资源文件。[0012]所述I2C设备的驱动,通过创建设备节点,使用链表的方式进行管理,当初始化一个I2C设备时,先在链表中查找是否具有相同资源的I2C设备节点,若存在,即可直接使用,若不存在,则创建节点,初始化后加入链表。[0013]所述架构系统通过在libcom、drvb〇X添加新的硬件功能模块的支持,将该软件框架快速移植到其他产品线进行应用。[0014]本发明的有益效果为:本发明针对采用不同主控芯片的硬件产品,使用同一套软件框架进行开发,将硬件、产品资源的差异化进行统一管理,屏蔽到底层,实现不管使用哪家的芯片,对上层开发人员来说,都是使用统一的函数库接口。提高研发效率,降低研发成本。附图说明[0015]图1为本发明代码架构图;图2为alarm模块文件结构图;图3为I2C资源结构图;图4为I2cDevProbe流程图;图5为libres资源获取示意图;图6为drvbox的实现流程图;图7为I2C初始化流程图。具体实施方式[0016]根据说明书附图,结合具体实施方式对本发明进一步说明:实施例1如图1所不,一种多产品线通用代码架构系统,所述架构系统包括libdvr、libcom、libres、drvbox,其中:libdvr为架构系统的最上层,上层各API库的统称,提供给应用层调用,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;每个模块都是一个独立的整体,模块之间尽量减少互相调用,降低模块的耦合性;1ibcom为1ibdvr库层与drvbox驱动层的中间层,包含12C模块,GPI0模块,UART模块,MTD模块,thread模块,为1ibdvr提供使用,使结构更加清晰化,方便维护;1ibres作1ibdvr库层与drvbox驱动层的中间层,库的功能较为单一,只是用于资源的管理和获取;在这套软件架构中,资源数据的管理和获取是核心部分;drvbox作为底层驱动层,供1ibcom库调用。[0017]实施例2l、libdvr库的模块实现libdvr每个模块都是一个独立的整体,模块之间尽量减少互相调用,降低模块的耦合性。每个模块都包含API文件,设备文件,功能文件及资源文件4部分,如图2所示,以alarm模块为例:在device部分,首先获取alarm设备资源,根据资源中的配置,对alarm设备进行初始化,即完成资源的赋值和功能指针的赋值;在device中不做任何功能的操作,单纯完成设备的创建和初始化;在fun文件中才会完成功能的操作,功能文件可能存在多种,例如alarn^5备存在gpi0和i2c两种方式,通过资源来判断。在功能文件中会创建相应的gpio或i2c设备,此时的功能接口就会调用1ibcom。[0018]2、1ibcom库的模块实现1ibcom库包含多个模块,每个模块的设计思路类似,下面以I2C模块为例:12C模块有两种方式实现,分别为芯片自带12C及GP10模拟12C两种方式;I2C设备采用链表进行管理,查找设备时,若I2C的采用的方式不同,直接返回无法找至IJ,若方式相同,gpio模拟方式需要判断port与bit,芯片自带I2C需要判断Busid是否相同;I2C设备资源如图3所示,I2cDeVPr〇be调用流程如图4所示。[0019]3、libres的实现libres库的功能较为单一,只是用于资源的管理和获取,在整个软件框架设计中,资源数据的管理和获取是核心部分。1ibres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件。在drvbox成功加载之后,资源结构体中包含了所有的资源数据。libres层在运行时,所有设备的资源都为空,只有在每个模块初始化完成之后,才会实现相应模块的资源获取,资源获取的时候实际上是从内核态的拷贝,如图5所示。[0020]4、drvbox的实现分为三个部分:1注册GPIO,I2C,RES,Watchdog等设备驱动;2初始化平台资源;3获取HffID,初始化产品资源。[0021]具体的实现流程如图6所示。[0022]获取HWID的方式有多种,例如通过读取8路GPI0引脚的高低电平来获取或者通过I2C读单片机来获取,因此在获取HWID前,必须先初始化GPI0和I2C。[0023]其中,I2C驱动模块实现包括:1I2C驱动注册文件,用来注册I2C驱动,提供ioctl功能;2I2C功能实现文件,具体实现I2C的初始化,读写功能;3I2C资源文件。[0024]其中,为实现I2C驱动设备的良好管理,为其创建了设备节点,使用链表的方式进行管理。当上次初始化一个I2C设备时,会先在链表中查找是否具有相同资源的I2C设备节点,若存在,即可直接使用,若不存在,则创建节点,初始化后加入链表,I2C初始化如图7所7J\〇[0025]I2C的实现方式有GPIO模拟和标准I2C两种,读写协议有标准I2C协议和MCU协议两种。当产品资源配置为GPI0模拟I2C时,I2C设备的读写指针需要赋值为GPI0模拟的读写接口。当配置为标准I2C时,I2C设备的读写指针则赋值为标准的读写接口。同理,读写协议的不同也采用同样的方式。[0026]实施y式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

权利要求:1.一种多广品线通用代码架构系统,其特征在于,所述架构系统包括1ibdvr、libcom、libres、drvbox,其中:1ibdvr为架构系统的最上层,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;1ibcom为1ibdvr库层与drvbox驱动层的中间层,包含I2C模块,GPI0模块,UART模块,MTD模块,thread模块,为1ibdvr提供使用;libres作libdvr的库层与drvbox驱动层的中间层,用于资源的管理和获取;drvbox作为底层驱动层,供1ibcom库调用。2.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述Libres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件。3.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述drvbox的主要功能包括GPI0、I2C、资源和看门狗的驱动加载及功能实现,平台资源和产品资源的设计及获取,HWID号的获取。4.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述libdvr中的每个模块都包含API文件,设备文件,功能文件及资源文件4部分。5.根据权利要求4所述的一种多产品线通用代码架构系统,其特征在于,所述模块的实现包括:在设备文件部分,首先获取设备资源,根据资源中的配置,对设备进行初始化,完成资源的赋值和功能指针的赋值;在设备文件中完成设备的创建和初始化;在功能文件中完成功能的操作,功能文件通过资源来判断;在功能文件中创建相应的设备,功能接口就调用libcom。6.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述libres在运行时,所有设备的资源都为空,在每个模块初始化完成之后,实现相应模块的资源获取。7.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述drvbox的实现包括三个部分:1注册GPI0,I2C,RES,Watchdog设备驱动;2初始化平台资源;3获取HWID,初始化产品资源。8.根据权利要求7所述的一种多产品线通用代码架构系统,其特征在于,所述I2C设备驱动的实现包括:1I2C驱动注册文件,用来注册I2C设备驱动,提供i〇ctl功能;21况功能实现文件,具体实现UC设备的初始化和读写功能;3I2C资源文件。9.根据权利要求8所述的一种多产品线通用代码架构系统,其特征在于,所述I2C设备的驱动,通过创建设备节点,使用链表的方式进行管理。10.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述架构系统通过在1ibcom、drvbox添加新的硬件功能模块的支持,将该软件框架快速移植到其他产品线进行应用。~

百度查询: 苏州浪潮智能科技有限公司 一种多产品线通用代码架构系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。