第1章 概论 1
1.1 信号、信号处理和系统 1
1.2 数字信号处理的主要内容 1
1.3 数字信号处理的实现 2
1.4 实时数字信号处理与数字信号处理器 3
第2章 DSP芯片 4
2.1 DSP简述 4
2.1.1 什么是DSP 4
2.1.2 DSP的主要特点 4
2.1.3 DSP的主要性能指标 6
2.2 DSP芯片的历史和发展 7
2.3 DSP芯片的划分 10
2.4 DSP芯片的典型应用 10
2.5 DSP系统 12
2.5.1 DSP系统的构成 12
2.5.2 以通用DSP为核心构成DSP子系统 13
2.5.3 DSP系统的设计开发过程 13
2.6 常用的DSP芯片 15
2.6.1 AD公司DSP芯片 16
2.6.2 AT&T公司DSP芯片 17
2.6.3 Motorola公司DSP芯片 18
第3章 TMS320C6000系列DSP的结构 19
3.1 TMS320C6000系列的基本特点 19
3.2 TMS320C6000系列的结构框图 20
3.2.1 中央处理单元(CPU) 21
3.2.2 内部存储器 21
3.2.3 外围设备 21
3.3 TMS320C6000系列的CPU数据通道 22
3.3.1 通用寄存器组 23
3.3.2 功能单元 25
3.3.3 寄存器组交叉通道 26
3.3.4 存储器存取通道 27
3.3.5 数据地址通道 27
3.3.6 控制寄存器组 27
3.4 存储器 31
3.4.1 概述 31
3.4.2 TMS320C620x/C670x系列DSP内部程序存储器和数据存储器 32
3.4.3 TMS320C621x/C671x/C64x系列DSP的两级存储器结构 39
3.5 片内外设 48
3.5.1 DMA控制器 48
3.5.2 EDMA控制器 66
3.5.3 主机接口(HPI) 89
3.5.4 扩展总线 104
3.5.5 外部存储器接口 121
第4章 TMS320系列DSP的中断 140
4.1 中断类型和中断信号 140
4.1.1 复位 140
4.1.2 不可屏蔽中断 141
4.1.3 可屏蔽中断(INT4-INT15) 141
4.1.4 中断应答 141
4.2 中断服务表(IST) 141
4.2.1 中断服务取指包(ISPF) 142
4.2.2 中断服务表指针寄存器(ISTP) 142
4.2.3 中断控制寄存器 144
4.3 全局使能和禁止中断(控制状态寄存器——CSR) 145
4.4 个别中断控制 146
4.4.1 使能和禁止中断(中断使能寄存器——IER) 146
4.4.2 中断标志、设置和清除寄存器(IFR,ISR,ICR) 147
4.4.3 从中断服务返回 148
4.5 中断检测和处理 149
4.5.1 设置非复位中断标志 150
4.5.2 处理非复位中断的状态 150
4.5.3 非复位中断的处理 151
4.5.4 TMS320C6000 DSP设置复位中断标志 151
4.5.5 复位中断的处理 152
4.6 中断性能考虑事项 152
4.6.1 一般性能 152
4.6.2 流水线和中断的互相影响 153
4.7 编程考虑事项 153
4.7.1 单独分配寄存器编程 153
4.7.2 嵌套中断 154
4.7.3 人工中断处理 154
4.7.4 陷阱 155
第5章 DSP开发工具和CCS 156
5.1 DSP开发工具 156
5.1.1 基本开发工具 156
5.1.2 其他开发工具 156
5.1.3 TI公司的开发工具 157
5.2 集成开发工具CCS 162
5.2.1 CCS概述 162
5.2.2 CCS编辑工具 163
5.2.3 CCS代码产生工具 170
5.2.4 CCS代码调试工具 172
5.2.5 CCS代码优化工具 187
5.2.6 CCS实时库和分析工具 190
第6章 DSP/BIOS原理及应用 198
6.1 DSP/BIOS组件 199
6.1.1 DSP实时库和API函数 199
6.1.2 DSP/BIOS配置工具 200
6.1.3 DSP/BIOS分析工具 201
6.2 命名规则 203
6.2.1 头文件名 203
6.2.2 对象名 203
6.2.3 操作名 203
6.2.4 数据类型名 204
6.2.5 存储器段名 205
6.2.6 标准的存储器段 205
6.3 程序生成 206
6.3.1 配置工具的使用 207
6.3.2 创建DSP/BIOS程序时使用的文件 210
6.3.3 编译和链接程序 211
6.3.4 DSP/BIOS启动顺序 212
6.3.5 DSP/BIOS调用用户函数 214
6.4 DSP/BIOS仪表 215
6.4.1 实时分析 215
6.4.2 仪表性能 215
6.4.3 仪表API 217
6.4.4 隐式DSP/BIOS仪表 222
6.4.5 Kernel/Object视图调试器 227
6.5 线程调度 232
6.5.1 线程调度概述 232
6.5.2 硬件中断 236
6.5.3 软件中断 237
6.5.4 任务 243
6.5.5 IDLE循环 247
6.5.6 信号灯 247
6.5.7 信箱 248
6.5.8 定时器、中断和系统时钟 248
6.5.9 使用执行图观察程序 250
第7章 DSP指令集 252
7.1 TMS320C62x/C64x/C67x定点指令集 252
7.1.1 指令操作和执行符号 252
7.1.2 指令和功能单元之间的映射 253
7.1.3 TMS320C62x/C64x/C67x DSP操作码映射 255
7.1.4 延迟间隙 257
7.1.5 并行操作 258
7.1.6 条件操作 260
7.1.7 资源限制 261
7.1.8 寻址模式 263
7.1.9 指令描述 265
7.2 TMS320C67x浮点指令集 311
7.2.1 指令操作和执行符号 311
7.2.2 指令和功能单元之间的映射 312
7.2.3 延迟间隙 313
7.3 TMS320C64x定点指令集 314
7.3.1 指令和功能单元之间的映射 314
7.3.2 资源限制 317
7.4 TMS320C62x/C64x流水线 318
7.4.1 取指阶段(Fetch) 319
7.4.2 解码阶段(Decode) 320
7.4.3 执行阶段(Execute) 320
7.4.4 流水线操作总结 321
第8章 DSP编程指南 325
8.1 概述 325
8.2 优化C代码 326
8.2.1 C编译器的反馈信息 326
8.2.2 编写C代码 328
8.2.3 编译C代码 329
8.2.4 Profile C代码 330
8.2.5 优化C代码 330
8.3 通过线性汇编优化汇编代码 339
8.3.1 线性汇编代码 339
8.3.2 汇编优化选项和指示 339
8.3.3 编写并行代码 339
8.3.4 使用字访问短型数据或者使用双字访问字 344
8.3.5 软件流水线 348
附录 TMS320C6000的内联函数 364
参考文献 370