一种基于中间模型的AADL生成嵌入式系统代码方法技术方案

技术编号:19008942 阅读:59 留言:0更新日期:2018-09-22 08:51
本方法涉及一种嵌入式系统代码自动生成方法,具体涉及一种基于中间模型的AADL生成嵌入式系统代码方法;包括以下步骤:步骤一:利用Xtext技术定义一种代码生成中间模型MMACG,中间模型的设计包括层次化的构件结构定义以及单个构件内类程序代码的元素定义;步骤二:中间模型层次化构件与AADL结构进行对应,即相应AADL构件转到中间模型MMACG构件;单个构件内类程序代码元素是针对程序内的元素进行了表达,中间模型还保留AADL构件的属性信息;步骤三:针对嵌入式单任务与多任务系统的不同特征,利用Xtend技术依照编写的规则实现中间模型MMACG生成符合POS IX标准的C代码。

A code generation method for embedded system based on intermediate model AADL

This method involves an automatic code generation method for embedded systems, which involves an AADL-based embedded system code generation method based on an intermediate model. The steps are as follows: 1. Using Xtext technology to define a code generation intermediate model MMACG, the design of the intermediate model includes hierarchical component structure definition and the design of the intermediate model. The element definition of class program code in a single component; Step 2: The intermediate model hierarchical component corresponds to the AADL structure, that is, the corresponding AADL component is transferred to the intermediate model MMACG component; the class program code element in a single component is expressed for the elements in the program, and the intermediate model also retains the attribute information of the AADL component; Step 3: According to the different characteristics of embedded single-task and multi-task systems, the intermediate model MMACG is implemented by Xtend technology according to the written rules to generate C code conforming to POS IX standard.

【技术实现步骤摘要】
一种基于中间模型的AADL生成嵌入式系统代码方法
本方法涉及一种嵌入式系统代码自动生成方法,具体涉及一种基于中间模型的AADL生成嵌入式系统代码方法。
技术介绍
嵌入式系统是一种为了满足特定领域需求而设计的计算机系统,从上世纪五十年代起应用在航天航空领域到目前应用在各行各业。嵌入式系统设计开发能力也成为了一个国家工业化、信息化能力的衡量标准。传统嵌入式系统开发方式为了在设计阶段提高系统的安全性可靠性,往往需要编写大量的技术设计文档,依靠专家经验进行评审,再利用测试用例的方法对完成的系统进行测试,若出现安全性问题再对系统进行修改。这种传统的嵌入式系统开发方法与日益增长的嵌入式软件规模以及系统安全性可靠性中间已经出现了矛盾。特别在安全关键领域,系统失效将会带来巨大损失,因此从系统设计到实现的每一个步骤都要考虑到安全问题,即便付出较大的时间、人力成本。而模型驱动开发(Model-DrivenDevelopment,简称MDD)作为一种借助模型进行系统早期分析与验证的方法,受到研究开发人员的广泛关注。在嵌入式建模领域,AADL前身MetaH,是由隶属于美国国防部的Honeywell技术实验室于1991年提出的一种体系结构描述语言,最初用于航空电子、飞行控制等系统的体系结构描述与分析。在学术界和工业界在MetaH上多年的研究与应用的基础上,2001年,美国汽车工程协会基于MetaH提出了一个新的航空电子体系结构描述语言标准,即AvionicsArchitectureDescriptionLanguage。2004年,SAE又联合CMU(CarnegieMellonUniversity)、Honeywell共同发布了AADL1.0版本,正式命名为ArchitectureAnalysis&DesignLanguage。AADL标准时至今天还在不停更新,最新版本的AADL为2017年发布的AADLv2.3。安全关键系统是一种由应用软件、运行时环境以及硬件平台深度融合的复杂系统,而AADL通过提供软件体系结构、运行时环境以及硬件体系结构三种建模概念能够很好地适应复杂嵌入式系统建模。其中软件体系结构与硬件体系结构可以合称为系统体系结构,其描述了一个系统在软硬件方面的静态结构。AADL利用构件分发、同步/异步通信、调度、模式变换等建模概念来描述系统的动态行为以及运行时环境。在AADL标准中,线程、子程序构件是最小的执行和调度单元,二者的对外功能接口可以在AADL中被描述,但是其内部具体执行行为无法在标准的AADL中得到。因此AADLBehaviorAnnex,即行为附件,被提出以详细描述线程和子程序构件的具体行为。在嵌入式系统领域存在着多种运行平台与编程语言,目前也存在着一些针对AADL代码生成的工具,有ocarina、Stood等。但这些平台存在着若干缺点:这些工具大都为国外产品,部分工具会收取高昂的费用,开源工具生成的代码无法满足国内大多数系统代码生成的要求;由于代码生成工作有一定的专一性、目的性的特点,即目前存在多种嵌入式系统平台使用不同类型的编程语言,甚至在同一个单位内就存在多种嵌入式系统平台,因此难以有一个统一的平台能够同时直接生成或者提供一种便捷快速的二次开发平台能够生产多种嵌入式代码;目前存在的代码生成平台并没有一种机制能够方便二次开发,导致有些代码生成工具即使能满足90%的需求,但是因为无法进行二次开发,而无法使用。因此开发一种基于中间模型的嵌入式系统代码生成方法是一直都有待解决的问题。
技术实现思路
本专利技术的目的在于提供一种基于中间模型的AADL生成嵌入式系统代码方法。为实现上述目的,本专利技术提供如下技术方案:一种基于中间模型的AADL生成嵌入式系统代码方法,包括以下步骤:步骤一:利用Xtext技术定义一种代码生成中间模型MMACG,中间模型的设计包括层次化的构件结构定义以及单个构件内类程序代码的元素定义;步骤二:中间模型层次化构件与AADL结构进行对应,即相应AADL构件转到中间模型MMACG构件;单个构件内类程序代码元素是针对程序内的元素进行了表达,中间模型还保留AADL构件的属性信息;利用java语言编写AADL转到中间模型的转换工具,并给出转换规则,AADL生成中间模型的工具利用Osate中的AADL的工具,遍历AADL的构件信息以及AADL行为附件,行为模型转到MMACG模型,将行为附件中包含的自动机转化为MMACG模型中的类程序代码元素;步骤三:针对嵌入式单任务与多任务系统的不同特征,利用Xtend技术依照编写的规则实现中间模型MMACG生成符合POSIX标准的C代码作为优选,所述AADL行为附件是对AADL模型的进一步精化,是详细描述AADL构件内部行为的模型。作为优选,所述保留AADL构件的属性信息是指主要采用key-value形式保存在MMACG构件的properties属性中。作为优选,中间模型还将保留AADL构件的属性信息作为优选,MMACG模型包括“System”、“Process”、“Thread”和“Subprogram”构件。与现有技术相比,本专利技术的有益效果如下:利用Xtext定义了一个中间模型。中间模型主要包括两个部分:具有层次结构的构件以及包含在构件中的类层次化元素。中间模型中的构件能够与AADL构件进行对应,即将相应的AADL构件转到中间模型MMACG的构件。制定了AADL到中间模型MMACG到转换规则,利用Java语言编写了AADL转到中间模型的转换工具,并给出了详细的转换规则。AADL生成中间模型的工具主要利用了Osate中的AADL遍历相关的工具类,遍历AADL的构件信息以及行为附件。AADL行为附件是对AADL模型的进一步精化,是详细描述AADL构件内部行为的模型。制定了中间模型MMACG生成目标代码规则,依照编写的规则,利用Xtend实现中间模型MMACG生成符合POSIX标准的C代码。由于中间模型属于平台无关模型,而C代码一般是平台相关的。虽然针对不同目标系统代码也必须再写一份代码转换规则,但是中间模型生成系统代码相对容易,且Xtend又适合编写转换规则。在MMACG生成系统执行代码的过程中,将会加入对应平台相关信息。利用MMACG作为AADL到系统代码的中间过渡模型,能够降低AADL代码生成的难度。附图说明图1为本专利技术MMACG层次结构定义。图2为本专利技术中间模型的层次结构。图3为本专利技术表达式部分的语法,主要给出了赋值语句部分语法。图4为本专利技术条件表达式以及运算表达式的语法。图5为线程构件转换规则。图6为进程转换规则。图7为变量类型转换规则。图8为端口操作符转换规则。图9为中间模型构件转换规则。图10为端口操作函数转换规则。图11为设备端口转换规则过程示意图。图12为单系统代码结构示意图。图13为单系统中间模型生成代码转换规则。图14为单系统端口操作转换规则。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种基于中间模型本文档来自技高网
...
一种基于中间模型的AADL生成嵌入式系统代码方法

【技术保护点】
1.一种基于中间模型的AADL生成嵌入式系统代码方法,包括以下步骤:步骤一:利用Xtext技术定义一种代码生成中间模型MMACG,中间模型的设计包括层次化的构件结构定义以及单个构件内类程序代码的元素定义;步骤二:中间模型层次化构件与AADL结构进行对应,即相应AADL构件转到中间模型MMACG构件;单个构件内类程序代码元素是针对程序内的元素进行了表达,中间模型还保留AADL构件的属性信息;利用java语言编写AADL转到中间模型的转换工具,并给出转换规则,AADL生成中间模型的工具利用Osate中的AADL的工具,遍历AADL的构件信息以及AADL行为附件,行为模型转到MMACG模型,将行为附件中包含的自动机转化为MMACG模型中的类程序代码元素;步骤三:针对嵌入式单任务与多任务系统的不同特征,利用Xtend技术依照编写的规则实现中间模型MMACG生成符合POSIX标准的C代码。

【技术特征摘要】
1.一种基于中间模型的AADL生成嵌入式系统代码方法,包括以下步骤:步骤一:利用Xtext技术定义一种代码生成中间模型MMACG,中间模型的设计包括层次化的构件结构定义以及单个构件内类程序代码的元素定义;步骤二:中间模型层次化构件与AADL结构进行对应,即相应AADL构件转到中间模型MMACG构件;单个构件内类程序代码元素是针对程序内的元素进行了表达,中间模型还保留AADL构件的属性信息;利用java语言编写AADL转到中间模型的转换工具,并给出转换规则,AADL生成中间模型的工具利用Osate中的AADL的工具,遍历AADL的构件信息以及AADL行为附件,行为模型转到MMACG模型,将行为附件中包含的自动机转化为MMACG模型中的类程序代码元素;步骤三:针对嵌入式单任务与多任务系统的不同特征,利用Xtend技术依照编写的...

【专利技术属性】
技术研发人员:沈国华葛晓瑜章文炳宛伟健邓刘梦黄志球杜天保吴德香
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

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

1