专利名称:一种嵌入式系统的代码生成方法
技术领域:
本发明属于计算机技术领域,特别是涉及了一种嵌入式系统的代码生成方法。
背景技术:
在实时嵌入式系统(Real-time Embedded System, RtEM)中,单片机处理器能力的提高和应用程序功能的复杂化、精确化,迫使应用程序划分为多个重要性不同的任务,在各任务间优化地分配CPU时间和系统资源,同时还要保证实时性。靠用户自己编写一个实现上述功能的内核一般是不现实的,而这种需求又是普遍的。在这种形势之下,由专业人员编写、满足大多数用户需要的高性能RtEM内核就是一种必然结果了。此外,单片机系统软件开发日趋工程化,产品进入市场时间不断縮短,也迫使管理人员寻找一种有利于程序继承性、标准化、多人并行开发的管理方式。从长远的意义上来讲,RtEM的推广能够带来嵌入式软件工业更有效、更专业化的分工,减少社会重复劳动、提高劳动生产率。代码生成就是RtEMPlatform代码生成器通过整合一些输入文件产生一个或多个输出文件。
发明内容
本发明的目的就是提供一种嵌入式系统的代码生成方法,通过代码生成引擎将读取的工程中的文本或模型自动生成规范的计算机能理解的代码,从而解决现有技术手工编写代码费时费力并且效率不高的问题。
本发明方法的具体步骤是
步骤(1).读取PIM文档并配置PIM文档;
步骤(2).调用对应代码模板,并对对应代码模板进行解析;
步骤(3).生成目标平台的源代码。
歩骤(l)中的PIM文档采用XML格式的文件保存应用模型信息,PIM文档用来存储数据、携带数据和交换数据,并且能够从多种不兼容类型的数据存储方式中分离数据。用户需要修改程序时,首先读取PIM文档内容,然后根据需求修改PIM文档内容,并将修改后的PIM文档作为输入;代码生成引擎读取修改后的P頂文档,并根据需求配置PIM文档,重新生成源代码。
步骤(2)中调用对应代码模板产生一个或多个输出文件,是输出的不可变的部分;对对应代码模板的解析是通过定义模板描述文件和模板标签库,调
用模板引擎解析执行,实现代码框架、数据和流程的分离,并且能够支持不同模板之间的嵌套。解析时由特殊的模板标签进行引入,通过标记"$"进行
参数替换的判断,借助PIM文档中的数据来完成解析。
步骤(3)利用步骤(1)中读取的指定配置文件,根据代码生成的配置文件和步骤(2)中调用的对应代码模板、解析得来的数据信息,在引擎中进行保存,然后对模板文档中的标记及变量进行匹配及替换,从而产生不受问题范围限制的源代码输出。
本发明提供的自动代码生成方法与生成的源代码没有任何关系,问题描述的过程从自动代码生成系统完全转移到模板,自动代码生成系统成为一个快速、以生成为目的的引擎,具有能够完成融合实例数据文件和模板数据文件基本任务的功能。其主要优点是(1)可以生成不受问题范围限制的代码;(2)模板的表示类似于程序代码或者是脚本;(3)实例数据可以从代码生成器中清晰地分离出来。
本发明的模板与UML工具中涉及的模板有所不同,在代码生成开发过程中,模板一般是由经验丰富的编程人员设置的,所以质量比一般的程序员编写的代码质量要高。尽管模板一般是由经验丰富的编程人员设置的,但是只要知道如何设置模板,任何人均可设置模板,当然, 一般人设置的模板在生成代码的质量上可能无法跟经验丰富的编程人员所设置的模板相比。UML模板有编程语言上的限制和结构类型上的限制,但在本发明中,模板跟特定的语言和结构类型没有关系。就是说,用户可以根据自己的需要和爱好任意设定模板内容。本发明提供的代码生成方法,提高了开发效率和节约了开发时间,降低了开发成本,同时提高了调用模板的灵活度。
具体实施例方式
一种嵌入式系统的代码生成方法的具体步骤是
步骤(1).读取P頂文档并配置PIM文档;
步骤(2).调用对应代码模板,并对对应代码模板进行解析;步骤(3).生成目标平台的源代码。
步骤(l)中的PIM文档采用XML格式的文件保存应用模型信息,PIM文档用来存储数据、携带数据和交换数据,并且能够从多种不兼容类型的数据存储方式中分离数据。用户需要修改程序时,首先读取PIM文档内容,然后根据需求修改PIM文档内容,并将修改后的PIM文档作为输入;代码生成引擎读取修改后的PIM文档,并根据需求配置PIM文档,重新生成PIM文档对应XML的DOM树。
步骤(2)中调用对应代码模板产生一个或多个输出文件,是输出的不可变的部分;对对应代码模板的解析是通过定义模板描述文件和模板标签库,调用模板引擎解析执行,实现代码框架、数据和流程的分离,并且能够支持不同模板之间的嵌套。解析时用PIM文档中的数据,由特殊的模板标签进行引入,分析出模板名并存入指定文件,根据生成文件格式串生成输出代码的文件名。
步骤(3)利用步骤(1)中读取的指定配置文件,根据代码生成的配置文件和步骤(2)中调用的对应代码模板,以及解析获得的数据信息,在引擎中进行保存;然后对模板文档中的标记"$"及变量进行匹配及替换,就是读取模板中的每一行,如果这一行以針oreach开头,是一条控制行,否则是普通模板行,从控制行中分析出开头的XML节点名并存入,根据文件模板和XML节点生成源代码。
权利要求
1、一种嵌入式系统的代码生成方法,其特征在于该方法具体步骤是步骤(1).读取PIM文档并配置PIM文档;步骤(2).调用对应代码模板,并对对应代码模板进行解析;步骤(3).生成目标平台的源代码;步骤(1)中的PIM文档采用XML格式的文件保存应用模型信息,PIM文档用来存储数据、携带数据和交换数据,并且能够从多种不兼容类型的数据存储方式中分离数据;用户需要修改程序时,首先读取PIM文档内容,然后根据需求修改PIM文档内容,并将修改后的PIM文档作为输入;代码生成引擎读取修改后的PIM文档,并根据需求配置PIM文档,重新生成源代码;步骤(2)中调用对应代码模板产生一个或多个输出文件,对对应代码模板的解析是通过定义模板描述文件和模板标签库,调用模板引擎解析执行,实现代码框架、数据和流程的分离;步骤(3)利用步骤(1)中读取的指定配置文件,根据代码生成的配置文件和步骤(2)中调用的对应代码模板、解析得来的数据信息,在引擎中进行保存,然后对模板文档中的标记及变量进行匹配及替换,从而产生不受问题范围限制的源代码输出。
全文摘要
本发明涉及一种嵌入式系统的代码生成方法。目前在实时嵌入式系统中缺少有利于程序继承性、标准化、多人并行开发的管理方式。本发明方法首先读取PIM文档并配置PIM文档;然后调用对应代码模板,并对对应代码模板进行解析;再生成目标平台的源代码。本发明提供的代码生成方法,提高了开发效率和节约了开发时间,降低了开发成本,同时提高了调用模板的灵活度。
文档编号G06F9/44GK101604241SQ20091010061
公开日2009年12月16日 申请日期2009年7月10日 优先权日2009年7月10日
发明者吴国华, 祯 张, 李松坡, 郑秋华 申请人:杭州电子科技大学