logo资料库

DSP c语言程序设计.pdf

第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
资料共48页,剩余部分请下载后查看
第13章 DSP程序设计 主要内容: (1)DSP C语言程序设计 (2)C语言与汇编语言混合编程 (3)DSP程序烧写
13.1 DSP C语言程序设计 DSP支持使用ANCI C进行程序设计,并提供了相应的编 译器和C优化编译工具,利用这些优化编译工具可以 产生可与手工编写相比的汇编语言程序。 13.1.1 DSP C语言的特征 DSP C语言以ANSI C为基础,并对ANSI C进行了相应的 限定和扩展。 以下是LF2407 C语言的一些不同于一般标准C的特征:
标识符和常量 所有标识符的前100个字符是有效的,区分大小写。 不允许多字节字符。 多字符的字符常数按序列中的最后一个字符来编码。 例如:’abc’ == ’c’。 数据类型 整型、双精度型等数据类型长度与常见编译器中数据 类型不同,所有的浮点型都是由MS320C2x/C2xx/C5x的 32位的二进制浮点格式来表示。 size_t(sizeof操作符的结果)定义为unsigned int。 ptrdiff_t(指针加减的结果)定义为int。
类型转换 浮点数转换为整型数为向零取整转换。 指针和整型数可以自由转换。 表达式 当两个有符号整型数相除,如果两个数中任一个为负 数,则商为负数,并且余数的符号与被除数的符号相同。 用斜线符号(/)可以得到商,用百分号(%)可以得到 余数。 例如:10 / -3 = -3; -10 / 3 = -3; 10 % -3 = 1; -10 % 3 = -1; 有符号型数的右移是算术移位,符号被保留。
声明 寄存器变量(register)声明对 short,integer,pointer等所有类型的变量都有 效。 预处理指令(#pragma) 预处理器会忽略所有不支持的预处理指令。 支持下列预处理指令:CODE_SECTION, DATA_SECTION和FUNC_EXT_CALLED。 13.1.2 数据类型 所有整数类型(char,short,int以及对应的无符号 类型)都是相同的,都是由16位的二进制数来表示。
长整型(long)和无符号长整型(unsigned long)都是由32位的二进制数来表示。 有符号类型都是由基2的补码来表示。 字符型是有符号类型,等同于整型。 枚举(enum)类型的对象用16位数来表示;在表 达上与整型相似。 所有浮点型(float,double和long double)相 似,在TMS320C2x/C2xx/C5x中都是用32位浮点格 式来表示。 long和float类型以低有效字存储在低端的存储 地址。
注:在TMS320C2x/C2xx/C5x C语言中,字节长度为16位,sizeof操作符返 回的对象长度是以16位为字节长度的字节数。例如sizeof(int) = 1。
13.1.3 寄存器变量 C编译器在一个函数中最多只能用两个寄存器变量, 而且必须在参数表或函数的开始处声明。在嵌套块 中的寄存器变量定义被认为是一般的变量。 编译器用AR6和AR7作寄存器变量: □ AR6被指定为第一个寄存器变量。 □ AR7被指定为第二个寄存器变量。
分享到:
收藏