下载此文档

第6章 TMS320C54x软件开发C语言.ppt


文档分类:IT计算机 | 页数:约58页 举报非法文档有奖
1/58
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/58 下载此文档
文档列表 文档介绍
第6章 TMS320C54x C 语言编程? DSP 的C语言简介? DSP 的C语言特性? DSP 的C语言与汇编语言混合编程? C语言调用汇编函数? 汇编模块调用 C函数返回首页 DSP 的C语言简介?由 DSP 厂商及第三方为 DSP 软件开发提供了 C编译器,使得利用高级语言开发 DSP 程序成为可能。?在 TI公司的 DSP S 中,提供了优化的 C编译器,可以对 C语言程序进行优化编译, 提高程序效率。目前在某些应用中 C语言优化编译的结果可以达到手工编写的汇编语言效率的 90% 以上。? TMS320C54 系列的有优化 C编译器,支持 ANSI 的C语言标准,它是使用最广泛的 C语言标准。 ANSI 标准具有一些受目标处理器、运行期环境或主机环境影响的 C语言特性,从有效性或实现上考虑,这些特征在各种标准的 C编译器之间可能有不同。 DSP 的C语言特性? TMS320C2000 C 语言的特征?(1)标识符和常数?所有标识符的前 100 个字符有意义,区分大小写。源(主机)和执行(目标)字符集为 ASCII 码,不存在多字节字符。具有多个字符的字符常数按序列中最后一个字符来编码,例如: ‘ abc ’= = ‘c’。和汇编语言不同。?(2)数据转换?浮点到整数的转换取整数部分。指针和整数可以自由转换。?(3)表达式?当两个有符号整数相除时,若其中一个为负, 则其商为负,余数的符号与分子的符号相同。斜杠( /)用来求商,百分号( %)用来求余数。例如: ? 10/-3 = -3, -10/3 = -3, 10%-3 = 1, -10%3 = - 1 ?(4)声明?寄存器变量对所有 char , short , int 和指针类型有效。 interrupt 关键字仅可用于没有参量的 void 函数。?(5)预处理?预处理器忽略任何不支持的#pragma 伪指令。预处理器支持的伪指令包括: ?· CODE_SECTOIN ?· DATA_SECTION ?· FUNC_EXT_CALLED ? TMS320C2000 C 语言的数据类型?注:在 TMS320C2x/C2xx/C5xC 语言中,字节长度为 16 位, sizeof 操作符返回的对象长度是以 16 位为字节长度的字节数。例如 sizeof(int) = 1 。? 寄存器变量? TMS320C54 C 编译器在一个函数中最多可以使用两个寄存器变量。寄存器变量的声明必须在变量列表或函数的起始处进行,在嵌套块中声明的寄存器变量被处理为一般的变量。编译器使用 AR6 和 AR7 作为寄存器变量: ? AR6 被赋给第一个寄存器变量, AR7 被赋给第二个寄存器变量。?寄存器变量的地址会被放入分配的寄存器中,这样变量的访问速度会更快。? 16 位类型的变量( char 、 short 、 int 和指针)都可以被定义为寄存器变量。但在运行时,设置一个寄存器变量大约需要 4条指令,为了更有效地使用这个功能,仅当变量被访问超过 2次时,才使用寄存器变量。?程序优化编译器也会定义寄存器变量, 但使用方式不同。编译器会自己决定哪些变量作为寄存器变量,程序中声明的寄存器变量会全部被忽略。声明的格式为: ? register type reg; ? pragma 伪指令? pragma 伪指令通知编译器的预处理器如何处理函数。 TMS320C54 C 编译器支持下列 pragma : CODE_SECTION 、 DATA_SECTION 、 FUNC_EXT_CALLED 。? 1. CODE_SECTION ?这个伪指令在名称为 section name 的命名段中为 symbol 分配空间。语法为: #pragmaCODE_SECTION (symbol, “ section name ”); ? 2. DATA_SECTION ?这个伪指令在名称为 section name 的命名段中为 symbol 分配空间。语法为: #pragmaDATA_SECTION (symbol, “ section name ”); ? 3. FUNC_EXT_CALLED ?当使用-pm 选项时,编译器将使用程序级的优化。在这个优化层次中,编译器将删除所有未被 main 函数直接或间接调用的函数。?而用户程序里可能包含要被手工编写的汇编语言程序调用而没有被 main 函数调用的函数,这时就应该用 FUNC_EXT_CALLED 来通知编译器保留此函数和被此函数调用到的函数,这些函数将作为 C程序的入口点。?这个伪指令必须出现在对要保留的函数的任何

第6章 TMS320C54x软件开发C语言 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数58
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小435 KB
  • 时间2017-02-20