当前位置: 首页 > 专利查询>清华大学专利>正文

一种多DSP平台上的自动代码生成方法技术

技术编号:8532573 阅读:309 留言:0更新日期:2013-04-04 15:26
一种多DSP平台上的自动代码生成方法,其特征是:主要步骤如下:1)针对特定多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板;2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,包括模块列表、模块属性和模块间互连关系;3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系等必需信息,基于1)中的通用代码框架模板生成最终的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平台上常用本文档来自技高网
...

【技术保护点】
一种多DSP平台上的自动代码生成方法,其特征是在于包括以下步骤1)针对多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板;2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,其中包括模块列表、模块属性和模块间互连关系;3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系信息,基于1)中的通用代码框架模板生成最终的DSP源代码。

【技术特征摘要】
1.一种多DSP平台上的自动代码生成方法,其特征是在于包括以下步骤 1)针对多DSP平台上的具体代码进行分类和特征提取,总结出一套通用代码框架模板; 2)利用XML描述文件对用户开发的具体算法流程进行建模和描述,其中包括模块列表、模块属性和模块间互连关系; 3)最后通过自动代码生成器提取出XML描述文件中的模块列表、模块属性和模块互连关系信息,基于I)中的通用代码框架模板生成最终的DSP源代码。2.根据权利要求1中所述的自动代码生成方法,其特征在于,所设计的通用代码框架模板具有一定规范和格式要求、能够进行参数配置和扩展、能通过实例化转换成实际DSP源代码。3.根据权利要求1中所述的自动代码生成方法,其特征还在于,所设计的通用代码框架模板包括流程控制代码框架文件、信号处理代码框架文件、通信代码框架文件、内存分配代码框架文件、编译/链接代码框架文件、加载代码框架文件和路由描述框架文件中的部分或全部。4.根据权利要求1中所述的自动代码生成方法,其特征在于,XML描...

【专利技术属性】
技术研发人员:汤俊汤小为李宁韦文杜劲松毕欣余吉
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1