美章网 资料文库 嵌入式集成开发环境工程管理范文

嵌入式集成开发环境工程管理范文

本站小编为你精心准备了嵌入式集成开发环境工程管理参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

嵌入式集成开发环境工程管理

1工程管理组成结构

工程管理包括:编辑管理、模板管理、项目管理和构建管理,之间关系如图2所示。嵌入式软件开发的第一步,要根据需求建立一个项目;项目管理根据项目类型,读取模板管理的对应模板项目库,处理对应模板项目中的文件资源;开发过程中编辑、查看源码,修改脚本文件等需要调用编辑管理的功能;代码开发完成后,启动构建管理,调用交叉工具链,构建生成目标文件。

1.1编辑管理编辑管理提供源代码的编辑功能,支持对C/C++源文件、汇编程序源文件、XML文件和makefile脚本文件的编辑。编辑环境提供了基本编辑功能和高级编辑功能,支持中文编辑能力。C/C++编辑器提供丰富的辅助编辑功能如代码折叠、补全、提示和比较等。直接使用CDT提供的C/C++、汇编和makefile编辑器;直接使用WST提供的XML编辑器。

1.2模板管理模板管理预定义每类项目的缺省内容,如源代码和工具链的编译参数,提供修改或扩充一个预定义项目的能力,这样用户就可以在已经存在的代码和资源的基础上定制或增加新的代码。模板管理为支持的嵌入式操作系统所包含类型的项目指定文件夹存储模板。模板包括项目缺省的源代码目录、构建配置目录列表、环境变量描述文件、项目描述文件和预定义的编译参数文件。模板管理提供丰富的可扩展机制:可更新项目缺省源代码文件;可增加新的构建配置目录,为项目扩展新支持的体系结构;可根据规则修改预定义的编译参数文件。CDT提供模板扩展点,可为不同的项目类型扩展该扩展点,定义创建项目所需要的文件资源和添加文件所需要的操作。

1.3项目管理针对特定的目标机及嵌入式操作系统平台,项目管理提供项目创建辅助功能。项目管理为所支持的嵌入式操作系统各自创建统一的新建向导,引导建立不同类型的预定义项目,包括静态库项目、操作系统项目、应用项目和自定义项目等。静态库项目用于生成程序的静态库;操作系统项目用于生成可加载运行的操作系统程序映像;应用项目用于生成可重定位的应用映像;自定义项目提供基本的如工具链包含的工具定义、项目路径、源代码路径、构建路径,自己组织项目资源等支持,并根据实际需求,自由组织所有资源。CDT提供项目定义扩展点,为不同的项目类型扩展该扩展点,定义项目可使用的工具链及其参数,项目包含的构建配置等。扩展模板关联扩展点,创建指定项目的模板扩展点和项目定义扩展点。

1.4构建管理构建管理维护项目的多个构建配置,提供创建和删除构建配置功能。针对一个构建配置,以图形化方式配置编译参数;自动生成该构建配置的Makefile脚本;提供构建操作,调用与构建配置适配的工具链。在嵌入式软件开发过程中,经常出现硬件条件不具备,而与目标硬件无关的嵌入式应用软件开发需要先期开展的情况。一般先使用虚拟机环境或者其他硬件代替,等硬件条件满足后,再转到真实的目标平台。为解决这个问题,一个项目只维护一份源码,包含多个构建配置。源码专注本身业务,和目标机体系结构相关的内容则交给构建配置,每个构建配置都包含单独的构建脚本,对应目标机体系结构的描述文件和Makefile。这需要有项目的多构建配置管理支持。CDT的构建管理主要支持开发桌面应用程序,倾向于项目构建配置的版本管理,如可为项目定义Debug和Release两个构建配置,包含不同的构建参数配置。因此,该部分功能需要修改和扩展CDT。在实际的嵌入式应用软件开发过程中,经常会使用遗产项目,这些项目可能受限于某些原因(如没有源码),不能重新编译构建,只能使用已有的目标文件。这样,新创建的项目要使用和遗产项目相同的工具链。同时,嵌入式硬件CPU发展迅速,CygwinGCC的版本也在持续升级,支持越来越多的功能。比如,某些编译构建选项只有更新、更高版本的工具链才能使用,如P2020、P40808处理器需要GCC较高版本才能有更好的支持。因此,需要提供多版本的GCC支持。CDT只有不同工具链的切换,不支持多工具链版本管理;不支持把切换前的工具链配置继承给新的工具链。因此,该部分功能需要修改和扩展CDT。一个项目通常有很多源文件,由于文件间复杂的依赖关系,手工编写Makefile文件费力耗时,在修改源文件或头文件后,容易忽略更新Makefile文件。所以需要为项目自动生成Makefile。嵌入式操作系统的各种项目分别有不同要求,CDT缺省的通用Makefile生成器不能满足要求,需要扩展。

2关键技术

在实现嵌入式集成开发环境工程管理的过程中,存在一些需要解决的难点技术。主要是多构建配置管理技术、多工具链版本管理技术和Makefile自动生成技术。

2.1多构建配置管理技术项目多构建配置管理主要包括根据新建项目向导创建构建配置;为已有项目添加构建配置;删除构建配置。新建项目向导的实现方法为:(1)在项目模板的构建配置目录中,为该项目类型定义所支持的目标机体系结构创建配置扩展目录,添加相关文件;(2)修改CDT项目向导的构建配置选择页源代码CDTConfigWizardPage.java类的getDefaultCfgs()方法,解析(1)中项目模板的构建配置目录,得到构建配置列表,替代原来默认的Debug和Release项;(3)修改CDT创建项目处理程序代码MBSWizardHandler.java类的createProject()方法,为(2)中选择的构建配置添加(1)中模板目录定义的文件。为已有项目添加构建配置需要扩展CDT的新建构建配置扩展点,实现自定义构建配置向导,根据项目类型和选择的构建配置模板添加新的构建配置。删除构建配置使用CDT原有功能。

2.2多工具链版本管理技术实现多工具链版本管理需要扩展CDT的工具链定义扩展点org.eclipse.cdt.managedbuilder.core.buildDefinitions,扩展出基础工具链cross.gcc.base。它包括交叉编译需要的编译器、汇编器和连接器等工具的声明;继续扩展上述扩展点,继承cross.gcc.base,为嵌入式操作系统所有项目类型定义所需要的工具链版本,实现工具链使用的makefile生成器、环境变量提供器和错误解析器等元素;扩展项目转换器扩展点org.eclipse.cdt.managedbuilder.core.projectConverter,当构建配置的工具链版本切换时,会根据工具链ID创建新工具链,并把原工具链所包含的工具构建参数复制到新工具链上,同时移除原工具链。

2.3Makefile自动生成技术自动生成Makefile需要实现CDT构建插件提供的生成Makefile的接口IManagedBuilderMakefileGenerator,自定义Makefile文件生成器类CrossMakefileGenerator。该类维护Makefile文件,包括如下内容:(1)一个主Makefile,是该项目类型构建脚本入口,在创建项目时从模板创建,允许手动修改,构建时不会主动更新;(2)一个变量Makefile,维护构建变量,如当前工作路径、工具链路径、目标体系结构、嵌入式操作系统标识、目标文件定义、源码子目录列表和引用的库文件列表等,构建时根据构建状态自动更新;(3)每个源码目录都对应一个构建规则描述Makefile文件,包含该子目录的源文件列表、对应的目标文件列表、依赖文件列表和源码代码(C、C++和汇编)的构建规则等,构建时根据构建参数配置自动更新。

3结束语

主要研究以Eclipse平台和CDT项目为依托,实现嵌入式软件集成开发环境的工程管理。支持代码辅助编辑、项目模板定制、项目管理、多构建配置管理、多工具链管理、多种嵌入式操作系统支持和自动生成Makefile等功能。

作者:田丹 林卓 卫进 单位:中航工业西安航空计算技术研究所