第1章 概论 1
1.1 引言 1
1.2 DSP系统的特点 1
1.3 DSP的发展历程 2
1.4 TMS320系列DSP的主要性能 3
1.4.1 TMS320C1x 3
1.4.2 TMS320C2x 4
1.4.3 TMS320C2xx 4
1.4.4 TMS320C3x 5
1.4.5 TMS320C4x 6
1.4.6 TMS320C5x 7
1.4.7 TMS320C54x 7
1.4.8 TMS320C62xx 8
1.4.9 TMS320C67xx 8
1.4.10 多处理器DSP芯片TMS320C8x 9
1.5 其他公司的DSP产品 9
1.6 DSP的分类 10
1.7 DSP的选择 11
1.8 DSP的应用 13
1.9.1 方案设计 15
1.9.2 硬件设计 15
1.9 DSP应用系统的设计开发过程 15
1.9.3 软件设计 17
1.9.4 系统调试 18
1.9.5 系统试验 18
第2章 TMS320VC33的结构 20
2.1 命名规则 20
2.2 TMS320VC33的引脚及信号说明 21
2.2.1 主总线接口信号 26
2.2.2 控制信号 27
2.2.3 串行口信号 28
2.2.5 电源及振荡器信号 29
2.2.4 定时器信号 29
2.2.6 JTAG仿真信号 32
2.3 总线结构 33
2.3.1 内部总线 33
2.3.2 外部总线 35
2.4 中央处理单元 35
2.5 存储器组织 37
2.5.1 存储器分配 37
2.5.2 中断向量和分支指令存储器分配 39
2.5.3 外围寄存器地址分配 40
第3章 寄存器和高速缓冲存储器 42
3.1 寄存器 42
3.2.1 Cache结构 50
3.2 高速缓冲存储器 50
3.2.2 Cache算法 51
3.2.3 Cache控制位 52
第4章 外围 53
4.1 定时器 53
4.1.1 定时器全局控制寄存器 54
4.1.2 周期寄存器和计数器 57
4.1.3 定时器的脉冲发生器 58
4.1.4 定时器中断 60
4.1.5 定时器编程实例 60
4.2 串行口 61
4.2.1 串行口全局控制寄存器 62
4.2.2 发送端口控制寄存器 65
4.2.3 接收端口控制寄存器 66
4.2.4 接收/发送定时器控制寄存器 67
4.2.5 接收/发送定时器计数器 69
4.2.6 接收/发送定时器周期寄存器 69
4.2.7 数据发送寄存器 69
4.2.8 数据接收寄存器 69
4.2.9 串行口的配置 70
4.2.10 串行口的工作时序 71
4.2.12 串行口的数据传输方式 73
4.2.11 串行口的中断源 73
4.2.13 串行口初始化与配置 76
4.2.14 TMS320C3x串行口的应用实例 77
4.3 DMA控制器 79
4.3.1 DMA全局控制寄存器 79
4.3.2 目的地址和源地址寄存器 80
4.3.3 传输计数寄存器 81
4.3.4 CPU和DMA的优先权 81
4.3.5 DMA的传输方式 81
4.3.6 DMA编程与应用实例 83
5.2 无符号整数格式 88
5.1 有符号整数格式 88
第5章 数据格式和浮点运算 88
5.3 浮点数格式 89
5.3.1 短浮点格式 89
5.3.2 单精度浮点格式 90
5.3.3 扩展精度浮点格式 91
5.3.4 浮点数转换成整数 91
5.3.5 浮点格式间的转换 93
5.4 浮点数的运算 94
5.4.1 浮点数的乘法 94
5.4.2 浮点数的加法和减法 94
5.4.3 浮点数的除法 95
6.2 直接寻址 97
第6章 寻址方式 97
6.1 寄存器寻址 97
6.3 间接寻址 98
6.3.1 直接给出偏移量的间接寻址 99
6.3.2 通过索引寄存器调整偏移量的间接寻址 102
6.3.3 特殊的间接寻址 105
6.4 立即寻址 105
6.5 PC相对寻址 106
6.6 循环寻址 106
6.7 位反转寻址 110
6.8.1 系统堆栈指针 111
6.8 系统堆栈和用户堆栈管理 111
6.8.2 用户堆栈 112
6.8.3 队列 113
第7章 汇编语言指令 114
7.1 数据传输指令 114
7.2 二操作数指令 115
7.3 三操作数指令 120
7.4 流程控制 122
7.4.1 流程控制指令 122
7.4.2 条件代码和标志 124
7.4.3 重复方式 125
7.4.4 延迟跳转 128
7.4.5 子程序调用 129
7.4.6 中断 129
7.5 低功耗控制指令 130
7.6 互锁操作指令 132
7.7 并行操作指令 132
第8章 流水线操作 136
8.1 流水线结构 136
8.2 流水线冲突 137
8.2.1 跳转冲突 137
8.2.2 寄存器冲突 139
8.2.3 存储器冲突 140
8.3 解除寄存器冲突 145
8.4 最佳性能的存储器存取 146
8.5 存储器存取时序 147
8.5.1 程序的取指 147
8.5.2 数据的装载和存储 147
第9章 公共目标文件格式 151
9.1 段及段命令 151
9.2 链接器及命令文件 154
9.2.1 缺省分配算法 154
9.2.2 用命令文件分配存储器 154
9.3 程序重定位 155
9.4 COFF文件中的符号 156
9.5 COFF格式编程举例 157
第10章 十六进制转换与引导 158
10.1 十六进制转换的作用 158
10.2 十六进制转换命令及转换流程 159
10.3 命令文件的建立与使用 162
10.4 存储器的分配 163
10.5 引导 167
11.1.1 处理器初始化 170
11.1.2 应用汇编语言实现处理器初始化 170
11.1 处理器初始化 170
第11章 软件应用 170
11.2 程序控制 173
11.2.1 子程序调用 173
11.2.2 软件堆栈 175
11.2.3 中断服务程序 175
11.2.4 延时跳转 179
11.2.5 重复方式 179
11.3 逻辑和算术运算 181
11.3.1 位管理 181
11.3.2 块移动 181
11.3.3 位反转寻址 182
11.3.4 整数和浮点数除法 183
11.3.5 平方根 185
11.3.6 扩展精度算法 187
11.4 定向应用操作 189
11.4.1 压扩 189
11.4.2 FIR、IIR和自适应滤波器 191
11.4.3 矩阵—矢量乘法 197
11.4.4 快速傅立叶变换(FFT) 199
11.4.5 格型滤波器 213
12.1.2 电流要求 217
12.1.1 电压结构及要求 217
12.1 TMS320VC33芯片的电源设计 217
第12章 硬件应用 217
12.1.3 TMS320VC33芯片供电电压的产生 218
12.2 3.3V和5V混合逻辑系统设计 218
12.2.1 各种电平的转换标准 218
12.2.2 TMS320VC33与外围器件的接口 220
12.3 TMS320VC33系统接口设计 221
12.3.1 时钟振荡器电路 221
12.3.2 复位信号的产生 222
12.4 JTAG仿真接口 222
12.5 TMS320VC33存储器扩展接口设计 224
参考文献 227