微信扫一扫,移动浏览光盘
简介
本书基于TI公司的3个文献编译而成,它们分别是TMS320C6000
Optimizing Compiler User's Guide、TMS320C6000 Assembly Language
Tools User's Guide和TMS320C6000 Programmer's Guide。
本书详细介绍了C6000的软件开发过程、C环境的实现、编程工具的使用
和程序优化方法等方面的内容,涉及了几乎所有在C6000的硬件平台上开发
一个完整的软件程序所应用的知识(CCS和DSP/BIOS在本丛书另外的两本中
介绍),这些知识是进行C6000软件开发所必须具备的。
本书内容实践性强,适合于研究、开发TI C6000 DSP的工程师和研究人
员阅读,同时也可作为相关专业研究生的参考资料。
目录
目录
第1篇 TMS320C6000优化编译器手册
第1章 介绍
1.1 软件开发工具概述
1.2 C/C++编译器概述
1.3 CCS(Code Composer Studio)和编译器
第2章 使用C/c++编译器
2.1 关于编译器
2.2 执行C/C++编译器
2.3 设置选项改变编译器的行为
2.4 设置默认的编译选项(C_OPTION和C_C6X_OPTION)
2.5 控制预处理器
2.6 理解诊断信息(diagnostic messages)
2.7 其他信息
2.8 生成交叉引用(cross-reference)列表信息(-px选项)
2.9 生成未加工的(raw)列表文件(-pl选项)
2.10 使用内联(inline)函数扩展
2.11 中断门限选项(Interrupt Flexibility Options)(-mi选项)
2.12 把C6400的代码和C6200/6700/旧的C6400的目标代码一起连接
2.13 使用交叠工具(interlist feature)
第3章 优化代码
3.1 执行优化
3.2 优化软件流水(software pipelining)
3.3 冗余循环(Redundant Loops)
3.4 减小代码尺寸(-ms选项)
3.5 执行文件级(file-level)优化(-O3选项)
3.6 执行程序级(program-level)优化(-pm和-O3选项)
3.7 指明是否使用别名技术(aliasing techniques)
3.8 阻止相关浮点操作的重新排序(reodefing of associative floating-point operation)
3.9 优化代码中谨慎使用asm语句
3.10 自动内联扩展(inlineexpasion)(-oi选项)
3.11 优化时使用交叠工具
3.12 调试和剖析(profifling)优化代码
3.13 正在执行哪种优化
第4章 使用汇编优化器
4.1 增强性能的代码开发流程
4.2 关于汇编优化器
4.3 写线性汇编需要知道什么
4.4 汇编优化器伪指令
4.5 使用汇编优化器避免存储体(bank)冲突
4.6 存储器别名模糊消除(memory alias disambiguation)
第5章 连接C/C++代码
5.1 通过编译器执行连接器(-z选项)
5.2 连接器选项
5.3 控制连接过程
第6章 使用独立(stand-alone)软件仿真器
6.1 运行独立软件仿真器
6.2 独立软件仿真器的选项
6.3 通过加载器把参数传递给程序
6.4 使用独立软件仿真器的剖析功能
6.5 选择仿真的硅版本(silicon revision)(-rev选项)
6.6 独立软件仿真器的例子
第7章 TMS320C6000 C/C++语言实现
7.1 TMS320C6000 C语言的特征
7.2 TMS320C6000 C++语言的特点
7.3 数据类型
7.4 关键字
7.5 寄存器变量和参数
7.6 asm语句
7.7 pragma伪指令
7.8 连接名(1inkname)的生成
7.9 静态变量和全局变量的初始化
7.10 改变ISO C语言的模式
第8章 运行时(run-time)环境
8.1 存储器模型(memow model)
8.2 对象的表示
8.3 寄存器使用规范(registerconventions)
8.4 函数结构和调用约定
8.5 C/C++与汇编语言的接口
8.6 中断处理
8.7 运行时支持的算术程序(run-time-support arithmetic routines)
8.8 系统初始化
第9章 运行时支持函数
9.1 库
9.2 C的I/O函数
9.3 头文件
9.4 运行时支持函数和宏总结
9.5 运行时支持函数和宏的描述
第10章 建库工具和C++名还原工具
10.1 建库工具(1ibrary-build utility)
10.2 C++名还原工具(Name Demangler)
第2篇 TMS320C6000程序员手册
第11章 简介
11.1 TMS320C6000体系结构
11.2 TMS320C6000流水线
11.3 提高性能的代码开发流程
第12章 C/c++代码优化
12.1 编写C/C++代码
12.2 编译C/C++代码
12.3 代码剖析
12.4 优化C/C++代码
第13章 编译器优化指南
13.1 引言:简单的C代码调整
13.2 第1课:从存储器指针得到循环传递路径
13.3 第2课:利用双数据通道平衡资源
13.4 第3课:存储器带宽的打包数据优化
13.5 第4课:程序级优化
13.6 第5课:写线性汇编
第14章 反馈解决方案
14.1 理解反馈
14.2 循环的错误信息
14.3 流水失败信息
14.4 研究反馈信息
第15章 通过线性汇编优化汇编代码
15.1 线性汇编代码
15.2 汇编优化器选项和伪指令
15.3 写并行代码
15.4 对短字长的数据使用字访问,对于浮点数据采用双字访问
15.5 软件流水
15.6 多周期循环的模迭代
15.7 循环传递路径
15.8 循环中的If-Then-Else语句
15.9 循环展开
15.10 生命太长问题(Live-Too-Long)
15.11 消除冗余取数
15.12 存储体
15.13 软件流水外环
15.14 同内环一起条件地执行外环
第16章 C64系列编程注意事项
16.1 C64x增强型结构简介
16.2 在C64x中使用打包数据处理
16.3 线性汇编的考虑
第17章 汇编代码结构
17.1 标号
17.2 并行符号
17.3 条件
17.4 指令
17.5 功能单元
17.6 操作数
17.7 注释
第18章 中断
18.1 中断概述
18.2 单分配和多分配
18.3 中断循环
18.4 可中断的代码产生
18.5 中断子程序
第19章 连接问题
19.1 怎样使用连接错误信息
19.2 如何通过放RTS在片外来节省片内存储器
第3篇 TMS320C6000汇编语言工具用户手册
第20章 软件开发工具简介
20.1 软件开发工具概述
20.2 工具介绍
20.3 Code Composer Studio和代码产生工具
第21章 通用目标文件格式(COFF)简介
21.1 段(sections)
21.2 汇编器怎样处理段
21.3 连接器怎样处理段
21.4 重定位
21.5 运行时重定位
21.6 程序加载
21.7 在COFF文件里的符号
第22章 汇编器描述
22.1 汇编器概述
22.2 汇编器在软件开发流程中的作用
22.3 调用汇编器
22.4 指定备用的汇编器输入目录
22.5 源语句格式
22.6 常量
22.7 字符串
22.8 符号
22.9 表达式
22.10 源文件列表
22.11 调试汇编源程序
22.12 交叉引用列表
第23章 汇编器伪指令
23.1 伪指令综述
23.2 段定义伪指令
23.3 初始化常量的伪指令
23.4 使段程序计数器对齐的伪指令
23.5 指定输出列表格式的伪指令
23.6 引用其他文件的伪指令
23.7 激活条件汇编的伪指令
23.8 定义汇编时刻的符号的伪指令
23.9 其他伪指令
23.10 伪指令参考
第24章 宏语言
24.1 宏的使用
24.2 定义宏
24.3 宏参数/替代符号
24.4 宏库
24.5 在宏内使用条件汇编
24.6 在宏内使用标号
24.7 在宏内生成信息
24.8 使用伪指令指定输出列表的格式
24.9 使用递归和嵌套的宏
24.10 宏伪指令综述
第25章 文档管理器说明
25.1 文档管理器概述
25.2 在软件开发流程中文档管理器的作用
25.3 调用文档管理器
25.4 文档管理器举例
第26章 连接器描述
26.1 连接器概述
26.2 连接器在软件开发流程中的作用
26.3 调用连接器
26.4 连接器选项
26.5 连接器命令文件
26.6 目标库
26.7 MEMORY伪指令
26.8 SECTIONS伪指令
26.9 指定段的运行地址
26.10 使用GROUP和UNION语句
26.11 特殊的段类型(DSECT、COPY和NOLOAD)
26.12 默认的定位算法
26.13 连接时给符号赋值
26.14 创建与填充空穴
26.15 连接器产生的复制表
26.16 部分(增量)连接
26.17 连接C/C++代码
26.18 连接器实例
第27章 绝对地址列表工具说明
27.1 产生一个绝对地址列表
27.2 调用绝对地址列表工具
27.3 绝对地址列表工具举例
第28章 交叉引用列表工具说明
28.1 生成交叉引用列表
28.2 调用交叉引用列表工具
28.3 交叉引用列表举例
第29章 目标文件工具说明
29.1 调用目标文件显示工具
29.2 XML标志索引
29.3 XML用户例子
29.4 调用名称列表工具程序
29.5 调用剥离工具程序
第30章 十六进制转换工具说明
30.1 十六进制转换工具在软件开发流程中的作用
30.2 调用十六进制转换工具
30.3 理解存储器宽度
30.4 ROMS伪指令
30.5 SECTIONS伪指令
30.6 排除一个指定段
30.7 给输出文件赋名
30.8 图像模式和-fill选项
30.9 为片上导引加载器构建一张表
30.10 控制ROM器件地址
30.11 目标格式描述
30.12 十六进制转换工具程序的错误提示信息
附录A 通用目标文件格式
附录B 符号调试伪指令
附录C XML连接信息文件说明
附录D 术语表
第1篇 TMS320C6000优化编译器手册
第1章 介绍
1.1 软件开发工具概述
1.2 C/C++编译器概述
1.3 CCS(Code Composer Studio)和编译器
第2章 使用C/c++编译器
2.1 关于编译器
2.2 执行C/C++编译器
2.3 设置选项改变编译器的行为
2.4 设置默认的编译选项(C_OPTION和C_C6X_OPTION)
2.5 控制预处理器
2.6 理解诊断信息(diagnostic messages)
2.7 其他信息
2.8 生成交叉引用(cross-reference)列表信息(-px选项)
2.9 生成未加工的(raw)列表文件(-pl选项)
2.10 使用内联(inline)函数扩展
2.11 中断门限选项(Interrupt Flexibility Options)(-mi选项)
2.12 把C6400的代码和C6200/6700/旧的C6400的目标代码一起连接
2.13 使用交叠工具(interlist feature)
第3章 优化代码
3.1 执行优化
3.2 优化软件流水(software pipelining)
3.3 冗余循环(Redundant Loops)
3.4 减小代码尺寸(-ms选项)
3.5 执行文件级(file-level)优化(-O3选项)
3.6 执行程序级(program-level)优化(-pm和-O3选项)
3.7 指明是否使用别名技术(aliasing techniques)
3.8 阻止相关浮点操作的重新排序(reodefing of associative floating-point operation)
3.9 优化代码中谨慎使用asm语句
3.10 自动内联扩展(inlineexpasion)(-oi选项)
3.11 优化时使用交叠工具
3.12 调试和剖析(profifling)优化代码
3.13 正在执行哪种优化
第4章 使用汇编优化器
4.1 增强性能的代码开发流程
4.2 关于汇编优化器
4.3 写线性汇编需要知道什么
4.4 汇编优化器伪指令
4.5 使用汇编优化器避免存储体(bank)冲突
4.6 存储器别名模糊消除(memory alias disambiguation)
第5章 连接C/C++代码
5.1 通过编译器执行连接器(-z选项)
5.2 连接器选项
5.3 控制连接过程
第6章 使用独立(stand-alone)软件仿真器
6.1 运行独立软件仿真器
6.2 独立软件仿真器的选项
6.3 通过加载器把参数传递给程序
6.4 使用独立软件仿真器的剖析功能
6.5 选择仿真的硅版本(silicon revision)(-rev选项)
6.6 独立软件仿真器的例子
第7章 TMS320C6000 C/C++语言实现
7.1 TMS320C6000 C语言的特征
7.2 TMS320C6000 C++语言的特点
7.3 数据类型
7.4 关键字
7.5 寄存器变量和参数
7.6 asm语句
7.7 pragma伪指令
7.8 连接名(1inkname)的生成
7.9 静态变量和全局变量的初始化
7.10 改变ISO C语言的模式
第8章 运行时(run-time)环境
8.1 存储器模型(memow model)
8.2 对象的表示
8.3 寄存器使用规范(registerconventions)
8.4 函数结构和调用约定
8.5 C/C++与汇编语言的接口
8.6 中断处理
8.7 运行时支持的算术程序(run-time-support arithmetic routines)
8.8 系统初始化
第9章 运行时支持函数
9.1 库
9.2 C的I/O函数
9.3 头文件
9.4 运行时支持函数和宏总结
9.5 运行时支持函数和宏的描述
第10章 建库工具和C++名还原工具
10.1 建库工具(1ibrary-build utility)
10.2 C++名还原工具(Name Demangler)
第2篇 TMS320C6000程序员手册
第11章 简介
11.1 TMS320C6000体系结构
11.2 TMS320C6000流水线
11.3 提高性能的代码开发流程
第12章 C/c++代码优化
12.1 编写C/C++代码
12.2 编译C/C++代码
12.3 代码剖析
12.4 优化C/C++代码
第13章 编译器优化指南
13.1 引言:简单的C代码调整
13.2 第1课:从存储器指针得到循环传递路径
13.3 第2课:利用双数据通道平衡资源
13.4 第3课:存储器带宽的打包数据优化
13.5 第4课:程序级优化
13.6 第5课:写线性汇编
第14章 反馈解决方案
14.1 理解反馈
14.2 循环的错误信息
14.3 流水失败信息
14.4 研究反馈信息
第15章 通过线性汇编优化汇编代码
15.1 线性汇编代码
15.2 汇编优化器选项和伪指令
15.3 写并行代码
15.4 对短字长的数据使用字访问,对于浮点数据采用双字访问
15.5 软件流水
15.6 多周期循环的模迭代
15.7 循环传递路径
15.8 循环中的If-Then-Else语句
15.9 循环展开
15.10 生命太长问题(Live-Too-Long)
15.11 消除冗余取数
15.12 存储体
15.13 软件流水外环
15.14 同内环一起条件地执行外环
第16章 C64系列编程注意事项
16.1 C64x增强型结构简介
16.2 在C64x中使用打包数据处理
16.3 线性汇编的考虑
第17章 汇编代码结构
17.1 标号
17.2 并行符号
17.3 条件
17.4 指令
17.5 功能单元
17.6 操作数
17.7 注释
第18章 中断
18.1 中断概述
18.2 单分配和多分配
18.3 中断循环
18.4 可中断的代码产生
18.5 中断子程序
第19章 连接问题
19.1 怎样使用连接错误信息
19.2 如何通过放RTS在片外来节省片内存储器
第3篇 TMS320C6000汇编语言工具用户手册
第20章 软件开发工具简介
20.1 软件开发工具概述
20.2 工具介绍
20.3 Code Composer Studio和代码产生工具
第21章 通用目标文件格式(COFF)简介
21.1 段(sections)
21.2 汇编器怎样处理段
21.3 连接器怎样处理段
21.4 重定位
21.5 运行时重定位
21.6 程序加载
21.7 在COFF文件里的符号
第22章 汇编器描述
22.1 汇编器概述
22.2 汇编器在软件开发流程中的作用
22.3 调用汇编器
22.4 指定备用的汇编器输入目录
22.5 源语句格式
22.6 常量
22.7 字符串
22.8 符号
22.9 表达式
22.10 源文件列表
22.11 调试汇编源程序
22.12 交叉引用列表
第23章 汇编器伪指令
23.1 伪指令综述
23.2 段定义伪指令
23.3 初始化常量的伪指令
23.4 使段程序计数器对齐的伪指令
23.5 指定输出列表格式的伪指令
23.6 引用其他文件的伪指令
23.7 激活条件汇编的伪指令
23.8 定义汇编时刻的符号的伪指令
23.9 其他伪指令
23.10 伪指令参考
第24章 宏语言
24.1 宏的使用
24.2 定义宏
24.3 宏参数/替代符号
24.4 宏库
24.5 在宏内使用条件汇编
24.6 在宏内使用标号
24.7 在宏内生成信息
24.8 使用伪指令指定输出列表的格式
24.9 使用递归和嵌套的宏
24.10 宏伪指令综述
第25章 文档管理器说明
25.1 文档管理器概述
25.2 在软件开发流程中文档管理器的作用
25.3 调用文档管理器
25.4 文档管理器举例
第26章 连接器描述
26.1 连接器概述
26.2 连接器在软件开发流程中的作用
26.3 调用连接器
26.4 连接器选项
26.5 连接器命令文件
26.6 目标库
26.7 MEMORY伪指令
26.8 SECTIONS伪指令
26.9 指定段的运行地址
26.10 使用GROUP和UNION语句
26.11 特殊的段类型(DSECT、COPY和NOLOAD)
26.12 默认的定位算法
26.13 连接时给符号赋值
26.14 创建与填充空穴
26.15 连接器产生的复制表
26.16 部分(增量)连接
26.17 连接C/C++代码
26.18 连接器实例
第27章 绝对地址列表工具说明
27.1 产生一个绝对地址列表
27.2 调用绝对地址列表工具
27.3 绝对地址列表工具举例
第28章 交叉引用列表工具说明
28.1 生成交叉引用列表
28.2 调用交叉引用列表工具
28.3 交叉引用列表举例
第29章 目标文件工具说明
29.1 调用目标文件显示工具
29.2 XML标志索引
29.3 XML用户例子
29.4 调用名称列表工具程序
29.5 调用剥离工具程序
第30章 十六进制转换工具说明
30.1 十六进制转换工具在软件开发流程中的作用
30.2 调用十六进制转换工具
30.3 理解存储器宽度
30.4 ROMS伪指令
30.5 SECTIONS伪指令
30.6 排除一个指定段
30.7 给输出文件赋名
30.8 图像模式和-fill选项
30.9 为片上导引加载器构建一张表
30.10 控制ROM器件地址
30.11 目标格式描述
30.12 十六进制转换工具程序的错误提示信息
附录A 通用目标文件格式
附录B 符号调试伪指令
附录C XML连接信息文件说明
附录D 术语表
TMS320C6000系列DSP编程工具与指南
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×