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

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

扫描仿真消除了传统的电路仿真存在的问题:仿真电缆过长会引起信号失真,仿真插头的可靠性差的问题。

DSP是通过内部移位寄存器扫描链,实现扫描仿真。

采用扫描仿真,即使芯片已经焊在电路板上,也可进行仿真调试。带来了极大的方便。

12.2.2 JTAG接口

仿真头采用14根信号线,仿真头扫描仿真信号线采用JTAG标准IEEE1149.1。

表12-3 JTAG仿真信号的定义

信号 仿真头状态 DSP芯片状态 信号说明

TMS 输出 输入 JTAG测试方式选择

TDI 输出 输入 JTAG测试数据输入

TDO 输入 输出 JTAG测试数据输

TCK 输出 输入 JTAG测试时钟

TRST 输出 输入 JTAG测试复位

EMU0 输入 输出 仿真脚0

EMU1 输入 输出 仿真脚1

PD 输入 输出 指示仿真电缆连接

(在目标系统中应接至+5V)

TCK_RET 输入 输出 JTAG测试时钟返回


注1:脚6没有连接,而且应该把双排针连接器该针脚去掉,仿真器的DSP连接器通常用此脚进行定位。

注2:根据IEEE1149.1标准,TDI、TCK、TMS、TRST* 四个引脚最好接上拉电阻。另外EMU0、EMU1两个仿真控制脚也最好接上拉电阻。


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

返回列表