嵌入式c语言开发adsp21xx系列dsp

嵌入式c语言开发adsp21xx系列dsp

ID:20226906

大小:58.00 KB

页数:5页

时间:2018-10-09

嵌入式c语言开发adsp21xx系列dsp_第1页
嵌入式c语言开发adsp21xx系列dsp_第2页
嵌入式c语言开发adsp21xx系列dsp_第3页
嵌入式c语言开发adsp21xx系列dsp_第4页
嵌入式c语言开发adsp21xx系列dsp_第5页
资源描述:

《嵌入式c语言开发adsp21xx系列dsp》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、嵌入式C语言开发ADSP21XX系列DSP

2、第1关键词:DSPVisualDSP嵌入式C语言汇编语言引言长期以来,在DSP系统开发中,一直把汇编语言作为主要的开发工具;但汇编语言与自然语言差距很大,不易常,而且汇编语言是依赖于处理器的,不利于软件的可重复利用和系统的稳定性,程序不易移植,给开发工作带来了很大的困难。随着嵌入式系统复杂程度的不断提高,用汇编语言编写一个巨大的程度将是困难,甚至是不可能的。为此,AD公司推出了针对ADSP21XX系列DSP的嵌入式C和C++语言集成开发工具,分别是VisualDSP和VisualDSP++系列,这些开发

3、工具提供了C语言和C++语音的开发功能。以下就以笔者在实际开发中的一些经验,结合VisualDSP6.1版本,介绍用C语言开发VisualDSP6.1版本,介绍用C语言开发ADSP21XX的方法。VisualDSP提供了一个开放源码软件组织GNU的C编译器,和一套成熟稳定的C运行时间库(CRuntimeLibrary)等。GNU的编译器一向以编译效率高著称,在编译后的代码长度和运行速度方面非常优秀;C运行时间库则把很多重复性的工作,如浮点运行、三角函数、FFT等作为C语言的库函数,提供给用户,大大提高了用户的开发效率和程序的稳定性,降低了开发难度

4、,另外,由于把这些库函数的源代码提供给了用户,还提高了C语言与汇编语言之间的透明性,使用户开发的程序兼具两者的优点。1VisualDSP简介VisualDSP是AD公司的DSP开发工具,主要由可执行文件、库文件和各种帮助文档组成。6.1版本还带有一个基于图形界面,针对21XX系列DSP的软件仿真和调试工具。VisualDSP的可执行文件包括汇编、编译、链接工具以及可执行文件重新格式化工具等,见表1。表1VisualDSP的可执行文件及用途可执行文件名用途Asmpp.exe*汇编预处理程序Asm2.exe*21XX系列汇编程序的汇编程序Asm21.

5、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,采用P_lib_prog_term;NOP;第一条指

6、令是调用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就是

7、C语言库中控制INT2的函数。如果用户要使用该中断,应先把中断服务程序用一个C库函数Interrupt()把服务函数指针设定好,并打开相应的中断允许位,当该中断发生时,_lib_int2_ctr1函数就会控制DSP跳转到相应的指针位置。VisualDSP预定义的C语言库函数包括数学函数、FFT函数、ANSI标准内存管理和字符串管理函数的一个子集。所有的函数列表可参考VisualDSP的联机文档。这些库函数以二进制代码的形式,打包集合在lib*.a文件中,用户的C语言程序可以像使用自己的子程序一样方便地调用这些库函数。下面是调用库函数的一个例子。#

8、include<math.h>//包含所需的头文件……floata,b,c;//定义所需的变量……c=a*sin(b);//数学运算编译后产生的汇编源代码中有callsin_指令,就是调用sin库函数的汇编语言指令语句。从嵌入式开发的角度讲,VisualDSP的C语言工具已经提供了一个操作系统雏形的功能。在AD公司的ADMC系列DSP中,已经把这些库函数和一些电机控制专用的函数,以及程序加载功能,集成在了DSP的片内ROM中。3C语言与汇编语言混合编程方法用C语言开发的缺点是不能精确控制程序运行的时间,对于实时性要求较高的应用,必须用

9、汇编语言。VisualDSP为用户提供了两种与汇编语言的接口方法:用ASM()方法,直接嵌入汇编语言语句;用汇编语言编写子程序,供C语言

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。