首页> 中国专利> 一种调度式嵌入式应用软件架构及其实现方法

一种调度式嵌入式应用软件架构及其实现方法

摘要

本发明公开了一种调度式嵌入式应用软件架构及其实现方法。架构包括基于控制器芯片内部或外部添加的功能模块存储区域、应用层功能区管理模块;功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用层功能区管理模块管理;应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示,以及根据各个功能区功能运行指示启用或关闭各个功能区功能。本发明使用方便,在应用程序开发过程中,可以将各个功能模块进行独立开发、功能测试以及程序更新;同时,在程序运行过程中,应用程序可以根据运行条件启用某一个或多个功能区独立、分别或协同的执行需求功能。

著录项

  • 公开/公告号CN105786502A

    专利类型发明专利

  • 公开/公告日2016-07-20

    原文格式PDF

  • 申请/专利号CN201610107904.3

  • 申请日2016-02-26

  • 分类号

  • 代理机构成都顶峰专利事务所(普通合伙);

  • 代理人赵正寅

  • 地址 610000 四川省成都市天府新区华阳街道天府大道南段846号

  • 入库时间 2023-06-19 00:06:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-03

    授权

    授权

  • 2016-08-17

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20160226

    实质审查的生效

  • 2016-07-20

    公开

    公开

说明书

技术领域

本发明专利涉及一种基于微控制器芯片内部或外部存储区域的调度式嵌入式应用软件架构,尤其是能够符合应用功能需求多样但部分应用功能使用频率和实时性要求不高的嵌入式应用开发和低端主控芯片进行多功能嵌入式应用开发,具体为一种调度式嵌入式应用软件架构及其实现方法。

背景技术

目前,公知的嵌入式软件架构是采用分层、模块化方式,将嵌入式应用开发分为应用功能开发、硬件底层驱动开发和硬件抽象开发。由于应用功能开发对功能需求的非通用性,公知的嵌入式软件架构并未对应用软件架构进行明确的定义。实际开发过程中,应用功能开发需要根据实际应用需求进行不同的调整,复杂多样的应用需求使得应用功能开发对开发人员和控制器芯片的要求越来越高,也使得软件版本不停的更新。复杂的嵌入式应用功能开发需要投入更多的控制器硬件成本、更多的开发精力、更多的测试用例进行功能的验证。同时,对于已经发布的产品的软件版本更新以及更新过程中出现的故障处理也需要花费更多的时间和人力成本。

发明内容

本发明的目的在于提供一种调度式嵌入式应用软件架构及其实现方法,主要解决现有嵌入式应用开发过程中复杂多样的应用需求对应用功能开发的难度高,对控制器性能的需求高,以及后期软件版本更新过程中出现故障的几率高的问题。该软件架构不仅可以完全兼容当前公知的嵌入式软件架构,而且使用方便,能够有效的降低在复杂多样的功能需求的应用软件开发中对控制器性能的需求;同时,还能降低开发难度和减少后期软件版本更新过程中出现故障的几率。

为了实现上述目的,本发明采用的技术方案如下:

一种调度式嵌入式应用软件架构,包括基于控制器芯片内部或外部添加的功能模块存储区域、应用层功能区管理模块;

功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用层功能区管理模块统一调度和执行管理;功能模块存储区域以实际功能进行划分,而非实际硬件分区单位划分,各个功能区既可以相互独立运行,又可以相互协调运行。

应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示,以及根据各个功能区功能运行指示启用或关闭各个功能区功能。

具体地,所述功能区包括设于其顶部区域的功能运行指示,设于底部区域的下一个功能区跳转指示,以及位于顶部区域和底部区域之间的功能执行区域。所述功能运行指示包括该功能区的编号、功能号、优先级、运行次数、启用开关、运行时间等用于向应用层功能区管理模块指示如何运行该功能区的所有标志信息;功能执行区域则包含该功能区功能运行的所有编译源码;功能区跳转指示记录下一个被指向的功能区位置。

更进一步地,所述应用层功能区管理模块包括按照时间先后顺序依次执行的应用层访问功能区请求管理模块、功能区运行状态管理模块、功能区功能启用与关闭管理模块。程序运行过程中,应用层功能区管理模块不仅可以与其它并行功能模块同时运行,也可以与其它串行功能模块根据时间顺序运行。

再进一步地,所述功能区运行状态管理模块同时根据对外部触发条件的监测结果和应用层访问功能区请求管理模块的请求结果对功能区运行状态进行设置。

一种调度式嵌入式应用软件架构的实现方法,包括如下步骤:

S1、应用程序烧录入控制器前,设定控制器芯片允许并行运行的功能模块存储区域、最大功能区数、主应用程序存储区域、默认运行功能区;

主应用程序运行

主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调度器运行,在主应用程序运行开始时刻,首先遍历控制器芯片设定的功能模块存储区域,获得当前控制器芯片功能区总数,依据各个功能区的功能运行指示和对应的地址信息组成一个总调度队列;

应用层功能区管理模块依据获得的总调度队列,循环执行以下操作;

S21、查找总调度队列中满足运行条件的功能区;如果存在多个符合运行条件的功能区,则依据优先级、编号选择优先执行的功能区,相同优先级下以编号小的功能区优先执行;如果不存在符合运行条件的功能区,则运行设定的默认运行功能区;如果既不存在符合运行条件的功能区,也没有设定默认运行功能区,则不断轮序总调度队列;

S22、执行查找到的功能区,应用层功能区管理模块首先将该功能区编译源码在RAM区域注册,即拷贝该功能区编译源码至RAM区域,然后将主应用程序跳转至该功能区编译源码注册区域执行;

S23、应用层功能区管理模块定期被强制执行,当此时某一功能区正在执行,应用层功能区管理模块综合当前满足运行条件的功能区优先级、编号和当前运行功能区跳转指示的下一功能区优先级、编号,执行以下操作:

如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区,应用层功能区管理模块对下一功能区与当前满足运行条件的功能区优先级、编号,选择优先执行的功能区;

如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前满足运行条件的功能区优先级、编号,选择优先执行的功能区;

如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优先执行的功能区;

如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设定并行运行最大功能区数,应用层功能区管理模块保留该功能区。

应用程序更新

更新功能区时,更新工具根据控制器芯片设定的功能模块存储区域进行单个或多个功能区更新,设定更新功能区的功能运行指示和下一个功能区跳转指示;

更新主应用程序,更新工具根据控制器芯片设定的功能模块存储区域进行整个应用程序更新;

更新整个应用程序,更新工具依次执行主应用程序和功能区更新。

与现有技术相比,本发明具有以下有益效果:

本发明使用方便,在应用程序开发过程中,可以将各个功能模块进行独立开发、功能测试以及程序更新;同时,在程序运行过程中,应用程序可以根据运行条件启用某一个或多个功能区独立、分别或协同的执行需求功能。再者,应用程序也可以根据运行条件关闭某一个或多个功能区,降低控制器芯片的负荷。

附图说明

图1为本发明-实施例的应用层功能区管理模块的架构图。

图2为本发明-实施例的应用层功能区管理实施的流程图。

图3为本发明-实施例的运行主应用程序运行示例图。

图4为本发明-实施例的嵌入式硬件软件更新应用示例图。

具体实施方式

下面结合实施例和附图对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。

实施例

一种调度式嵌入式应用软件架构,包括基于控制器芯片内部或外部添加的功能模块存储区域、应用层功能区管理模块;

功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用层功能区管理模块管理;

应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示,以及根据各个功能区功能运行指示启用或关闭各个功能区功能。

如图1所示,功能区应用层功能区管理模块是本软件架构中关键功能模块。程序运行过程中,应用层功能区管理模块不仅可以与其它并行功能模块同时运行,也可以与其它串行功能模块根据时间顺序运行。应用层功能区管理模块又细分为应用层访问功能区请求管理模块、功能区运行状态管理模块和功能区功能启用与关闭管理模块三部分,依据时间先后顺序,三部分管理模块依次执行。同时,功能区运行状态管理模块同时根据对外部触发条件的监测结果和应用层访问功能区请求管理模块的访问请求结果对功能区状态进行设置。

如图2所示,控制器芯片内部或外部功能模块存储区域依次分为多个功能区,每一个功能区又细分为功能运行指示、功能区跳转指示和功能执行区域。功能运行指示包含该功能区的编号、功能号、优先级、运行次数、启用开关、运行时间等用于向应用层功能区管理模块指示如何运行该功能区的所有标志信息。功能执行区域则包含该功能区功能运行的所有必须编译源码。功能区跳转指示记录下一个被指向的功能区位置。

如图3所示,主应用程序在控制器RAM区域运行,主应用程序根据实际需求在指定功能区运行,也可以根据需求条件依次启用指定功能区,还可以根据需求条件注销指定功能区。整个运行过程中,可以仅有正在运行的功能区保留在控制器RAM区域,待启用功能区和关闭功能区均可存在于微控制器芯片内部或外部存储区。

具体的运行过程为:

S1、应用程序烧录入控制器前,设定控制器芯片允许并行运行的功能模块存储区域、最大功能区数、主应用程序存储区域、默认运行功能区;

主应用程序运行

主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调度器运行,在主应用程序运行开始时刻,首先遍历控制器芯片设定的功能模块存储区域,获得当前控制器芯片功能区总数,依据各个功能区的功能运行指示和对应的地址信息组成一个总调度队列;

应用层功能区管理模块依据获得的总调度队列,循环执行以下操作;

S21、查找总调度队列中满足运行条件的功能区;如果存在多个符合运行条件的功能区,则依据优先级、编号选择优先执行的功能区,相同优先级下以编号小的功能区优先执行;如果不存在符合运行条件的功能区,则运行设定的默认运行功能区;如果既不存在符合运行条件的功能区,也没有设定默认运行功能区,则不断轮序总调度队列;

S22、执行查找到的功能区,应用层功能区管理模块首先将该功能区编译源码在RAM区域注册,即拷贝该功能区编译源码至RAM区域,然后将主应用程序跳转至该功能区编译源码注册区域执行;

S23、应用层功能区管理模块定期被强制执行,当此时某一功能区(功能管理区模块被强制执行时正在运行的某个功能区)正在执行,应用层功能区管理模块综合当前满足运行条件的功能区优先级、编号和当前运行功能区跳转指示的下一功能区优先级、编号,执行以下操作:

如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区,应用层功能区管理模块对下一功能区与当前满足运行条件的功能区优先级、编号,选择优先执行的功能区;

如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前满足运行条件的功能区优先级、编号,选择优先执行的功能区;

如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优先执行的功能区;

如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设定并行运行最大功能区数,应用层功能区管理模块保留该功能区。

如图4所示,依据对控制器芯片内部或外部的存储区域的功能区划分,不同的功能模块可以放置在一个或多个功能区内。在对嵌入式硬件中软件更新过程中,可以仅对某一个功能模块进行更新(或添加新功能模块)。同时,在开发应用程序过程中,可以将指定的功能模块进行独立的应用开发和源码编译。最终,通过专业的代码更新工具将编译后的独立功能模块源码更新或添加至控制器芯片内部或外部指定的功能区。

应用程序更新包括:

更新功能区时,更新工具根据控制器芯片设定的功能模块存储区域进行单个或多个功能区更新,设定更新功能区的功能运行指示和下一个功能区跳转指示;

更新主应用程序,更新工具根据控制器芯片设定的功能模块存储区域进行整个应用程序更新;

更新整个应用程序,更新工具依次执行主应用程序和功能区更新。

按照上述实施例,便可很好地实现本发明。值得说明的是,基于上述结构设计的前提下,为解决同样的技术问题,即使在本发明上做出的一些无实质性的改动或润色,所采用的技术方案的实质仍然与本发明一样,故其也应当在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号