论文部分内容阅读
模型驱动开发方法(Model Driven Architecture,MDA)的出现使得软件的开发在效率、质量、可维护性等各方面都得到了极大的提高。但是目前还没有MDA开发方法在嵌入式操作系统内核的开发过程中的成熟应用。嵌入式操作系统中包含与硬件息息相关的模块,因此可将内核划分为硬件无关和硬件相关两个不同的抽象层次。在硬件无关层的开发过程中引入MDA开发方法,由于MDA方法大多只用于建立系统的平台无关模型,没有对模型动态行为和操作进行描述。同时由于现有的基于MDA方法的模型化开发工具在代码生成方面都是基于自己的代码框架,因此无法利用现有的工具来直接自动生成嵌入式内核代码,因此本论文设计了针对嵌入式内核的自动代码生成规则。在硬件相关层次的开发过程中涉及到对具体硬件的操作,使用模型化的开发方法来自动生成代码具有较大的难度,因此本学位论文采用手工编写连接硬件的驱动程序。汽车电子领域的AUTOSAR标准采用分层的思想提高了软件的可重用性,上层的软件可重复利用,只需根据具体的硬件对底层进行相应修改。本文针对基于AUTOSAR标准的汽车电子控制器的操作系统内核,重点描述两个方面的内容:其一,基于MDA方法提出了针对嵌入式系统内核模块的硬件无关层功能的代码生成的通用规则,实现了支持内核调度表模型到C代码的自动生成。其二,针对硬件相关层的功能,手工实现了连接硬件PORT和DIO的驱动开发程序。具体划分为以下几个方面的内容:(1)设计UML模型元素到C语言元素的转换规则,将建立的内核静态模型自动生成到C代码,为插入动态代码生成接口。(2)选取动作语言ASL(Action Specification Language)为模型动作行为和操作提供精确、无歧义的定义,建立ASL语言的文法规则,设计将ASL语法元素映射到C语言语法元素的映射规则,实现将描述内核功能的ASL代码自动转换成功能一致的C代码的目的。(3)根据AUTOSAR标准,编写PORT和DIO外部设备的驱动程序。最后以符合AUTOSAR标准的主要功能模块之一内核调度表模块为例,说明其生成的C代码的规模及性能。根据外部设备需要完成的功能,对PORT和DIO的驱动程序进行功能性测试。