首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   嵌入式C语言开发ADSP21XX系列DSP      ★★★ 【字体: 】  
嵌入式C语言开发ADSP21XX系列DSP
收集整理:佚名    来源:本站整理  时间:2009-01-10 22:23:08   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
摘要:详细介绍使用VisualDSP开发工具进行ADSP21XX的C语言编程的方法;分析其C语言运行库的结构,并且结合实例介绍C语言工具的使用方法,包括C语言与汇编语言混合编程的方法,从C运行库提取代码用于自己的汇编语言程序的方法、修改运行库的源代码以适应自己开发需要的方法等。

    关键词:DSP VisualDSP 嵌入式C语言 汇编语言

引言

长期以来,在DSP系统开发中,一直把汇编语言作为主要的开发工具;但汇编语言与自然语言差距很大,不易常,而且汇编语言是依赖于处理器的,不利于软件的可重复利用和系统的稳定性,程序不易移植,给开发工作带来了很大的困难。随着嵌入式系统复杂程度的不断提高,用汇编语言编写一个巨大的程度将是困难,甚至是不可能的。为此,AD公司推出了针对ADSP21XX系列DSP的嵌入式C和C++语言集成开发工具,分别是VisualDSP和VisualDSP++系列,这些开发工具提供了C语言和C++语音的开发功能。以下就以笔者在实际开发中的一些经验,结合VisualDSP6.1版本,介绍用C语言开发VisualDSP6.1版本,介绍用C语言开发ADSP21XX的方法。VisualDSP提供了一个开放源码软件组织GNU的C编译器,和一套成熟稳定的C运行时间库(C Run time Library)等。GNU的编译器一向以编译效率高著称,在编译后的代码长度和运行速度方面非常优秀;C运行时间库则把很多重复性的工作,如浮点运行、三角函数、FFT等作为C语言的库函数,提供给用户,大大提高了用户的开发效率和程序的稳定性,降低了开发难度,另外,由于把这些库函数的源代码提供给了用户,还提高了C语言与汇编语言之间的透明性,使用户开发的程序兼具两者的优点。

1 Visual DSP简介

VisualDSP是AD公司的DSP开发工具,主要由可执行文件、库文件和各种帮助文档组成。6.1版本还带有一个基于图形界面,针对21XX系列DSP的软件仿真和调试工具。

VisualDSP的可执行文件包括汇编、编译、链接工具以及可执行文件重新格式化工具等,见表1。

表1 VisualDSP的可执行文件及用途

可执行文件名

用      途

Asmpp.exe*汇编预处理程序
Asm2.exe*21XX系列汇编程序的汇编程序
Asm21.exe21XX系列命令行汇编程序
Ld21.exe21XX系列链接工具
G21.exe基于GNU的21XX系列C编译器
Bld21.exe系统编译工具,产生相应于不同硬件体系的.ACH文件
Lib21.exe21XX系列的库管理工具
Hspl21.exe把21XX系列可执行文件变成HIP口可加载的格式
Spl21.exe把21XX系列可执行文件变成PROM可烧写的格式

注:“*”代表该程序一般不单独使用,而昌由G21.exe或Asm21.exe调用。

VisualDSP套件中的软件仿真调试工具DEBUGAPP,采用Windows图形界面,使用方便。它的主要特点是:可以仿真调试从ADSP2101~2189全系列的DSP;支持断点、单步、全速运行等各种常见调试方法;可以随时查询和修改DSP的程序RAM(PM)、数据RAM(DM)和各寄存器的内容;可以仿真中断,进行可执行程序性能评估(Profile),因此可以进行时序仿真。DEBUGAPP是调试程序和验证复杂算法的极好工具。

VisualDSP6.1还提供了丰富的帮助文档,包括21XX系列的用户手册、汇编和C语言工具以及仿真调试程序的使用手册;还有C运行库的参考手册,列出了所有可用的C库函数。用C语言开发DSP的典型流程如图1所示。

2 C语言运行库结构

C语言运行时间库是位于LIB目录下的*.a文件,是整个C开发工具的核心之一,提供了大量的可以直接调用的库函数。这些库函数的函数原型包含在INCLUDE目录下的头文件中。这些头文件有的还包含一些宏定义。另外,VisualDSP还把这些库函数的汇编语言源代码提供给出了用户,方便了用户从中提取有用的代码,甚至修改源代码,生成新的库,来适应自己的要求。利用LIB21程序,还可以把自己的常用汇编子程序做成库,或是将实时性要求较高的代码用汇编语言来写,做成库,供C语言程序调用。

VisualDSP的C语言运行库由两部分组成:应用程序框架和预定义的各种库函数。

不同的DSP型号有不同的硬件结构、中断向量表,所以对应的应用程序框架库也不同,相应的文件是21*_HDR.DSP.其中*代表不同的DSP型号。应用程序框架的主体是中断向量处理部分,把中断向量引到合适的地址。其中最重要的是对系统复位(RESET_VECTOR)的中断向量的处理:

_Reset_vector:CALL_lib_setup_everything;

CALL main_;

JUMP_lib_prog_term;

NOP;

第一条指令是调用C库函数中的_ _lib_setup_everything函数作程序启动时的初始化工作。接下来,调用C语言程序中的main_函数,进入C程序的主体,也就是进入用户自己程序,开始正常工作。主程序结束后,再调用_lib_prog_term函数,作程序退出时的结尾工作。由于嵌入式系统的特性,系统绝大多数都在主程序运行时被继电了,所以_lib_prog_term得到执行的机会很小。

其它的中断向量由C运行库来管理,汇编指令如下:

_Interrupt2:JUMP_lib_int2_ctrl;NOP;NOP;NOP;

其中的_lib_int2_crtl就是C语言库中控制INT2的函数。如果用户要使用该中断,应先把中断服务程序用一个C库函数Interrupt()

[1] [2] [3]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:通过JTAG口对DSP外部Flash存储器的在线编程

  • 下一篇文章:TMS320C5410烧写Flash实现并行自举引导
  • 返回上一页】【打 印】【关闭窗口
    中查找“嵌入式C语言开发ADSP21XX系列DSP”更多相关内容 5VAR论文频道
    中查找“嵌入式C语言开发ADSP21XX系列DSP”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››嵌入式C语言开发ADSP21XX系列DSP
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .