专利名称: | 一种调度式嵌入式应用软件架构及其实现方法 | ||
专利名称(英文): | A embedded application scheduling software architecture and its realizing method | ||
专利号: | CN201610107904.3 | 申请时间: | 20160226 |
公开号: | CN105786502A | 公开时间: | 20160720 |
申请人: | 成都雅骏新能源汽车科技股份有限公司 | ||
申请地址: | 610000 四川省成都市天府新区华阳街道天府大道南段846号 | ||
发明人: | 盛旺; 李红朋; 李建刚; 张龙; 朱长明 | ||
分类号: | G06F9/44; G06F9/445 | 主分类号: | G06F9/44 |
代理机构: | 成都顶峰专利事务所(普通合伙) 51224 | 代理人: | 赵正寅 |
摘要: | 本发明公开了一种调度式嵌入式应用软件架构及其实现方法。架构包括基于控制器芯片内部或外部添加的功能模块存储区域、应用层功能区管理模块;功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用层功能区管理模块管理;应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示,以及根据各个功能区功能运行指示启用或关闭各个功能区功能。本发明使用方便,在应用程序开发过程中,可以将各个功能模块进行独立开发、功能测试以及程序更新;同时,在程序运行过程中,应用程序可以根据运行条件启用某一个或多个功能区独立、分别或协同的执行需求功能。 | ||
摘要(英文): | The invention discloses a built-in application software scheduling framework and its realizing method. Based on controller chip architecture includes internal or external added function module storage area, the application management module functional area; function module storage area, in order to function as the unit is divided into a plurality of functional areas, the application layer of each functional domain management module management; the application management module functional area, real-time monitoring and conditions the function of set up each function operation indicating, and each function according to the function operation indicating enabled or closed the function of each functional area. The invention is easy to use, in the process of the development of an application program, each functional module can be an independent development, the functional test program update and; at the same time, in the course of running of a program, the application program can be opened according to the operating conditions of one or a plurality of domain independent, separately or with the implementation of the demand function. |
1.一种调度式嵌入式应用软件架构,其特征在于,包括基于控制器芯片内 部或外部添加的功能模块存储区域、应用层功能区管理模块; 功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用 层功能区管理模块管理; 应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示, 以及根据各个功能区功能运行指示启用或关闭各个功能区功能。
2.根据权利要求1所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能区包括设于其顶部区域的功能运行指示,设于底部区域的功能区跳转 指示,以及位于顶部区域和底部区域之间的功能执行区域。
3.根据权利要求2所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能运行指示包括该功能区的编号、功能号、优先级、运行次数、启用开 关、运行时间;功能执行区域则包含该功能区功能运行的所有编译源码;功能 区跳转指示记录下一个被指向的功能区位置。
4.根据权利要求3所述的一种调度式嵌入式应用软件架构,其特征在于, 所述应用层功能区管理模块包括按照时间先后顺序依次执行的应用层访问功能 区请求管理模块、功能区运行状态管理模块、功能区功能启用与关闭管理模块。
5.根据权利要求4所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能区运行状态管理模块同时根据对外部触发条件的监测结果和应用层访 问功能区请求管理模块的请求结果对功能区运行状态进行设置。
6.根据权利要求1-5任意一项所述的一种调度式嵌入式应用软件架构的实 现方法,其特征在于,包括如下步骤: S1、应用程序烧录入控制器芯片前,设定控制器芯片允许并行运行的功能 模块存储区域、最大功能区数、主应用程序存储区域、默认运行功能区; 主应用程序运行 主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调 度器运行,组成一个总调度队列,循环执行以下操作; S21、查找总调度队列中满足运行条件的功能区; S22、执行查找到的功能区,应用层功能区管理模块首先将步骤S21中查找 到的功能区编译源码在RAM区域注册,即拷贝该功能区编译源码至RAM区域, 然后将主应用程序跳转至该功能区编译源码注册区域执行; 应用程序更新 更新功能区时,根据控制器芯片设定的功能模块存储区域进行单个或多个 功能区更新,设定更新功能区的功能运行指示和功能区跳转指示; 更新主应用程序,根据控制器芯片设定的功能模块存储区域进行整个应用 程序更新; 更新整个应用程序,更新工具依次执行主应用程序和功能区更新。
7.根据权利要求6所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,所述应用层功能区管理模块组成总调度队列的过程为:在主应用程 序运行开始时刻,首先遍历控制器芯片设定的功能模块存储区域,获得当前控 制器芯片的功能区总数,依据各个功能区的功能运行指示和对应的地址信息组 成一个总调度队列。
8.根据权利要求7所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,所述步骤S21中,查找满足运行条件的功能区的原则为:如果存在 多个符合运行条件的功能区,则依据优先级、编号选择优先执行的功能区,相 同优先级下以编号小的功能区优先执行;如果不存在符合运行条件的功能区, 则运行设定的默认运行功能区;如果既不存在符合运行条件的功能区,也没有 设定默认运行功能区,则不断轮序总调度队列。
9.根据权利要求8所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,在主应用程序运行中,应用层功能区管理模块还定期被强制执行, 当此时某一功能区正在执行,应用层功能区管理模块综合当前满足运行条件的 功能区优先级、编号和当前运行功能区跳转指示的下一功能区优先级、编号, 执行以下操作: 如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区, 应用层功能区管理模块对比下一功能区与当前满足运行条件的功能区优先级、 编号,选择优先执行的功能区; 如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前 满足运行条件的功能区优先级、编号,选择优先执行的功能区; 如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功 能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优 先执行的功能区; 如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设 定并行运行最大功能区数,应用层功能区管理模块保留该功能区。
1.一种调度式嵌入式应用软件架构,其特征在于,包括基于控制器芯片内 部或外部添加的功能模块存储区域、应用层功能区管理模块; 功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用 层功能区管理模块管理; 应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示, 以及根据各个功能区功能运行指示启用或关闭各个功能区功能。
2.根据权利要求1所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能区包括设于其顶部区域的功能运行指示,设于底部区域的功能区跳转 指示,以及位于顶部区域和底部区域之间的功能执行区域。
3.根据权利要求2所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能运行指示包括该功能区的编号、功能号、优先级、运行次数、启用开 关、运行时间;功能执行区域则包含该功能区功能运行的所有编译源码;功能 区跳转指示记录下一个被指向的功能区位置。
4.根据权利要求3所述的一种调度式嵌入式应用软件架构,其特征在于, 所述应用层功能区管理模块包括按照时间先后顺序依次执行的应用层访问功能 区请求管理模块、功能区运行状态管理模块、功能区功能启用与关闭管理模块。
5.根据权利要求4所述的一种调度式嵌入式应用软件架构,其特征在于, 所述功能区运行状态管理模块同时根据对外部触发条件的监测结果和应用层访 问功能区请求管理模块的请求结果对功能区运行状态进行设置。
6.根据权利要求1-5任意一项所述的一种调度式嵌入式应用软件架构的实 现方法,其特征在于,包括如下步骤: S1、应用程序烧录入控制器芯片前,设定控制器芯片允许并行运行的功能 模块存储区域、最大功能区数、主应用程序存储区域、默认运行功能区; 主应用程序运行 主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调 度器运行,组成一个总调度队列,循环执行以下操作; S21、查找总调度队列中满足运行条件的功能区; S22、执行查找到的功能区,应用层功能区管理模块首先将步骤S21中查找 到的功能区编译源码在RAM区域注册,即拷贝该功能区编译源码至RAM区域, 然后将主应用程序跳转至该功能区编译源码注册区域执行; 应用程序更新 更新功能区时,根据控制器芯片设定的功能模块存储区域进行单个或多个 功能区更新,设定更新功能区的功能运行指示和功能区跳转指示; 更新主应用程序,根据控制器芯片设定的功能模块存储区域进行整个应用 程序更新; 更新整个应用程序,更新工具依次执行主应用程序和功能区更新。
7.根据权利要求6所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,所述应用层功能区管理模块组成总调度队列的过程为:在主应用程 序运行开始时刻,首先遍历控制器芯片设定的功能模块存储区域,获得当前控 制器芯片的功能区总数,依据各个功能区的功能运行指示和对应的地址信息组 成一个总调度队列。
8.根据权利要求7所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,所述步骤S21中,查找满足运行条件的功能区的原则为:如果存在 多个符合运行条件的功能区,则依据优先级、编号选择优先执行的功能区,相 同优先级下以编号小的功能区优先执行;如果不存在符合运行条件的功能区, 则运行设定的默认运行功能区;如果既不存在符合运行条件的功能区,也没有 设定默认运行功能区,则不断轮序总调度队列。
9.根据权利要求8所述的一种调度式嵌入式应用软件架构的实现方法,其 特征在于,在主应用程序运行中,应用层功能区管理模块还定期被强制执行, 当此时某一功能区正在执行,应用层功能区管理模块综合当前满足运行条件的 功能区优先级、编号和当前运行功能区跳转指示的下一功能区优先级、编号, 执行以下操作: 如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区, 应用层功能区管理模块对比下一功能区与当前满足运行条件的功能区优先级、 编号,选择优先执行的功能区; 如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前 满足运行条件的功能区优先级、编号,选择优先执行的功能区; 如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功 能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优 先执行的功能区; 如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设 定并行运行最大功能区数,应用层功能区管理模块保留该功能区。
翻译:技术领域
本发明专利涉及一种基于微控制器芯片内部或外部存储区域的调度式嵌入 式应用软件架构,尤其是能够符合应用功能需求多样但部分应用功能使用频率 和实时性要求不高的嵌入式应用开发和低端主控芯片进行多功能嵌入式应用开 发,具体为一种调度式嵌入式应用软件架构及其实现方法。
背景技术
目前,公知的嵌入式软件架构是采用分层、模块化方式,将嵌入式应用开 发分为应用功能开发、硬件底层驱动开发和硬件抽象开发。由于应用功能开发 对功能需求的非通用性,公知的嵌入式软件架构并未对应用软件架构进行明确 的定义。实际开发过程中,应用功能开发需要根据实际应用需求进行不同的调 整,复杂多样的应用需求使得应用功能开发对开发人员和控制器芯片的要求越 来越高,也使得软件版本不停的更新。复杂的嵌入式应用功能开发需要投入更 多的控制器硬件成本、更多的开发精力、更多的测试用例进行功能的验证。同 时,对于已经发布的产品的软件版本更新以及更新过程中出现的故障处理也需 要花费更多的时间和人力成本。
发明内容
本发明的目的在于提供一种调度式嵌入式应用软件架构及其实现方法,主 要解决现有嵌入式应用开发过程中复杂多样的应用需求对应用功能开发的难度 高,对控制器性能的需求高,以及后期软件版本更新过程中出现故障的几率高 的问题。该软件架构不仅可以完全兼容当前公知的嵌入式软件架构,而且使用 方便,能够有效的降低在复杂多样的功能需求的应用软件开发中对控制器性能 的需求;同时,还能降低开发难度和减少后期软件版本更新过程中出现故障的 几率。
为了实现上述目的,本发明采用的技术方案如下:
一种调度式嵌入式应用软件架构,包括基于控制器芯片内部或外部添加的 功能模块存储区域、应用层功能区管理模块;
功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用 层功能区管理模块统一调度和执行管理;功能模块存储区域以实际功能进行划 分,而非实际硬件分区单位划分,各个功能区既可以相互独立运行,又可以相 互协调运行。
应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示, 以及根据各个功能区功能运行指示启用或关闭各个功能区功能。
具体地,所述功能区包括设于其顶部区域的功能运行指示,设于底部区域 的下一个功能区跳转指示,以及位于顶部区域和底部区域之间的功能执行区域。 所述功能运行指示包括该功能区的编号、功能号、优先级、运行次数、启用开 关、运行时间等用于向应用层功能区管理模块指示如何运行该功能区的所有标 志信息;功能执行区域则包含该功能区功能运行的所有编译源码;功能区跳转 指示记录下一个被指向的功能区位置。
更进一步地,所述应用层功能区管理模块包括按照时间先后顺序依次执行 的应用层访问功能区请求管理模块、功能区运行状态管理模块、功能区功能启 用与关闭管理模块。程序运行过程中,应用层功能区管理模块不仅可以与其它 并行功能模块同时运行,也可以与其它串行功能模块根据时间顺序运行。
再进一步地,所述功能区运行状态管理模块同时根据对外部触发条件的监 测结果和应用层访问功能区请求管理模块的请求结果对功能区运行状态进行设 置。
一种调度式嵌入式应用软件架构的实现方法,包括如下步骤:
S1、应用程序烧录入控制器前,设定控制器芯片允许并行运行的功能模块 存储区域、最大功能区数、主应用程序存储区域、默认运行功能区;
主应用程序运行
主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调 度器运行,在主应用程序运行开始时刻,首先遍历控制器芯片设定的功能模块 存储区域,获得当前控制器芯片功能区总数,依据各个功能区的功能运行指示 和对应的地址信息组成一个总调度队列;
应用层功能区管理模块依据获得的总调度队列,循环执行以下操作;
S21、查找总调度队列中满足运行条件的功能区;如果存在多个符合运行条 件的功能区,则依据优先级、编号选择优先执行的功能区,相同优先级下以编 号小的功能区优先执行;如果不存在符合运行条件的功能区,则运行设定的默 认运行功能区;如果既不存在符合运行条件的功能区,也没有设定默认运行功 能区,则不断轮序总调度队列;
S22、执行查找到的功能区,应用层功能区管理模块首先将该功能区编译源 码在RAM区域注册,即拷贝该功能区编译源码至RAM区域,然后将主应用程序 跳转至该功能区编译源码注册区域执行;
S23、应用层功能区管理模块定期被强制执行,当此时某一功能区正在执行, 应用层功能区管理模块综合当前满足运行条件的功能区优先级、编号和当前运 行功能区跳转指示的下一功能区优先级、编号,执行以下操作:
如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区, 应用层功能区管理模块对下一功能区与当前满足运行条件的功能区优先级、编 号,选择优先执行的功能区;
如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前 满足运行条件的功能区优先级、编号,选择优先执行的功能区;
如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功 能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优 先执行的功能区;
如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设 定并行运行最大功能区数,应用层功能区管理模块保留该功能区。
应用程序更新
更新功能区时,更新工具根据控制器芯片设定的功能模块存储区域进行单 个或多个功能区更新,设定更新功能区的功能运行指示和下一个功能区跳转指 示;
更新主应用程序,更新工具根据控制器芯片设定的功能模块存储区域进行 整个应用程序更新;
更新整个应用程序,更新工具依次执行主应用程序和功能区更新。
与现有技术相比,本发明具有以下有益效果:
本发明使用方便,在应用程序开发过程中,可以将各个功能模块进行独立 开发、功能测试以及程序更新;同时,在程序运行过程中,应用程序可以根据 运行条件启用某一个或多个功能区独立、分别或协同的执行需求功能。再者, 应用程序也可以根据运行条件关闭某一个或多个功能区,降低控制器芯片的负 荷。
附图说明
图1为本发明-实施例的应用层功能区管理模块的架构图。
图2为本发明-实施例的应用层功能区管理实施的流程图。
图3为本发明-实施例的运行主应用程序运行示例图。
图4为本发明-实施例的嵌入式硬件软件更新应用示例图。
具体实施方式
下面结合实施例和附图对本发明作进一步说明,本发明的实施方式包括但 不限于下列实施例。
实施例
一种调度式嵌入式应用软件架构,包括基于控制器芯片内部或外部添加的 功能模块存储区域、应用层功能区管理模块;
功能模块存储区域,以功能为单位分为多个功能区,每个功能区均由应用 层功能区管理模块管理;
应用层功能区管理模块,实时监测和条件设置各个功能区的功能运行指示, 以及根据各个功能区功能运行指示启用或关闭各个功能区功能。
如图1所示,功能区应用层功能区管理模块是本软件架构中关键功能模块。 程序运行过程中,应用层功能区管理模块不仅可以与其它并行功能模块同时运 行,也可以与其它串行功能模块根据时间顺序运行。应用层功能区管理模块又 细分为应用层访问功能区请求管理模块、功能区运行状态管理模块和功能区功 能启用与关闭管理模块三部分,依据时间先后顺序,三部分管理模块依次执行。 同时,功能区运行状态管理模块同时根据对外部触发条件的监测结果和应用层 访问功能区请求管理模块的访问请求结果对功能区状态进行设置。
如图2所示,控制器芯片内部或外部功能模块存储区域依次分为多个功能 区,每一个功能区又细分为功能运行指示、功能区跳转指示和功能执行区域。 功能运行指示包含该功能区的编号、功能号、优先级、运行次数、启用开关、 运行时间等用于向应用层功能区管理模块指示如何运行该功能区的所有标志信 息。功能执行区域则包含该功能区功能运行的所有必须编译源码。功能区跳转 指示记录下一个被指向的功能区位置。
如图3所示,主应用程序在控制器RAM区域运行,主应用程序根据实际需 求在指定功能区运行,也可以根据需求条件依次启用指定功能区,还可以根据 需求条件注销指定功能区。整个运行过程中,可以仅有正在运行的功能区保留 在控制器RAM区域,待启用功能区和关闭功能区均可存在于微控制器芯片内部 或外部存储区。
具体的运行过程为:
S1、应用程序烧录入控制器前,设定控制器芯片允许并行运行的功能模块 存储区域、最大功能区数、主应用程序存储区域、默认运行功能区;
主应用程序运行
主应用程序在控制器RAM区域运行,应用层功能区管理模块作为功能区调 度器运行,在主应用程序运行开始时刻,首先遍历控制器芯片设定的功能模块 存储区域,获得当前控制器芯片功能区总数,依据各个功能区的功能运行指示 和对应的地址信息组成一个总调度队列;
应用层功能区管理模块依据获得的总调度队列,循环执行以下操作;
S21、查找总调度队列中满足运行条件的功能区;如果存在多个符合运行条 件的功能区,则依据优先级、编号选择优先执行的功能区,相同优先级下以编 号小的功能区优先执行;如果不存在符合运行条件的功能区,则运行设定的默 认运行功能区;如果既不存在符合运行条件的功能区,也没有设定默认运行功 能区,则不断轮序总调度队列;
S22、执行查找到的功能区,应用层功能区管理模块首先将该功能区编译源 码在RAM区域注册,即拷贝该功能区编译源码至RAM区域,然后将主应用程序 跳转至该功能区编译源码注册区域执行;
S23、应用层功能区管理模块定期被强制执行,当此时某一功能区(功能管 理区模块被强制执行时正在运行的某个功能区)正在执行,应用层功能区管理 模块综合当前满足运行条件的功能区优先级、编号和当前运行功能区跳转指示 的下一功能区优先级、编号,执行以下操作:
如果当前功能区已经执行完成,即将跳转至功能区跳转指示的下一功能区, 应用层功能区管理模块对下一功能区与当前满足运行条件的功能区优先级、编 号,选择优先执行的功能区;
如果正在运行当前功能区,应用层功能区管理模块对比当前功能区与当前 满足运行条件的功能区优先级、编号,选择优先执行的功能区;
如果当前功能区已经完全不需要再执行,应用层功能区管理模块注销该功 能区,应用层功能区管理模块直接从当前符合运行条件的功能区队列中选择优 先执行的功能区;
如果当前功能区临时需要被关闭,且控制器芯片内运行的功能区数小于设 定并行运行最大功能区数,应用层功能区管理模块保留该功能区。
如图4所示,依据对控制器芯片内部或外部的存储区域的功能区划分,不 同的功能模块可以放置在一个或多个功能区内。在对嵌入式硬件中软件更新过 程中,可以仅对某一个功能模块进行更新(或添加新功能模块)。同时,在开 发应用程序过程中,可以将指定的功能模块进行独立的应用开发和源码编译。 最终,通过专业的代码更新工具将编译后的独立功能模块源码更新或添加至控 制器芯片内部或外部指定的功能区。
应用程序更新包括:
更新功能区时,更新工具根据控制器芯片设定的功能模块存储区域进行单 个或多个功能区更新,设定更新功能区的功能运行指示和下一个功能区跳转指 示;
更新主应用程序,更新工具根据控制器芯片设定的功能模块存储区域进行 整个应用程序更新;
更新整个应用程序,更新工具依次执行主应用程序和功能区更新。
按照上述实施例,便可很好地实现本发明。值得说明的是,基于上述结构 设计的前提下,为解决同样的技术问题,即使在本发明上做出的一些无实质性 的改动或润色,所采用的技术方案的实质仍然与本发明一样,故其也应当在本 发明的保护范围内。