论文部分内容阅读
嵌入式系统已经广泛地应用在了各行各业的生产生活实践中,从国家主导的航空航天、军事武器领域,到民用的通信、电气、汽车行业,以及目前非常普遍的移动、可穿戴设备等。为了解决传统以代码、文档为中心的开发方法带来一些挑战,基于模型驱动的开发方式应运而生,即在系统设计阶段利用模型或者形式化方法对早期系统设计调度、验证分析工作,尽可能在设计阶段发现设计缺陷并且解决,在编码实现阶段自动或者半自动地由正确验证的模型生成系统实现代码,能够提高系统开发效率,降低系统开发成本。AADL(Architecture Analysis and Design Language)就是一种基于模型驱动思想的专门用于描述嵌入式实时系统软硬件的体系结构分析与设计语言。基于AADL模型的代码生成技术和方法的研究是嵌入式软件开发的重要研究课题。首先,在基于AADL的代码生成工作,直接生成代码难度较大,要求开发者对AADL建模语义比较熟悉,且直接生成代码扩展性、修改性较差,因此本文提出了代码生成中间模型MMACG(Mediated Model for AADL Code Generation),作为AADL生成代码的中间模型,既包含了AADL构件的层次化信息,又能够将AADL元素中含有的行为语义转到中间模型的类代码元素,降低了AADL生成代码的难度。同时给出了一个AADL子集定义以及其生成中间模型的转换规则。其次,针对嵌入式单任务与多任务系统的不同特征,分别给出了中间模型到两者的转换规则,主要包括层次结构、命令操作、端口操作三个方面。同时,为了提高生成代码的安全性,进一步研究了在转换规则中如何遵守相关安全代码规范,有效地解决人工编码中代码不规范导致的安全问题。最后,利用Xtext框架定义实现了中间模型MMACG,基于M2T(Model To Text)技术实现了代码生成工具AADLGEN,并针对一个安全关键系统——婴儿保温箱控制系统,使用AADL对其进行建模并且生成嵌入式Linux代码。