一种多产品线通用代码架构系统技术方案

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

【技术实现步骤摘要】
一种多产品线通用代码架构系统
本专利技术涉及软件系统设计
,具体涉及一种多产品线通用代码架构系统。
技术介绍
传统的硬件产品开发一般都是基于SoC芯片厂商打包的方案,这种做法对于单一产品来说利于缩短研发周期,实现产品快速上线。但随着后期产品采用多家SoC厂商的方案以定位不同的市场需求时,由于不同SoC各家厂商方案不尽相同,因此势必要投入更多的研发人员去维护多条产品线,无形中增大了维护成本,而随着更多新产品的投入研发,这种情况只会越来越糟糕,非常不利于研发工作的可持续推进。
技术实现思路
本专利技术要解决的技术问题是:针对上述问题,本专利技术提供一种多产品线通用代码架构系统。本专利技术所采用的技术方案为:一种多产品线通用代码架构系统,所述架构系统包括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部分。所述模块的实现包括:在设备文件部分,首先获取设备资源,根据资源中的配置,对设备进行初始化,完成资源的赋值和功能指针的赋值;在设备文件中不做任何功能的操作,单纯完成设备的创建和初始化;在功能文件中完成功能的操作,功能文件可能存在多种,例如alarm设备存在gpio和i2c两种方式,通过资源来判断;在功能文件中创建相应的gpio或i2c设备,此时的功能接口就调用libcom。libres层在运行时,所有设备的资源都为空,只有在每个模块初始化完成之后,才会实现相应模块的资源获取,资源获取的是从内核态的拷贝。所述drvbox的实现包括三个部分:1)注册GPIO,I2C,RES,Watchdog设备驱动;2)初始化平台资源;3)获取HWID,初始化产品资源。所述I2C设备驱动的实现包括:1)I2C驱动注册文件,用来注册I2C设备驱动,提供ioctl功能;2)I2C功能实现文件,具体实现I2C设备的初始化,读写功能;3)I2C资源文件。所述I2C设备的驱动,通过创建设备节点,使用链表的方式进行管理,当初始化一个I2C设备时,先在链表中查找是否具有相同资源的I2C设备节点,若存在,即可直接使用,若不存在,则创建节点,初始化后加入链表。所述架构系统通过在libcom、drvbox添加新的硬件功能模块的支持,将该软件框架快速移植到其他产品线进行应用。本专利技术的有益效果为:本专利技术针对采用不同主控芯片的硬件产品,使用同一套软件框架进行开发,将硬件、产品资源的差异化进行统一管理,屏蔽到底层,实现不管使用哪家的芯片,对上层开发人员来说,都是使用统一的函数库接口。提高研发效率,降低研发成本。附图说明图1为本专利技术代码架构图;图2为alarm模块文件结构图;图3为I2C资源结构图;图4为I2cDevProbe流程图;图5为libres资源获取示意图;图6为drvbox的实现流程图;图7为I2C初始化流程图。具体实施方式根据说明书附图,结合具体实施方式对本专利技术进一步说明:实施例1如图1所示,一种多产品线通用代码架构系统,所述架构系统包括libdvr、libcom、libres、drvbox,其中:libdvr为架构系统的最上层,上层各API库的统称,提供给应用层调用,包含多个互相独立的模块,每个模块完成各自的功能需求,具体的功能通过调用libcom和libres实现;每个模块都是一个独立的整体,模块之间尽量减少互相调用,降低模块的耦合性;libcom为libdvr库层与drvbox驱动层的中间层,包含I2C模块,GPIO模块,UART模块,MTD模块,thread模块,为libdvr提供使用,使结构更加清晰化,方便维护;libres作libdvr库层与drvbox驱动层的中间层,库的功能较为单一,只是用于资源的管理和获取;在这套软件架构中,资源数据的管理和获取是核心部分;drvbox作为底层驱动层,供libcom库调用。实施例21、libdvr库的模块实现libdvr每个模块都是一个独立的整体,模块之间尽量减少互相调用,降低模块的耦合性。每个模块都包含API文件,设备文件,功能文件及资源文件4部分,如图2所示,以alarm模块为例:在device部分,首先获取alarm设备资源,根据资源中的配置,对alarm设备进行初始化,即完成资源的赋值和功能指针的赋值;在device中不做任何功能的操作,单纯完成设备的创建和初始化;在fun文件中才会完成功能的操作,功能文件可能存在多种,例如alarm设备存在gpio和i2c两种方式,通过资源来判断。在功能文件中会创建相应的gpio或i2c设备,此时的功能接口就会调用libcom。2、libcom库的模块实现libcom库包含多个模块,每个模块的设计思路类似,下面以I2C模块为例:I2C模块有两种方式实现,分别为芯片自带I2C及GPIO模拟I2C两种方式;I2C设备采用链表进行管理,查找设备时,若I2C的采用的方式不同,直接返回无法找到,若方式相同,gpio模拟方式需要判断port与bit,芯片自带I2C需要判断Busid是否相同;I2C设备资源如图3所示,I2cDevProbe调用流程如图4所示。3、libres的实现libres库的功能较为单一,只是用于资源的管理和获取,在整个软件框架设计中,资源数据的管理和获取是核心部分。libres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件。在drvbox成功加载之后,资源结构体中包含了所有的资源数据。libres层在运行时,所有设备的资源都为空,只有在每个模块初始化完成之后,才会实现相应模块的资源获取,资源获取的时候实际上是从内核态的拷贝,如图5所示。4、drvbox的实现分为三个部分:1)注册GPIO,I2C,RES,Watchdog等设备驱动;2)初始化平台资源;3)获取HWID,初始化产品资源。具体的实现流程如图6所示。获取HWID的方式有多种,例如通过读取8路GPIO引脚的高低电平来获取或者通过I2C读单片机来获取,因此在获取HWID前,必须先初始化GPIO和I2C。其中,I2C驱动模块实现包括:1)I2C驱动注册文件,用来注册I2C驱动,提供ioctl功能;2)I2C功能实现文件,具体实现I2C的初始化,读写功能;3)I2C资源文件。其中本文档来自技高网...
一种多产品线通用代码架构系统

【技术保护点】
一种多产品线通用代码架构系统,其特征在于,所述架构系统包括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库调用。2.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述Libres中的资源来源于drvbox,drvbox中的资源来源于产品资源文件。3.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述drvbox的主要功能包括GPIO、I2C、资源和看门狗的驱动加载及功能实现,平台资源和产品资源的设计及获取,HWID号的获取。4.根据权利要求1所述的一种多产品线通用代码架构系统,其特征在于,所述libdvr中的每个模块都包含API文件,设备文件,功能文件及资源文件4部分。5.根据权利要求4所述的一种多产品线通用代码架构系统,其特征在于,所述模块的实现包括:在设备文件部分,首先获取设...

【专利技术属性】
技术研发人员:王鹏
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1