![TMS320C54x DSP应用程序设计教程](https://cover.qianqiantushu.cc/7/s6e15b08.jpg)
![TMS320C54x DSP应用程序设计教程](https://cover.qianqiantushu.cc/7/s6e15b08.jpg)
TMS320C54x DSP应用程序设计教程PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:清源科技编著
- 出 版 社:北京:机械工业出版社
- 出版年份:2004
- ISBN:7111135008
- 页数:328 页
第1章 TMS320C54x系列DSP概述 1
1.1 DSP芯片概述 1
1.2 TMS320C54x系列DSP的结构和特点 2
1.2.1 TMS320C54x系列DSP的概述 2
1.2.2 TMS320C54x系列DSP的特点 3
1.2.3 TMS320C54xDSP的内部硬件结构 5
1.3 总线结构 7
1.4 CPU状态和控制寄存器 8
1.4.1 状态寄存器ST0和STI 8
1.4.2 处理器工作模式状态(PMST)寄存器 11
1.5 算术逻辑单元(ALU) 13
1.5.1 ALU的输入 13
1.5.2 溢出处理 15
1.5.3 进位位 15
1.5.4 双16位模式 15
1.6 累加器A和B 15
1.6.1 保存累加器的内容 16
1.6.2 累加器移位和循环操作 16
1.6.4 专用指令 17
1.6.3 饱和处理累加器内容 17
1.7 桶式移位器 18
1.8 乘法器/加法器单元 19
1.8.1 乘法器的输入源 19
1.8.2 乘法/加法(MAC)指令 20
1.8.3 MAC和MAS乘法运算的饱和处理 21
1.9 比较、选择和存储单元 21
1.10 指数编码器 23
2.2 存储器空间 25
2.1 TMS320C54xDSP存储器概述 25
第2章 存储器和1/0空间操作 25
2.3 程序存储器 33
2.3.1 程序存储器的可配置性 33
2.3.2 片内ROM的组织 33
2.3.3 程序存储器地址映射和片内ROM内容 34
2.3.4 片内ROM的代码内容和映射 34
2.3.5 扩展程序存储器 35
2.4 数据存储器 37
2.4.1 数据存储器的可配置性 37
2.4.2 片内RAM的组织 38
2.4.3 存储器映射寄存器 39
2.5 I/O空间及其访问 40
第3章 寻址方式和程序控制 43
3.1 立即寻址 43
3.2 绝对寻址 45
3.2.1 数据存储器地址(dmad)寻址 45
3.2.2 程序存储器地址(pmad)寻址 45
3.2.3 端口地址(PA)寻址 45
3.4 直接寻址 46
3.2.4 *(lk)寻址 46
3.3 累加器寻址 46
3.4.1 基于DP的直接寻址 48
3.4.2 基于SP的直接寻址 49
3.5 间接寻址 49
3.5.1 单操作数寻址 49
3.5.2 ARAU和地址产生操作 50
3.5.3 单操作数地址的修改 50
3.5.4 双操作数寻址 55
3.5.5 修正(ARP)模式 58
3.6 存储器映射寄存器寻址 59
3.7 堆栈寻址 60
3.8 数据类型 61
3.9 产生程序存储器地址 62
3.10 程序计数器(PC) 63
3.11 程序控制 64
3.11.1 分支转移 64
3.11.2 调用 65
3.11.3 返回 67
3.11.4 条件操作 68
3.11.5 重复单条指令 70
3.11.6 重复一个指令块 72
3.12 复位操作 73
3.13 TMS320C54xDSP的中断系统 73
3.13.1 TMS320C54x的中断系统概述 73
3.13.2 中断标志寄存器(IFR) 74
3.13.3 中断屏蔽寄存器(IMR) 76
3.13.4 接收中断请求 77
3.13.6 执行中断服务程序(ISR) 78
3.13.5 应答中断 78
3.13.8 中断等待时间 79
3.13.9 中断操作流程 79
3.13.7 保存中断上下文 79
3.13.10 重新映射中断向量地址 81
3.13.11 中断和中断向量表 82
3.14 节电模式 86
3.14.2 IDLE2模式 87
3.14.3 IDLE3模式 87
3.14.1 IDLE1模式 87
3.14.4 保持(Hold)模式 88
3.14.5 其他节电性能 88
第4章 流水线 89
4.1 流水线操作 89
4.1.1 流水线的分支转移指令 91
4.1.2 流水线中的调用指令 93
4.1.3 流水线中的返回指令 94
4.1.4 流水线中的条件执行 96
4.1.5 流水线中的条件调用和分支转移 97
4.2 中断和流水线 98
4.3 双访问存储器和流水线 99
4.3.1 解决取指和读操作数之间的冲突 101
4.3.2 解决写操作数和读双操作数之间的冲突 101
4.3.3 解决写操作数、写操作数和读双操作数的冲突 102
4.4 单访问存储器和流水线 103
4.5 流水线等待 104
4.5.1 访问存储器映射寄存器的推荐指令 104
4.5.2 更新ARx、BK或SP—解决冲突 105
5.1 应用软件开发流程和工具 107
第5章 汇编程序设计 107
5.2 COFF文件概述 108
5.2.1 COFF文件的基本单元——段 109
5.2.2 汇编器对段的处理 109
5.2.3 链接器对段的处理 114
5.2.4 重新定位 115
5.2.5 运行时重新定位 116
5.2.6 加载程序 117
5.2.7 COFF文件中的符号 117
5.3.1 汇编程序格式 118
5.3 汇编语言程序格式 118
5.3.2 汇编语言的数据格式 120
5.3.3 表达式 125
5.3.4 内置函数 128
5.3.5 加载值到扩展程序存储器 129
5.4 汇编伪指令 129
5.4.1 定义段的伪指令 129
5.4.2 初始化常数的伪指令 130
5.4.3 对准段程序计数器的伪指令 133
5.4.4 格式化输出清单文件的伪指令 134
5.4.5 引用其他文件的伪指令 135
5.4.6 条件汇编伪指令 136
5.4.7 汇编时符号伪指令 136
5.4.8 混合伪指令 138
5.4.9 常用伪指令及其语法格式 139
5.5 程序汇编 139
5.5.1 运行汇编程序 140
5.5.2 条件汇编 142
5.5.3 列表文件 143
5.5.4 交叉引用清单 146
5.6 程序链接 147
5.6.1 链接器的调用 147
5.6.2 链接器的选项 148
5.6.3 链接器命令文件(.cmd文件) 149
5.7 编写链接器命令文件(.cmd文件) 151
5.7.1 MEMORY指令 151
5.7.2 SECTIONS指令 153
5.7.4 命令文件编写及链接实例 157
5.7.3 MEMORY和SECTIONS指令的默认算法 157
5.8 宏定义和调用宏 160
5.8.1 宏定义 160
5.8.2 调用宏 162
5.8.3 使用递归和嵌入宏 162
第6章 汇编语言指令 164
6.1 指令集概述 164
6.1.1 算术操作 164
6.1.2 逻辑操作 168
6.1.3 程序控制 169
6.1.4 加载和存储指令 172
6.2 指令集的符号和缩写 175
第7章 C/C++编译器概述 180
7.1 C/C++编译器命令解释程序 180
7.2 调用编译器解释命令程序 181
7.3 改变编译器的选项 181
7.3.1 常用的选项 182
7.3.3 修改编译器对文件名的解释 183
7.3.2 指定文件名 183
7.3.4 修改编译器对文件名扩展的解释和命名 184
7.3.5 指定目录 184
7.3.6 控制汇编器的选项 185
7.4 使用环境变量改变编译器特性 185
7.4.1 指定文件目录(C_DIR和C54X_C_DIR) 185
7.4.2 设置默认编译器选项(C_OPTION或C54X_C_OPTION) 186
7.5 控制预处理器 187
7.5.1 预定义的宏名 187
7.5.2 #include文件的搜索路径 187
7.5.4 产生预处理的列表文件(-ppo选项) 188
7.5.3 用-i选项改变#include文件的搜索路径 188
7.5.5 预处理后继续编译(-ppa选项) 189
7.5.6 产生一个带注释的预处理列表文件(-ppc选项) 189
7.5.7 产生一个具有行控制信息的预处理列表文件(-ppl选项) 189
7.5.8 产生由#include伪指令包含的文件列表(-ppi选项) 189
7.6 使用直接插入函数展开 189
7.6.1 直接插入内部操作数 189
7.6.2 无保护的定义控制直接插入 190
7.6.3 使用预处理器符号INLINE的保护直接插入 190
7.6.4 直接插入限制 191
7.7 使用交互列表工具 192
7.8 编译错误简介 192
7.8.1 控制诊断消息 194
7.8.2 如何使用诊断选项 194
第8章 优化C/C++代码 196
8.1 使用C编译优化器 196
8.2 使用-O3选项 197
8.2.1 控制文件级优化(-Oln选项) 197
8.2.2 创建优化信息文件(-Onn选项) 197
8.3.1 控制程序级优化(-Opn选项) 198
8.3 执行程序级优化 198
8.3.2 混合C/C++语言和汇编的优化考虑因素 199
8.4 自动直接插入扩展(-Oi选项) 200
8.5 使用交互列表工具 200
8.6 访问优化代码中的别名变量 201
8.7 调试优化的代码和优化类型 201
8.7.1 调试优化的代码 202
8.7.2 压缩优化的代码(-gp和-O选项) 202
8.7.3 可执行的优化类型 202
9.1.1 单步调用链接器 211
9.1 调用链接器 211
第9章 链接C/C++代码 211
9.1.2 作为编译的步骤调用链接器 212
9.2 禁用链接器(-c编译器选项) 212
9.3 控制链接过程 212
9.3.1 链接运行时支持库 212
9.3.2 运行时初始化 213
9.3.3 全局对象构造器 213
9.3.4 指定初始化类型 213
9.3.6 链接器命令文件实例 214
9.3.5 指定段在存储器中的分配 214
第10章 TMS320C54xC/C++语言 217
10.1 TMS320C54xC/C++语言的特点 217
10.1.1 TMS320C54xC语言特点 217
10.1.2 TMS320C54xC++语言特点 218
10.2 数据类型 218
10.3 关键词 219
10.3.1 const关键词 219
10.3.2 ioport关键词 219
10.3.3 interrupt关键词 220
10.3.4 near和far关键词 221
10.3.5 volatile关键词 221
10.4 寄存器变量和全局寄存器变量 221
10.4.1 寄存器变量 221
10.4.2 全局寄存器变量 222
10.5 Pragma伪指令 223
10.6 初始化静态和全局变量 228
10.7.1 用/C++代码调用汇编语言模块 229
10.7 C/C++和汇编语言混合编程 229
10.7.2 在C语言中插入汇编语句 230
10.7.3 在程序中访问汇编语言变量 231
10.7.4 访问汇编语言的常数 232
第11章 运行时环境和支持库 233
11.1 存储器模式 233
11.1.1 段 233
11.1.2 C系统堆栈 234
11.1.3 分配.const到程序存储器 234
11.1.4 动态存储器分配 235
11.1.5 变量初始化 236
11.1.6 为静态和全局变量分配存储器 236
11.1.7 字段/结构体定位 236
11.1.8 字符串常数 236
11.2 寄存器规定 237
11.2.1 状态寄存器的位 238
11.2.2 寄存器变量 239
11.3 函数结构和调用规定 239
11.3.1 函数如何进行调用 239
11.3.2 被调用函数如何响应 240
11.3.4 分配帧和使用32位存储器读指令 241
11.4 中断处理 241
11.4.1 C语言中断的基本知识 241
11.3.3 访问变量和局部变量 241
11.4.2 使用C/C++中断程序 242
11.4.3 保存中断入口点的上下文 242
11.5.1 变量自动初始化 243
11.5.2 全局构造器 243
11.5 系统初始化 243
11.5.3 初始化表 244
11.5.4 运行时变量的自动初始化 245
11.5.5 在加载时变量的初始化 245
11.6 运行时支持库函数 246
11.6.1 库 246
11.6.2 C的I/O函数 247
11.6.3 头文件 252
第12章 集成开发环境(CCS) 258
12.1 CCS2.0系统的安装和配置 258
12.2 建立工程文件 261
12.3 设置工程项目选项 262
12.3.1 编译器环境参数设置 262
12.3.2 链接器环境参数设置 266
12.4 编译、链接和运行目标文件 268
12.4.1 编译和链接 268
12.4.2 仿真运行输出目标文件 268
12.5 查看存储器信息 269
12.6 查看寄存器信息 270
12.7 修改存储器和寄存器内容 271
12.8 设置断点和探测点 272
12.9 图形显示 273
12.9.1 定义探测点和输入数据 273
12.9.2 将探测点与数据文件链接起来 274
12.9.3 建立幅值—时间图形 275
12.9.4 建立“眼(Eye)”图形 276
12.9.5 建立“合成(Constellation)”图形 277
13.1 提高系统性能的几种方法 279
13.1.1 有效存储器分配的建议 279
第13章 应用程序开发实例 279
13.1.2 存储器定位要求 280
13.1.3 堆栈初始化 281
13.1.4 重叠管理 281
13.1.5 存储区之间的移动 281
13.1.6 有效的功耗管理 283
13.2 算术运算 283
13.2.1 除法和求模运算 283
13.2.2 正弦和余弦运算 286
13.2.3 扩展精度运算 290
13.2.4 浮点运算 295
13.3 快速傅里叶变换(FFT)的DSP实现 298
13.3.1 离散傅里叶变换(DFT) 298
13.3.2 快速傅里叶变换(FFT) 299
13.3.3 快速傅里叶变换的DSP实现 300
13.4 FIR滤波器的DSP实现 312
13.5 IIR滤波器的DSP实现 317
13.6 自适应滤波的DSP实现 320
13.7 CODEC应用程序的DSP实现 323
参考文献 328
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019