dsp的c语言编程85543

dsp的c语言编程85543

ID:33931762

大小:385.68 KB

页数:62页

时间:2019-03-01

dsp的c语言编程85543_第1页
dsp的c语言编程85543_第2页
dsp的c语言编程85543_第3页
dsp的c语言编程85543_第4页
dsp的c语言编程85543_第5页
资源描述:

《dsp的c语言编程85543》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第15章DSP的C语言编程15.1DSPC语言简介DSP生产厂商及第三方为DSP软件开发提供了C编译器,使得利用高级语言实现DSP程序的开发成为可能。在TI公司的DSP软件开发平台CCS中,又提供了优化的C编译器,可以对C语言程序进行优化编译,提高程序效率,目前在某些应用中C语言优化编译的结果可以达到手工编写的汇编语言效率的90%以上。DSP生产厂商和相关公司也在不断对C优化编译器进行改进设计,相信日后C语言程序优化编译的效果会有进一步的改善。TMS320C2000系列提供有优化的C编译器,它支持ANSI(Ameri

2、canNationalStandardsInstitute,美国国家标准委员会)开发的C语言标准,该C语言标准是使用最广泛的C语言标准,ANSI标准具有一些受目标处理器、运行期环境或主机环境影响的C语言特性,从有效性或实现上的考虑,这些特征在各种标准的C编译器之间可能有不同。15.2DSPC语言特性15.2.1TMS320C2000C语言的特征(1)标识符和常数所有标识符的前100个字符有意义,区分大小写。源(主机)和执行(目标)字符集为ASCII码,不存在多字节字符。具有多个字符的字符常数按序列中最后一个字符来编码

3、,例如:‘abc’==‘c’(2)数据转换浮点到整数的转换取整数部分。指针和整数可以自由转换。(3)表达式当两个有符号整数相除时,若其中一个为负,则其商为负,余数的符号与分子的符号相同。斜杠(/)用来求商,百分号(%)用来求余数。例如:10/-3=-3,-10/3=-3,10%-3=1,-10%3=-1(4)声明寄存器变量对所有char,short,int和指针类型有效。interrupt关键字仅可用于没有参量的void函数。(5)预处理预处理器忽略任何不支持的#pragma伪指令。预处理器支持的伪指令包括:·COD

4、E_SECTOIN·DATA_SECTION·FUNC_EXT_CALLED15.2.2TMS320C2000C语言的数据类型注:在TMS320C2x/C2xx/C5xC语言中,字节长度为16位,sizeof操作符返回的对象长度是以16位为字节长度的字节数。例如sizeof(int)=1。15.2.3TMS320C2000C语言的关键字•const(常数)•ioport(I/O端口)•interrupt(中断)•near(近)•far(远)•volatile(可变的)15.2.4寄存器变量TMS320C2000C编译

5、器在一个函数中最多可以使用两个寄存器变量。寄存器变量的声明必须在变量列表或函数的起始处进行,在嵌套块中声明的寄存器变量被处理为一般的变量。编译器使用AR6和AR7作为寄存器变量:•AR6被赋给第一个寄存器变量•AR7被赋给第二个寄存器变量寄存器变量的地址会被放入分配的寄存器中,这样变量的访问速度会更快。16位类型的变量(char、short、int和指针)都可以被定义为寄存器变量。但在运行时,设置一个寄存器变量大约需要4条指令,为了更有效地使用这个功能,仅当变量被访问超过2次时,才使用寄存器变量。程序优化编译器也会定

6、义寄存器变量,但使用方式不同。编译器会自己决定哪些变量作为寄存器变量,程序中声明的寄存器变量会全部被忽略。声明的格式为:registertypereg;15.2.5pragma伪指令pragma伪指令通知编译器的预处理器如何处理函数。TMS320C2000C编译器支持下列pragma:•CODE_SECTION•DATA_SECTION•FUNC_EXT_CALLED1.CODE_SECTION这个伪指令在名称为sectionname的命名段中为symbol分配空间。语法为:#pragmaCODE_SECTION(s

7、ymbol,“sectionname”);2.DATA_SECTION这个伪指令在名称为sectionname的命名段中为symbol分配空间。语法为:#pragmaDATA_SECTION(symbol,“sectionname”);3.FUNC_EXT_CALLED当使用-pm选项时,编译器将使用程序级的优化。在这个优化层次中,编译器将删除所有未被main函数直接或间接调用的函数。而用户程序里可能包含要被手工编写的汇编语言程序调用而没有被main函数调用的函数,这时就应该用FUNC_EXT_CALLED来通知编译

8、器保留此函数和被此函数调用到的函数,这些函数将作为C程序的入口点。这个伪指令必须出现在对要保留的函数的任何声明或引用之前,其语法为:#pragmaFUNC_EXT_CALLED(func);15.2.6asm语句TMS320C2000C编译器可以在编译器输出的汇编语言程序中直接输出汇编指令或语句。利用asm语句嵌入汇编语言程序,可以实现一些C语

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

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

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