● 摘要
嵌入式实时系统广泛应用于航空电子、航天器、武器装备、汽车自动化、机器人、移动通讯等领域。为了及早发现嵌入式实时系统开发过程中出现的错误,近年来模型驱动思想的设计开发方法被重视采用,即通过在设计阶段对系统提供精确化的语义描述及对系统模型进行验证,及早发现并解决问题,在编码实现阶段由已被验证的模型自动生成代码,以提高系统开发的自动化程度,降低研发成本及编码过程中出现错误的可能性。AADL(Architecture Analysis and Design Language)是一种基于模型驱动思想的嵌入式实时系统软硬件的体系结构分析与设计语言。基于AADL模型的代码生成技术和方法研究是嵌入式软件开发的重要研究课题。模板作为文本文件,容易实现代码定制,并有效控制代码格式,生成的代码可读性好,因此选择基于模板的代码生成策略。首先,研究基于AADL的建模方法。本文研究由高层到低层的分层建模方法,依次从系统层、进程和线程层、行为附件层建模,并针对AADL标准没有对中断行为提供直接描述的问题,研究给出了基于AADL的中断行为建模方法。利用上述建模方法,建立航天控制系统的典型子系统DPU(Data Processing Unit)的AADL模型。其次,针对现有AADL模型的代码生成研究中,较少关注行为附件、模式变换等AADL建模元素的问题,本文给出一个AADL子集,其中包括构件类型、构件实现与子构件、特征、连接、模式、模式变换、行为附件,该子集基本上能够满足常用建模需要。针对生成的代码难以保证平台之间的可移植性问题,研究给出了将AADL子集中的元素生成为与平台无关的中间层代码,通过其不同实现可运行于不同平台。本文研究给出了AADL子集中的元素到中间层代码的转换规则。最后,基于模型到文本转换语言MTL(Model to Text Language)实现AADL2C代码生成工具,并针对DPU的AADL模型,使用该工具进行了中间代码生成,并转换为VxWorks平台下的可执行C代码对工具进行了验证性测试,结果表明,给出的AADL子集全部被转换成C代码,并且C代码能够正确的完成功能。