首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

哈工大DSP精品讲义!!!(连载)


DSP仿真环境

>> MP/MC* = 1, 微处理器模式

>> VccP(Pin 50) = 5V

>> 外部时钟要保证CPUCLK = 40MHz

>> 仿真RAM(PS* or DS* 选通)

12.3 DSP开发环境

Code Composer(v4.1)

>> CC For C2000

>> CC For C3xC4x

Code Composer Studio(v2.2)

>> CCS 2000

>> CCS 5000

>> CCS 6000

其他开发工具:

软件模拟器(Software Simulator)

初学者开发套件DSK(DSP Starter Kit)

软件评估模块EVM(Evaluation Module)


Code Composer特性:

集成开发环境

对C和DSP汇编文件的目标管理

高集成的编辑器调整C和DSP汇编代码

C代码优化编译功能

丰富的调试手段:

断点、单步、

观察窗口、探针、图形分析

寄存器、内存查看

目标DSP的帮助

第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。

整型、双精度型等数据类型长度与常见编译器中数据 类型不同,所有的浮点型都是由MS320C2x/C2xx/C5x的 32位的二进制浮点格式来表示。

size_t(sizeof操作符的结果)定义为unsigned int。

ptrdiff_t(指针加减的结果)定义为int。

浮点数转换为整型数为向零取整转换。 指针和整型数可以自由转换。


类型转换

浮点数转换为整型数为向零取整转换。

指针和整型数可以自由转换。

表达式

当两个有符号整型数相除,如果两个数中任一个为负

数,则商为负数,并且余数的符号与被除数的符号相同。

用斜线符号(/)可以得到商,用百分号(%)可以得到

余数。

例如:10 / -3 = -3; -10 / 3 = -3;

10 % -3 = 1; -10 % 3 = -1;

有符号型数的右移是算术移位,符号被保留。

用斜线符号(/)可以得到商,用百分号(%)可以得到

余数。

例如: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类型以低有效字存储在低端的存储地址。

所有浮点型(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被指定为第二个寄存器变量。

变量的地址放在指定的寄存器中,访问起来更加容易。16位的字节变量(char,short,int和pointer)

可以用作寄存器变量。在运行时,设置每一个寄存器变量需要四条指令为了有效地利用这种方式,只有在一个变量被多次访问时,才使用寄存器变量。 程序优化编译器也会定义寄存器变量,但使用方式不同。编译器会自己决定哪些变量作为寄存器变量,程序中声明的寄存器变量会全部被忽略。

返回列表