论文部分内容阅读
嵌入式系统发展迅速,而与之相关的嵌入式软件不仅要满足复杂功能性需求,同时还要满足各种非功能性(时间、功耗、资源、安全、可靠等)需求。开发传统的嵌入式软件,大多数是基于以手工代码为中心的嵌入式开发环境下进行,这样忽视对整个系统的体系结构的全局把握。并且在系统完成后,系统存在漏洞太多,尽管系统经过反复测试后,漏洞有所减少,但不能完全消除。从而对软件设计理论和开发方法提出了一系列新的挑战。要解决这些挑战,应该发展基于模型驱动方法(Model-Driven Architecture)的开发方法,即把模型的技术引入到嵌入式软件开发过程,通过模型指导软件设计的需求分析、系统设计、代码编辑、代码重构、代码测试以及系统维护等各个阶段。通过形式化的方法对模型进行验证和仿真分析(如可靠性和可调度性分析),及早的暴露模型不足和漏洞,然后开发模型的代码自动生成技术。这样形成一条嵌入式软件的生产线,提高软件开发的效率和代码的质量。论文首先介绍基于NXT的嵌入式软件生产线的背景和内容,以及相关的技术和工具。接着是生产线的设计和实现。基于NXT的嵌入式软件生产线,结合具体的NXT硬件和OSEK实时操作系统,采用模型驱动的软件开发体系为指导,分为:模型与平台无关性,模型与平台相关性,模型代码的整合这样的三个开发阶段。模型与平台无关性阶段,使用Simulink和Stateflow构建模型。可以用它来设计和仿真复杂的与具体平台无关的功能模型。为此,设计了平台无关代码生成器,把Simulink模型映射为可执行的C代码;模型与平台相关性阶段,使用体系结构分析设计语言AADL构建模型。可以用它设计和验证复杂的与具体平台相关的非功能模型。为此,设计了平台相关代码生成器把AADL模型映射为可执行的C代码。模型代码的整合阶段,是把从不同层次的模型映射得到的可执行代码到可执行程序。针对前两阶段生成的C代码,设计了代码整合程序,把生成C代码编译和连接为可执行程序,并把可执行程序下载到NXT机器人的Flash上。在此基础上,对生产线进行了功能测试和性能测试。论文最后,对课题的特点和不足进行总结,并对后面的研究进行展望。