一种应用于rte代码生成的os资源分配冲突解决方法

文档序号:6430653阅读:154来源:国知局
专利名称:一种应用于rte代码生成的os资源分配冲突解决方法
技术领域
本发明涉及汽车电子软件开发技术,尤其是一种应用于RTE代码生成的 OS资源分配冲突解决方法。
背景技术
AUTOSAR(AUTomotive Open System ARchitecture)是汽车电子开放系统架构, RTE(Run-Time Environment)是该架构的核心。RTE是由RTE代码自动生成工具生成的C 代码,后者接收ECU (Electronic Control Unit)配置工具传递的AUTOSAR对象为输入,生成符合AUTOSAR标准的C代码。自动生成的RTE代码,加上软件组件源代码、基础模块代码及基础模块配置代码(由ECU配置工具生成)一起编译链接就成为最终可以运行在ECU上的可执行文件,其中基础模块指OS (Operating System)和COM(Communication),即操作系统模块和通信模块。RTE需要与AUTOSAR COM和OS交互,对于后者,RTE既需要使用已经存在的OS对象(用户使用E⑶配置工具配置的OS对象,如任务或告警),又可能需要新的OS对象,比如一个非周期的告警用于监控运行实体的访问超时。RTE代码自动生成工具新申请的OS对象与用户已配置的OS对象不能冲突,比如前者不能申请OS中已经被使用过的事件。为方便RTE代码自动生成工具与E⑶配置工具就 OS对象的使用进行交互,AUTOSAR标准要求双方使用相同的OS对象存储格式。然而,按照AUTOSAR标准方法论,用户使用E⑶配置工具对OS的配置过程是反复的,这就要求E⑶配置工具与RTE代码生成工具就OS对象的使用保持一致性。此外,RTE代码自动生成工具本身没有界面,它作为一个插件集成在E⑶配置工具中。也就是说RTE代码生成工具要根据用户配置更新对OS对象的需求,并把这个需求转达给E⑶配置工具,由 E⑶配置工具在其OS模块配置界面呈现出来。因此,面对RTE代码自动生成工具对OS对象的新需求与用户配置的OS对象的一致性要求,需要一种应用于RTE代码生成的OS资源分配冲突解决方法。

发明内容
为了解决上述RTE代码自动生成工具与E⑶配置工具就OS对象的使用问题的一致性要求,本发明的目的在于提供一种应用于RTE代码生成的OS资源分配冲突解决方法。本发明解决其技术问题采用的技术方案这种应用于RTE代码生成的OS资源分配冲突解决方法,步骤如下(1)、提取AUTOSAR对象的元素信息,并转存到RTE代码自动生成工具自定义的模型中;由于AUTOSAR对象的元素组织结构专注于构成整个系统的各个模块的描述,与C语言层面的模型有很大差异,因此RTE代码自动生成工具自定义了一套模型,以方便基于模板的生成器的模板语言的开发以及最终的C代码自动生成。(2)、提取通信需求及用户已配置的OS模块信息,计算RTE为实现通信API所需依赖的新OS对象(如OS事件、OS告警),然后向OS申请这些资源(3)、将RTE代码自动生成工具自定义的OS对象模型转换成标准的AUT0SAR对象模型。作为优选,所述的步骤(2)操作进行处理的步骤包括(2. 1)遍历任务中的运行实体,如果是服务器端运行实体且以同步方式提供服务, RTE代码自动生成工具为其申请OS事件,用于客户端运行实体和服务器端运行实体的通信同步;(2. 2)遍历任务中的运行实体,如果是客户端运行实体且其访问服务有超时要求, RTE代码自动生成工具为其申请OS告警,用于RTE监控该运行实体的超时;(2. 3)对于步骤(2. 2)提及的OS告警,要将其关联到合适的OS事件。作为优选,所述的步骤(3)操作进行处理的步骤包括(3. 1)清除AUT0SAR对象中RTE代码自动生成工具申请的所有OS资源,包括OS事件、OS告警及其相关的OS计数器,以及任务中包含的引用参数,这些参数引用的是由RTE代码自动生成工具申请的且用于激活该任务的OS事件;(3. 2)遍历RTE代码自动生成工具申请的OS告警,将每个告警转化成AUT0SAR标准类型的对象模型,并添加到AUT0SAR对象的Module模型中;(3. 3)遍历RTE代码自动生成工具申请的OS事件,将每个事件转化成AUT0SAR标准类型的对象模型,更新该事件激活的任务包含的引用参数,并把该事件添加到AUT0SAR 对象的Module模型中。作为优选,所述的步骤(2.3)中,将RTE代码自动生成工具申请的OS告警关联到相应的OS事件,其处理步骤包括(2.3. 1)如果是同E⑶内的客户-服务通信方式,直接找到服务器端运行实体关联的同步事件,并在告警中保存下对该事件的引用;(2. 3. 2)如果是跨E⑶的客户-服务通信方式,则遍历系统中由RTE代码自动生成工具申请的事件列表,如果事件关联的运行实体同时该告警关联的运行实体,则在告警中保存下对查找到事件的引用。本发明具有的有益效果是1)本发明每次调用时都重新提取AUT0SAR对象模型并重新分析新需求,能够允许用户在E⑶配置阶段反复配置OS模块,同时不影响RTE代码的自动生成。2)本发明将RTE代码自动生成工具对OS对象的新需求转化成标准的AUT0SAR对象模型,并传递给E⑶配置工具,由其在OS模块的配置界面中呈现给用户。3)本发明的分析模型及计算对OS对象的新需求这两个步骤可以复用RTE代码生成工具已有的功能,提高软件复用度。


图1是AUT0SAR对象经分析后产生的组件模型图。图2是AUT0SAR对象经分析后产生的任务模型图。图3是RTE代码自动生成工具计算OS对象流程图。图4是OS事件申请流程图。
图5是OS告警申请流程图。图6是示例 系统中用户已配置的OS资源模型图。图7是转换自定义对象模型为AUT0SAR标准类型对象的流程图。图8是示例系统完成步骤3)后OS资源模型图。图9是示例系统更改用户配置并再次调用本方法所得OS资源模型图。
具体实施例方式下面结合附图和实施例对本发明作进一步说明
具体实施例方式一、提取AUT0SAR对象的元素信息,并转存到RTE代码自动生成工具自定义的模型中。如图1所示的示例系统中共有2个组件,各自包含一个运行实体。其中组件Compl 包含运行实体Runnable_Client,后者通过Port_Client向服务器端运行实体Runnable_ Server请求服务,且该服务请求是同步有超时的。如图2所示的示例系统中共有2个任务,各自包含一个运行实体。其中任务Task_ Client包含运行实体Rurmablejnient,并由周期性告警Alarm_Cyc周期性激活运行;任务 Task_Server 包含: ^ 实体尺urmable_Server。二、提取通信需求及用户已配置的OS模块信息,计算RTE为实现通信API所需依赖的新OS对象(如OS事件、OS告警),然后向OS申请这些资源。如图3所示的流程图说明了步骤2)处理的整体过程。如果是服务器端运行实体且以同步方式提供服务,RTE代码自动生成工具为其申请OS事件。按图4所示OS事件申请流程图,示例系统中的运行实体Rurmable_SerVer符合要求,因此RTE代码生成工具申请一个OS事件EVent_SerVer。如果是客户端运行实体且其访问服务有超时要求,RTE代码自动生成工具为其申请OS告警。按如图5所示的OS告警申请流程图,示例系统中运行实体RUnnable_Client 符合要求,因此RTE代码生成工具申请一个OS告警Alarm_Cyc,并关联到Event_Server。三、将RTE代码自动生成工具自定义的OS对象模型转换成标准的AUT0SAR对象模型。根据对步骤3)的分析对示例系统进行如下处理清除AUT0SAR对象中RTE代码自动生成工具申请的所有OS资源,包括OS事件、OS 告警及其相关的OS计数器,以及任务中包含的引用参数,这些参数引用的是由RTE代码自动生成工具申请的且用于激活该任务的OS事件;遍历RTE代码自动生成工具申请的OS告警,将每个告警转化成AUT0SAR标准的对象模型,并添加到AUT0SAR对象的Module模型中;遍历RTE代码自动生成工具申请的OS事件,将每个事件转化成AUT0SAR标准的对象模型,更新该事件激活的任务包含的引用参数,并把该事件添加到AUT0SAR对象的 Module模型中;在本示例系统中,用户已经配置了两个事件和Event_Custom_l和Event_ Custom_2,如图6所示,分别占用掩码Oxl和0x2 ;同时系统中还有两个告警Alarm_Custom_l 禾口 Alarm_Custom_2,其中 Alarm_Custom_2 用于设置事件 Event_Custom_2。经过前面两个步骤,本示例系统分别新申请了一个OS事件(Event—Server)和OS 告警(Alarm_Cyc),再按步骤3)将其转换成AUT0SAR标准类型对象,转换流程图如图7所
7J\ ο如图8所示的示例系统转换成AUT0SAR标准类型对象后,为新OS事件EVent_ Server分配掩码0x3,并关联到新告警Alarm_Cyc。然而,如果这时用户更改OS模块配置,删除事件EVent_CuStom_l,再调用本方法转换对象后如图9所示,这时新事件EventServer被分配到空闲的掩码0x1。可以看出该转换步骤充分考虑了前两步的分析和计算结果,节省对OS对象的消耗。 虽然通过上述具体实例对本发明进行了说明,但是本发明并不局限于上述实例, 对于本领域的相关人员,可以根据本发明的技术方案和思想,作出其他各种改变和变形,而所有这些都应该属于本发明权利要求的保护范围内。
权利要求
1.一种应用于RTE代码生成的OS资源分配冲突解决方法,其特征在于步骤如下(1)、提取AUT0SAR对象的元素信息,并转存到RTE代码自动生成工具自定义的模型中;(2)、提取通信需求及用户已配置的OS模块信息,计算RTE为实现通信API所需依赖的新OS对象,然后向OS申请这些资源;(3)、将RTE代码自动生成工具自定义的OS对象模型转换成标准的AUT0SAR对象模型。
2.根据权利要求1所述的应用于RTE代码生成的OS资源分配冲突解决方法,其特征在于所述的步骤(2)操作进行处理的步骤包括(2. 1)遍历任务中的运行实体,如果是服务器端运行实体且以同步方式提供服务,RTE 代码自动生成工具为其申请OS事件,用于客户端运行实体和服务器端运行实体的通信同步;(2. 2)遍历任务中的运行实体,如果是客户端运行实体且其访问服务有超时要求,RTE 代码自动生成工具为其申请OS告警,用于RTE监控该运行实体的超时; (2.3)对于步骤(2. 2)提及的OS告警,要将其关联到合适的OS事件。
3.根据权利要求1所述的应用于RTE代码生成的OS资源分配冲突解决方法,其特征在于所述的步骤(3)操作进行处理的步骤包括(3. 1)清除AUT0SAR对象中RTE代码自动生成工具申请的所有OS资源,包括OS事件、 OS告警及其相关的OS计数器,以及任务中包含的引用参数,这些参数引用的是由RTE代码自动生成工具申请的且用于激活该任务的OS事件;(3. 2)遍历RTE代码自动生成工具申请的OS告警,将每个告警转化成AUT0SAR标准类型的对象模型,并添加到AUT0SAR对象的Module模型中;(3. 3)遍历RTE代码自动生成工具申请的OS事件,将每个事件转化成AUT0SAR标准类型的对象模型,更新该事件激活的任务包含的引用参数,并把该事件添加到AUT0SAR对象的Module模型中。
4.根据权利要求2所述的应用于RTE代码生成的OS资源分配冲突解决方法,其特征在于所述的步骤(2. 3)中,将RTE代码自动生成工具申请的OS告警关联到相应的OS事件, 其处理步骤包括(2. 3. 1)如果是同ECU内的客户-服务通信方式,直接找到服务器端运行实体关联的同步事件,并在告警中保存下对该事件的引用;(2. 3. 2)如果是跨E⑶的客户-服务通信方式,则遍历系统中由RTE代码自动生成工具申请的事件列表,如果事件关联的运行实体同时该告警关联的运行实体,则在告警中保存下对查找到事件的引用。
全文摘要
本发明涉及一种应用于RTE代码生成的OS资源分配冲突解决方法,该方法的步骤如下a)提取AUTOSAR对象的元素信息,并转存到RTE代码自动生成工具自定义的模型中;b)提取通信需求及用户已配置的OS模块信息,计算RTE为实现通信API所需依赖的新OS对象,然后向OS申请这些资源;c)将RTE代码自动生成工具自定义的OS对象模型转换成标准的AUTOSAR对象模型。本发明有益的效果本发明每次方法被调用时都重新分析模型,能够允许用户在ECU配置阶段反复配置OS,同时不影响RTE代码的自动生成。此外,RTE代码自动生成工具可以把对OS对象的新需求转化成标准的AUTOSAR对象模型,并传递给ECU配置工具,方便其在OS模块的配置界面中呈现给用户。
文档编号G06F9/50GK102385530SQ201110229808
公开日2012年3月21日 申请日期2011年8月11日 优先权日2011年8月11日
发明者刘敏, 李红, 耿莉莉, 钟晓峰, 顾宗华 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1