书籍详情
TMS320C6000系列DSP编程工具与指南
作者:美国德州仪器公司
出版社:清华大学出版社
出版时间:2006-09-01
ISBN:9787302136156
定价:¥70.00
购买这本书可以去
内容简介
本书基于TI公司的3个文献编译而成,它们分别是TMS320C6000OptimizingCompilerUsersGuide、TMS320C6000AssemblyLanguageToolsUser’sGuide和TMS320C6000Programmer’sGuide。本书详细介绍了C6000的软件开发过程、c环境的实现、编程工具的使用和程序优化方法等方面的内容,涉及了几乎所有在C6000的硬件平台上开发一个完整的软件程序所应用的知识(CCS和DSP/BIOS在本丛书另外的两本中介绍),这些知识是进行C6000软件开发所必须具备的。本书内容实践性强,适合于研究、开发TIC6000DSP的工程师和研究人员阅读,同时也可作为相关专业研究生的参考资料。,,,,26cm,,,976,,平装,43.500,,,,1
作者简介
暂缺《TMS320C6000系列DSP编程工具与指南》作者简介
目录
第1篇 TMS320C6000优化编译器手册
第1章 介绍 1
1.1 软件开发工具概述 1
1.2 C/C++编译器概述 3
1.3 CCS(Code Composer Studio)和编译器 5
第2章 使用C/C++编译器 6
2.1 关于编译器 6
2.2 执行C/C++编译器 7
2.3 设置选项改变编译器的行为 7
2.4 设置默认的编译选项(C_OPTION和C_C6X_OPTION) 17
2.5 控制预处理器 18
2.6 理解诊断信息(diagnostic messages) 21
2.7 其他信息 24
2.8 生成交叉引用(cross-reference)列表信息(-px选项) 24
2.9 生成未加工的(raw)列表文件(-pl选项) 25
2.10 使用内联(inline)函数扩展 26
2.11 中断门限选项(Interrupt Flexibility Options)(-mi选项) 29
2.12 把C6400的代码和C6200/6700/旧的C6400的目标代码一起连接 29
2.13 使用交叠工具(interlist feature) 30
第3章 优化代码 32
3.1 执行优化 32
3.2 优化软件流水(software pipelining) 33
3.3 冗余循环(Redundant Loops) 41
3.4 减小代码尺寸(-ms选项) 42
3.5 执行文件级(file-level)优化(-O3选项) 42
3.6 执行程序级(program-level)优化(-pm和-O3选项) 43
3.7 指明是否使用别名技术(aliasing techniques) 45
3.8 阻止相关浮点操作的重新排序(reodering of associative
floating-point operation) 47
3.9 优化代码中谨慎使用asm语句 47
3.10 自动内联扩展(inline expasion)(-oi选项) 47
3.11 优化时使用交叠工具 48
3.12 调试和剖析(profiling)优化代码 49
3.13 正在执行哪种优化 50
第4章 使用汇编优化器 58
4.1 增强性能的代码开发流程 58
4.2 关于汇编优化器 59
4.3 写线性汇编需要知道什么 59
4.4 汇编优化器伪指令 64
4.5 使用汇编优化器避免存储体(bank)冲突 78
4.6 存储器别名模糊消除(memory alias disambiguation) 83
第5章 连接C/C++代码 87
5.1 通过编译器执行连接器(-z选项) 87
5.2 连接器选项 88
5.3 控制连接过程 90
第6章 使用独立(stand-alone)软件仿真器 95
6.1 运行独立软件仿真器 95
6.2 独立软件仿真器的选项 96
6.3 通过加载器把参数传递给程序 97
6.4 使用独立软件仿真器的剖析功能 98
6.5 选择仿真的硅版本(silicon revision)(-rev选项) 98
6.6 独立软件仿真器的例子 99
第7章 TMS320C6000 C/C++语言实现 101
7.1 TMS320C6000 C语言的特征 101
7.2 TMS320C6000 C++语言的特点 103
7.3 数据类型 104
7.4 关键字 104
7.5 寄存器变量和参数 109
7.6 asm语句 110
7.7 pragma伪指令 110
7.8 连接名(linkname)的生成 120
7.9 静态变量和全局变量的初始化 121
7.10 改变ISO C语言的模式 122
第8章 运行时(run-time)环境 125
8.1 存储器模型(memory model) 125
8.2 对象的表示 128
8.3 寄存器使用规范(register conventions) 134
8.4 函数结构和调用约定 135
8.5 C/C++与汇编语言的接口 137
8.6 中断处理 151
8.7 运行时支持的算术程序(run-time-support arithmetic routines) 153
8.8 系统初始化 155
第9章 运行时支持函数 160
9.1 库 160
9.2 C的I/O函数 161
9.3 头文件 168
9.4 运行时支持函数和宏总结 177
9.5 运行时支持函数和宏的描述 184
第10章 建库工具和C++名还原工具 228
10.1 建库工具(library-build utility) 228
10.2 C++名还原工具(Name Demangler) 231
第2篇 TMS320C6000程序员手册
第11章 简介 235
11.1 TMS320C6000体系结构 235
11.2 TMS320C6000流水线 235
11.3 提高性能的代码开发流程 236
第12章 C/C++代码优化 240
12.1 编写C/C++代码 240
12.2 编译C/C++代码 241
12.3 代码剖析 245
12.4 优化C/C++代码 247
第13章 编译器优化指南 273
13.1 引言:简单的C代码调整 273
13.2 第1课:从存储器指针得到循环传递路径 275
13.3 第2课:利用双数据通道平衡资源 280
13.4 第3课:存储器带宽的打包数据优化 283
13.5 第4课:程序级优化 287
13.6 第5课:写线性汇编 288
第14章 反馈解决方案 293
14.1 理解反馈 293
14.2 循环的错误信息 297
14.3 流水失败信息 298
14.4 研究反馈信息 302
第15章 通过线性汇编优化汇编代码 304
15.1 线性汇编代码 304
15.2 汇编优化器选项和伪指令 305
15.3 写并行代码 308
15.4 对短字长的数据使用字访问,对于浮点数据采用双字访问 314
15.5 软件流水 320
15.6 多周期循环的模迭代 339
15.7 循环传递路径 350
15.8 循环中的If-Then-Else语句 356
15.9 循环展开 360
15.10 生命太长问题(Live-Too-Long) 364
15.11 消除冗余取数 369
15.12 存储体 374
15.13 软件流水外环 383
15.14 同内环一起条件地执行外环 386
第16章 C64系列编程注意事项 396
16.1 C64x增强型结构简介 396
16.2 在C64x中使用打包数据处理 397
16.3 线性汇编的考虑 422
第17章 汇编代码结构 429
17.1 标号 429
17.2 并行符号 429
17.3 条件 429
17.4 指令 430
17.5 功能单元 431
17.6 操作数 433
17.7 注释 433
第18章 中断 434
18.1 中断概述 434
18.2 单分配和多分配 434
18.3 中断循环 435
18.4 可中断的代码产生 435
18.5 中断子程序 438
第19章 连接问题 441
19.1 怎样使用连接错误信息 441
19.2 如何通过放RTS在片外来节省片内存储器 443
第3篇 TMS320C6000汇编语言工具用户手册
第20章 软件开发工具简介 449
20.1 软件开发工具概述 449
20.2 工具介绍 449
20.3 Code Composer Studio和代码产生工具 451
第21章 通用目标文件格式(COFF)简介 452
21.1 段(sections) 452
21.2 汇编器怎样处理段 453
21.3 连接器怎样处理段 457
21.4 重定位 459
21.5 运行时重定位 460
21.6 程序加载 460
21.7 在COFF文件里的符号 460
第22章 汇编器描述 462
22.1 汇编器概述 462
22.2 汇编器在软件开发流程中的作用 462
22.3 调用汇编器 462
22.4 指定备用的汇编器输入目录 464
22.5 源语句格式 466
22.6 常量 469
22.7 字符串 471
22.8 符号 471
22.9 表达式 477
22.10 源文件列表 480
22.11 调试汇编源程序 481
22.12 交叉引用列表 482
第23章 汇编器伪指令 484
23.1 伪指令综述 484
23.2 段定义伪指令 487
23.3 初始化常量的伪指令 489
23.4 使段程序计数器对齐的伪指令 491
23.5 指定输出列表格式的伪指令 491
23.6 引用其他文件的伪指令 492
23.7 激活条件汇编的伪指令 493
23.8 定义汇编时刻的符号的伪指令 493
23.9 其他伪指令 494
23.10 伪指令参考 495
第24章 宏语言 534
24.1 宏的使用 534
24.2 定义宏 534
24.3 宏参数/替代符号 535
24.4 宏库 540
24.5 在宏内使用条件汇编 541
24.6 在宏内使用标号 542
24.7 在宏内生成信息 543
24.8 使用伪指令指定输出列表的格式 544
24.9 使用递归和嵌套的宏 545
24.10 宏伪指令综述 546
第25章 文档管理器说明 548
25.1 文档管理器概述 548
25.2 在软件开发流程中文档管理器的作用 548
25.3 调用文档管理器 548
25.4 文档管理器举例 550
第26章 连接器描述 552
26.1 连接器概述 552
26.2 连接器在软件开发流程中的作用 552
26.3 调用连接器 552
26.4 连接器选项 554
26.5 连接器命令文件 565
26.6 目标库 567
26.7 MEMORY伪指令 568
26.8 SECTIONS伪指令 570
26.9 指定段的运行地址 578
26.10 使用GROUP和UNION语句 580
26.11 特殊的段类型(DSECT、COPY和NOLOAD) 584
26.12 默认的定位算法 584
26.13 连接时给符号赋值 586
26.14 创建与填充空穴 591
26.15 连接器产生的复制表 594
26.16 部分(增量)连接 602
26.17 连接C/C++代码 603
26.18 连接器实例 606
第27章 绝对地址列表工具说明 609
27.1 产生一个绝对地址列表 609
27.2 调用绝对地址列表工具 609
27.3 绝对地址列表工具举例 610
第28章 交叉引用列表工具说明 614
28.1 生成交叉引用列表 614
28.2 调用交叉引用列表工具 614
28.3 交叉引用列表举例 615
第29章 目标文件工具说明 617
29.1 调用目标文件显示工具 617
29.2 XML标志索引 617
29.3 XML用户例子 621
29.4 调用名称列表工具程序 627
29.5 调用剥离工具程序 627
第30章 十六进制转换工具说明 629
30.1 十六进制转换工具在软件开发流程中的作用 629
30.2 调用十六进制转换工具 629
30.3 理解存储器宽度 632
30.4 ROMS伪指令 636
30.5 SECTIONS伪指令 639
30.6 排除一个指定段 640
30.7 给输出文件赋名 641
30.8 图像模式和-fill选项 642
30.9 为片上导引加载器构建一张表 643
30.10 控制ROM器件地址 646
30.11 目标格式描述 647
30.12 十六进制转换工具程序的错误提示信息 650
附录A 通用目标文件格式 652
附录B 符号调试伪指令 662
附录C XML连接信息文件说明 664
附录D 术语表 671
第1章 介绍 1
1.1 软件开发工具概述 1
1.2 C/C++编译器概述 3
1.3 CCS(Code Composer Studio)和编译器 5
第2章 使用C/C++编译器 6
2.1 关于编译器 6
2.2 执行C/C++编译器 7
2.3 设置选项改变编译器的行为 7
2.4 设置默认的编译选项(C_OPTION和C_C6X_OPTION) 17
2.5 控制预处理器 18
2.6 理解诊断信息(diagnostic messages) 21
2.7 其他信息 24
2.8 生成交叉引用(cross-reference)列表信息(-px选项) 24
2.9 生成未加工的(raw)列表文件(-pl选项) 25
2.10 使用内联(inline)函数扩展 26
2.11 中断门限选项(Interrupt Flexibility Options)(-mi选项) 29
2.12 把C6400的代码和C6200/6700/旧的C6400的目标代码一起连接 29
2.13 使用交叠工具(interlist feature) 30
第3章 优化代码 32
3.1 执行优化 32
3.2 优化软件流水(software pipelining) 33
3.3 冗余循环(Redundant Loops) 41
3.4 减小代码尺寸(-ms选项) 42
3.5 执行文件级(file-level)优化(-O3选项) 42
3.6 执行程序级(program-level)优化(-pm和-O3选项) 43
3.7 指明是否使用别名技术(aliasing techniques) 45
3.8 阻止相关浮点操作的重新排序(reodering of associative
floating-point operation) 47
3.9 优化代码中谨慎使用asm语句 47
3.10 自动内联扩展(inline expasion)(-oi选项) 47
3.11 优化时使用交叠工具 48
3.12 调试和剖析(profiling)优化代码 49
3.13 正在执行哪种优化 50
第4章 使用汇编优化器 58
4.1 增强性能的代码开发流程 58
4.2 关于汇编优化器 59
4.3 写线性汇编需要知道什么 59
4.4 汇编优化器伪指令 64
4.5 使用汇编优化器避免存储体(bank)冲突 78
4.6 存储器别名模糊消除(memory alias disambiguation) 83
第5章 连接C/C++代码 87
5.1 通过编译器执行连接器(-z选项) 87
5.2 连接器选项 88
5.3 控制连接过程 90
第6章 使用独立(stand-alone)软件仿真器 95
6.1 运行独立软件仿真器 95
6.2 独立软件仿真器的选项 96
6.3 通过加载器把参数传递给程序 97
6.4 使用独立软件仿真器的剖析功能 98
6.5 选择仿真的硅版本(silicon revision)(-rev选项) 98
6.6 独立软件仿真器的例子 99
第7章 TMS320C6000 C/C++语言实现 101
7.1 TMS320C6000 C语言的特征 101
7.2 TMS320C6000 C++语言的特点 103
7.3 数据类型 104
7.4 关键字 104
7.5 寄存器变量和参数 109
7.6 asm语句 110
7.7 pragma伪指令 110
7.8 连接名(linkname)的生成 120
7.9 静态变量和全局变量的初始化 121
7.10 改变ISO C语言的模式 122
第8章 运行时(run-time)环境 125
8.1 存储器模型(memory model) 125
8.2 对象的表示 128
8.3 寄存器使用规范(register conventions) 134
8.4 函数结构和调用约定 135
8.5 C/C++与汇编语言的接口 137
8.6 中断处理 151
8.7 运行时支持的算术程序(run-time-support arithmetic routines) 153
8.8 系统初始化 155
第9章 运行时支持函数 160
9.1 库 160
9.2 C的I/O函数 161
9.3 头文件 168
9.4 运行时支持函数和宏总结 177
9.5 运行时支持函数和宏的描述 184
第10章 建库工具和C++名还原工具 228
10.1 建库工具(library-build utility) 228
10.2 C++名还原工具(Name Demangler) 231
第2篇 TMS320C6000程序员手册
第11章 简介 235
11.1 TMS320C6000体系结构 235
11.2 TMS320C6000流水线 235
11.3 提高性能的代码开发流程 236
第12章 C/C++代码优化 240
12.1 编写C/C++代码 240
12.2 编译C/C++代码 241
12.3 代码剖析 245
12.4 优化C/C++代码 247
第13章 编译器优化指南 273
13.1 引言:简单的C代码调整 273
13.2 第1课:从存储器指针得到循环传递路径 275
13.3 第2课:利用双数据通道平衡资源 280
13.4 第3课:存储器带宽的打包数据优化 283
13.5 第4课:程序级优化 287
13.6 第5课:写线性汇编 288
第14章 反馈解决方案 293
14.1 理解反馈 293
14.2 循环的错误信息 297
14.3 流水失败信息 298
14.4 研究反馈信息 302
第15章 通过线性汇编优化汇编代码 304
15.1 线性汇编代码 304
15.2 汇编优化器选项和伪指令 305
15.3 写并行代码 308
15.4 对短字长的数据使用字访问,对于浮点数据采用双字访问 314
15.5 软件流水 320
15.6 多周期循环的模迭代 339
15.7 循环传递路径 350
15.8 循环中的If-Then-Else语句 356
15.9 循环展开 360
15.10 生命太长问题(Live-Too-Long) 364
15.11 消除冗余取数 369
15.12 存储体 374
15.13 软件流水外环 383
15.14 同内环一起条件地执行外环 386
第16章 C64系列编程注意事项 396
16.1 C64x增强型结构简介 396
16.2 在C64x中使用打包数据处理 397
16.3 线性汇编的考虑 422
第17章 汇编代码结构 429
17.1 标号 429
17.2 并行符号 429
17.3 条件 429
17.4 指令 430
17.5 功能单元 431
17.6 操作数 433
17.7 注释 433
第18章 中断 434
18.1 中断概述 434
18.2 单分配和多分配 434
18.3 中断循环 435
18.4 可中断的代码产生 435
18.5 中断子程序 438
第19章 连接问题 441
19.1 怎样使用连接错误信息 441
19.2 如何通过放RTS在片外来节省片内存储器 443
第3篇 TMS320C6000汇编语言工具用户手册
第20章 软件开发工具简介 449
20.1 软件开发工具概述 449
20.2 工具介绍 449
20.3 Code Composer Studio和代码产生工具 451
第21章 通用目标文件格式(COFF)简介 452
21.1 段(sections) 452
21.2 汇编器怎样处理段 453
21.3 连接器怎样处理段 457
21.4 重定位 459
21.5 运行时重定位 460
21.6 程序加载 460
21.7 在COFF文件里的符号 460
第22章 汇编器描述 462
22.1 汇编器概述 462
22.2 汇编器在软件开发流程中的作用 462
22.3 调用汇编器 462
22.4 指定备用的汇编器输入目录 464
22.5 源语句格式 466
22.6 常量 469
22.7 字符串 471
22.8 符号 471
22.9 表达式 477
22.10 源文件列表 480
22.11 调试汇编源程序 481
22.12 交叉引用列表 482
第23章 汇编器伪指令 484
23.1 伪指令综述 484
23.2 段定义伪指令 487
23.3 初始化常量的伪指令 489
23.4 使段程序计数器对齐的伪指令 491
23.5 指定输出列表格式的伪指令 491
23.6 引用其他文件的伪指令 492
23.7 激活条件汇编的伪指令 493
23.8 定义汇编时刻的符号的伪指令 493
23.9 其他伪指令 494
23.10 伪指令参考 495
第24章 宏语言 534
24.1 宏的使用 534
24.2 定义宏 534
24.3 宏参数/替代符号 535
24.4 宏库 540
24.5 在宏内使用条件汇编 541
24.6 在宏内使用标号 542
24.7 在宏内生成信息 543
24.8 使用伪指令指定输出列表的格式 544
24.9 使用递归和嵌套的宏 545
24.10 宏伪指令综述 546
第25章 文档管理器说明 548
25.1 文档管理器概述 548
25.2 在软件开发流程中文档管理器的作用 548
25.3 调用文档管理器 548
25.4 文档管理器举例 550
第26章 连接器描述 552
26.1 连接器概述 552
26.2 连接器在软件开发流程中的作用 552
26.3 调用连接器 552
26.4 连接器选项 554
26.5 连接器命令文件 565
26.6 目标库 567
26.7 MEMORY伪指令 568
26.8 SECTIONS伪指令 570
26.9 指定段的运行地址 578
26.10 使用GROUP和UNION语句 580
26.11 特殊的段类型(DSECT、COPY和NOLOAD) 584
26.12 默认的定位算法 584
26.13 连接时给符号赋值 586
26.14 创建与填充空穴 591
26.15 连接器产生的复制表 594
26.16 部分(增量)连接 602
26.17 连接C/C++代码 603
26.18 连接器实例 606
第27章 绝对地址列表工具说明 609
27.1 产生一个绝对地址列表 609
27.2 调用绝对地址列表工具 609
27.3 绝对地址列表工具举例 610
第28章 交叉引用列表工具说明 614
28.1 生成交叉引用列表 614
28.2 调用交叉引用列表工具 614
28.3 交叉引用列表举例 615
第29章 目标文件工具说明 617
29.1 调用目标文件显示工具 617
29.2 XML标志索引 617
29.3 XML用户例子 621
29.4 调用名称列表工具程序 627
29.5 调用剥离工具程序 627
第30章 十六进制转换工具说明 629
30.1 十六进制转换工具在软件开发流程中的作用 629
30.2 调用十六进制转换工具 629
30.3 理解存储器宽度 632
30.4 ROMS伪指令 636
30.5 SECTIONS伪指令 639
30.6 排除一个指定段 640
30.7 给输出文件赋名 641
30.8 图像模式和-fill选项 642
30.9 为片上导引加载器构建一张表 643
30.10 控制ROM器件地址 646
30.11 目标格式描述 647
30.12 十六进制转换工具程序的错误提示信息 650
附录A 通用目标文件格式 652
附录B 符号调试伪指令 662
附录C XML连接信息文件说明 664
附录D 术语表 671
猜您喜欢