一种多dsp平台上的自动代码生成方法

文档序号:6386461阅读:634来源:国知局

专利名称::一种多dsp平台上的自动代码生成方法
技术领域
:本发明属于嵌入式系统领域,具体的说是一种在多DSP平台上自动生成代码的技术方法。
背景技术
:随着计算机技术的进步,软件生产也开始向自动化方向发展。通过专门的代码自动转换软件,将上层的软件模型自动转换为实现代码可以极大地提高软件生产的效率,将人们从重复的劳动中解放出来。国外由于人力资源成本高,很早就开始在软件开发中应用代码生成技术,例如Mathworks公司的Matlab&Simulink,NI的Labview,Gedae公司的Gedae等。多DSP平台是目前在雷达、通信和声纳等信号处理领域广泛应用的一种硬件处理结构,它具有针对特定运算专门优化过的数字信号处理核心和灵活可变的拓扑互连能力,可以满足高密度、高吞吐量的实时信号处理任务的需要。典型的多DSP处理平台如ADI公司的4片或8片TigerSHARC201集成处理板,各片DSP可以由链路口灵活互连。目前在多DSP平台的应用开发领域,国内的软件开发方式还是主要还是依赖国外公司相关平台的配套开发软件,例如ADI公司的VisualDSP++,TI公司的CCS等,缺乏自己的代码生成工具。这种开发方法有几个明显弊端一是当所开发的应用程序规模较大,DSP节点很多时(例如几十个),底层硬件之间的互连通信和系统配置等细节都需要用户具体负责和干预,既繁琐又容易出错。二是这种开发靠基本靠人力编程,程序带有明显的个人风格和一定的随意性,欠缺模块化、通用化,一个程序员开发的代码可能难以为别人所理解和接受;三是用户要从事很多重复性的劳动,同一个应用处理流程在不同的硬件映射和分配方式下都要把相关代码重写一遍,这导致了系统开发周期长,人力、物力消耗大。从长远的意义来讲,在多DSP平台等嵌入式领域开发和推广自动代码生成方法有利于减少社会重复劳动、缩短软件开发周期、提高劳动生产率、促进业界软件开发的标准化和通用化,能够使得行业内进行更有效、更专业化的分工,信号处理人员可以专注于算法和功能的实现,无需关注底层硬件细节,从而从琐碎复杂的传统手工编程模式中彻底脱离出来。
发明内容本发明的目的就是提供一种多DSP平台上的自动代码生成方法,该方法分为三个步骤I)针对多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板;2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,可以包括模块列表、模块属性和模块间互连关系;3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系等必需信息,基于I)中的通用代码框架模板生成最终的DSP源代码。本发明具有以下有益效果及优点1.缩短开发周期,提高开发效率。利用自动代码生成可以大大减少多DSP平台开发过程中很多重复和琐碎的工作,用户不需要给每个DSP节点手动分配通信路由,也不用在修改程序时把所有代码重写一遍。2.便于用户进行处理模式快速扩展和重构。XML语言简洁易读、层次分明,采用XML文件的流程描述格式给用户重建处理模型和映射方案提供了方便,用户只要对XML文件进行简单的编辑和改动即可实现这一点。3.提高代码开发的可读性和可靠性。只要大家都用同样的标准代码框架模板来进行自动代码生成,那么生成的代码风格无疑是统一的,便于继承和理解。此外,由自动代码生成器或者说机器生成代码无疑比人手工编写代码具有更高的可靠性,很多人容易犯的低级错误绝对不会在自动生成的代码中出现。4.促进多DSP平台开发的可移植性。目前多DSP处理器业界的主流产品主要集中在ADI和TI公司的几款型号上。产品不同,要设计的代码框架模板和代码生成器也就不同,但是同一家公司的产品之间区别不大。如果针对几家主流公司分别开发出统一的模板和代码生成器(XML建模标准不用变),用户就可以轻松实现自己的开发工作在不同处理器平台上的移植。图1示出了根据本发明的一种基于多DSP平台的自动代码生成流程的一个优选实施例;图2示出了由图1所示的通用代码框架模板的一个具体例子;图3示出了由图1所示的XML格式流程建模器生成的XML描述文件结构;图4示出了由图1所示的自动代码生成器的代码生成过程的一个具体例子;具体实施例方式下面结合附图和实施例对本发明装置的使用方法做进一步说明。图1示出了根据本发明的一种基于多DSP平台的自动代码生成流程的一个优选实施例。根据本发明的自动代码生成方法如图1的3所示,自动代码生成方法3由通用代码框架模板30,XML格式流程建模器31和自动代码生成器32组成。其中,通用代码框架模板30根据特定多DSP硬件平台I的源代码文件类型和格式制定;XML格式流程建模器31对用户开发的信号处理流程2进行XML格式的建模和描述,并输出XML格式的描述文件;自动代码生成器32根据通用代码框架模板30和XML格式流程建模器31的输出自动生成DSP源代码4,DSP源代码4经过编译链接后即可加载到相应的多DSP平台5上执行。根据图1中的自动代码生成方法3,首先根据特定多DSP硬件平台I的源代码文件类型和格式进行分类和特征提取,总结出一套通用代码框架模板30。这里所谓的通用代码框架模板指的是具有一定规范和格式要求,能够进行参数配置和扩展,具备较好的实用性和通用性,能通过实例化转换成实际DSP源代码4的代码文件。图2示出了由图1所示的通用代码框架模板30的一个具体例子,该例子基于的多DSP硬件平台是ADI公司的Ts201处理板。如图2所示,通用代码框架模板6由7个通用代码框架文件组成,分别是流程控制代码框架文件61、信号处理代码框架文件62、通信代码框架文件63、内存分配代码框架文件64、编译/链接代码框架文件65、加载代码框架文件66和路由描述框架文件67。其中I)流程控制代码框架文件61类似于C/C++里的main函数,主要实现对信号处理流程的控制,流程控制代码框架实例化的结果就是一个实现信号处理流程控制的主程序,包括头文件和相应的c/cpp文件。流程控制代码框架的内容包括头文件的声明,计算、存储、通信资源的配置和初始化,重要的宏定义和变量声明,按照数据流模型设计的四步循环控制流程数据接收一数据处理一数据发送一状态更新。多DSP平台上的信号处理流程通常由多个功能模块以一定的互连关系构成,代码生成时每个功能模块都会实例化一个流程控制代码框架文件以得到自己的主程序文件。2)信号处理代码框架文件62类似于C/C++里实现具体功能的函数,不过针对信号处理的特点,将其定义为C++语言中的一个“类(Class)”。类名称反映其功能名称,类成员主要包括构造函数、析构函数、执行函数和模块参数,前面三个函数分别在类的实例创建、删除和执行功能时被隐式或显式地调用,最后的模块参数作为类的私有成员可根据用户需要设置个数和名称,用来描述模块的可配置参数属性。信号处理代码框架文件实例化的结果就是包括信号处理模块类声明的头文件和包括信号处理模块类定义的c/cpp文件,这两个文件被流程控制代码框架文件所包含,相应的信号处理模块类也在流程控制代码框架文件中被实例化和调用。代码生成后,每个功能模块都将拥有自己的信号处理代码文件。3)通信代码框架文件63主要负责定义流程控制代码框架中的数据接收和数据发送部分所涉及的通信函数,在通信代码框架文件中对多DSP平台上常用的通信函数进行了标准的接口封装,包括延时函数、接收函数、发送函数、DMA传输函数等。通信代码框架文件实例化的结果就是包括通信函数声明的头文件和包括通信函数功能定义的c/cpp文件。代码生成后,所有功能模块都共用引用这个通信函数文件。4)内存分配代码框架文件64负责对DSP的存储资源进行封装,将内存以若干个逻辑段的形式提供给用户使用,以实现对流程控制代码框架文件和信号处理代码框架文件中存储资源配置方面的支持。代码生成后,每个功能模块都将拥有自己的内存分配描述文件。5)编译/链接代码框架文件65描述DSP代码及工程生成后在编译/链接过程中涉及的相关文件、编译过程和编译选项等,类似makefile文件的格式。编译/链接代码框架文件实例化后即成为可用的makefile文件,根据不同多DSP平台具体采用的编译器对该文件进行编译链接,可生成最终的硬件下载文件,例如ADI公司的dxe/ldr文件、TI公司的out文件等。代码生成后,每个功能模块都将拥有自己的编译/链接描述文件。6)加载代码框架文件66在各个功能模块生成的下载文件和实际多DSP硬件平台的具体节点之间建立对应关系,以进行任务分配和映射。加载代码框架文件以多行对照表的格式建立,即每行标出一个下载文件名称和该文件要分配的DSP节点号(DSP节点可以全局编号,也可以采取处理板号+板上DSP号的形式)。代码生成后,一个工程项目组(可能包含多个功能模块)将拥有一个程序加载分配描述文件。7)路由描述框架文件67描述的是多DSP平台上各个DSP节点之间的硬件拓扑连接信息,同样米用多行对照表的格式建立。例如米取全局编号的I号DSP和2号DSP之间通过3号链路口互连,则在对照表中的某行标出该信息。路由描述框架文件用来实现自动代码生成中的自动路由功能。代码生成后,一个工程项目组(可能包含多个功能模块)将拥有一个路由描述文件。根据图1中的自动代码生成方法3,还要利用XML格式流程建模器31对用户开发的信号处理流程2进行XML格式的建模和描述,包括模块信息和模块间互连关系等,并输出XML格式的描述文件。图3示出了由图1所示的XML格式流程建模器31生成的XML描述文件结构7。如图3所示,XML描述文件结构7包含了一系列针对多DSP平台任务开发特点提取和抽象出来的特征元素。各元素含义如下Drml元素,表示本次建模的版本信息、编码格式。2)SyStem元素,表明本次建模的信号处理系统信息,作为系统的顶层元素,表示整个系统。3)application元素,用于描述信号处理流程的组成模块和模块间连接方式。4)actor元素,表示信号处理模块。例如权利要求1.一种多DSP平台上的自动代码生成方法,其特征是在于包括以下步骤1)针对多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板;2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,其中包括模块列表、模块属性和模块间互连关系;3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系信息,基于I)中的通用代码框架模板生成最终的DSP源代码。2.根据权利要求1中所述的自动代码生成方法,其特征在于,所设计的通用代码框架模板具有一定规范和格式要求、能够进行参数配置和扩展、能通过实例化转换成实际DSP源代码。3.根据权利要求1中所述的自动代码生成方法,其特征还在于,所设计的通用代码框架模板包括流程控制代码框架文件、信号处理代码框架文件、通信代码框架文件、内存分配代码框架文件、编译/链接代码框架文件、加载代码框架文件和路由描述框架文件中的部分或全部。4.根据权利要求1中所述的自动代码生成方法,其特征在于,XML描述文件包含了一系列针对多DSP平台任务开发特点提取和抽象出来的特征元素,其中包括模块列表、模块属性和模块间互连关系。5.根据权利要求1或权利要求4中所述的自动代码生成方法,其特征还在于,XML描述文件包括rml兀素、system兀素、actor兀素、connect兀素、editable兀素、param兀素、port兀素、src_port兀素、dest_port兀素、src_actor兀素和dest_actor兀素中的部分或全部。6.根据权利要求1中所述的自动代码生成方法,其特征在于,所设计的自动代码生成器包含一个XML文件解析器,提取XML描述文件中的模块信息和/或互连信息。7.根据权利要求1中所述的自动代码生成方法,其特征在于,所设计的自动代码生成器可以对通用代码框架模板进行实例化。8.根据权利要求1、权利要求6或权利要求7中所述的自动代码生成方法,其特征在于,所设计的自动代码生成器采用文件拷贝、关键词替换、逐行生成方式中的一种或几种对通用代码框架模板进行实例化。全文摘要一种多DSP平台上的自动代码生成方法,其特征是主要步骤如下1)针对特定多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板;2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,包括模块列表、模块属性和模块间互连关系;3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系等必需信息,基于1)中的通用代码框架模板生成最终的DSP源代码。文档编号G06F9/44GK103019742SQ20121059268公开日2013年4月3日申请日期2012年12月31日优先权日2012年12月31日发明者汤俊,汤小为,李宁,韦文,杜劲松,毕欣,余吉申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1