图书介绍

TI C66X多核DSP高级软件开发技术PDF|Epub|txt|kindle电子书版本网盘下载

TI C66X多核DSP高级软件开发技术
  • 夏际金,赵洪立,李川编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302461869
  • 出版时间:2017
  • 标注页数:277页
  • 文件大小:103MB
  • 文件页数:294页
  • 主题词:数字信号处理-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

TI C66X多核DSP高级软件开发技术PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 TI多核C66x DSP介绍1

1.1 C6678处理器1

1.1.1 C6678概览3

1.1.2 外围设备3

1.2 66AK处理器3

1.3 66AK2H14/12/06和C6678各项功能对比4

1.4 C66x处理器内核6

1.5 电源休眠控制器8

1.5.1 C66x内核电源休眠管理介绍9

1.5.2 电源休眠管理特征9

1.6 锁相环及其设置10

1.6.1 主PLL和PLL控制器10

1.6.2 DDR3 PLL13

1.6.3 PASS PLL14

1.7 C6678处理器接口通信相关外围设备15

1.7.1 I2C外围设备15

1.7.2 SPI外围设备15

1.7.3 HyperLink外围设备15

1.7.4 UART外围设备16

1.7.5 PCIE外围设备16

1.7.6 TSIP外围设备16

1.7.7 包加速器17

1.7.8 EMIF16外围设备17

1.7.9 安全加速器17

1.7.10 Gigabit Ethernet开关子系统17

1.7.11 管理数据输入输出17

1.7.12 串行RapidIO端口17

1.7.13 通用目的输入输出18

1.8 定时器18

1.9 信号量18

1.10 多核导航器19

1.11 设计建议20

1.11.1 初始化20

1.11.2 接口驱动程序20

1.11.3 时间戳的获取20

1.11.4 EVM板的使用21

第2章 C66x存储器组织22

2.1 C66x存储控制器22

2.1.1 L1P存储控制器23

2.1.2 L1D存储控制器23

2.1.3 L2存储控制器23

2.1.4 外部存储控制器24

2.1.5 扩展存储控制器24

2.2 多核共享存储控制器25

2.2.1 概览25

2.2.2 C66x内核从接口26

2.2.3 系统从接口26

2.2.4 系统主接口26

2.2.5 外部存储器主接口26

2.2.6 MSMC存储器26

2.3 扩展存储控制器XMC27

2.3.1 存储器映射寄存器概要28

2.3.2 XMC存储器保护和地址扩展30

2.3.3 存储器保护和地址扩展过程33

2.3.4 地址扩展34

2.3.5 XMC存储器保护结构支持36

2.3.6 预取缓冲36

2.4 存储器保护架构42

2.4.1 存储器保护的目的42

2.4.2 特权级别42

2.4.3 存储器保护架构42

2.5 带宽管理43

2.5.1 介绍43

2.5.2 带宽管理架构44

2.5.3 带宽管理寄存器45

2.6 设计建议46

2.6.1 合理规划使用存储器46

2.6.2 存储器设置成不被Cache缓存和预取46

第3章 Cache缓存和数据一致性47

3.1 为什么使用Cache47

3.2 C64x和C66x DSP之间的Cache区别48

3.3 Cache存储器结构概览49

3.4 Cache基础知识49

3.4.1 直接映射Cache——L1P Cache50

3.4.2 Cache缺失的类型51

3.4.3 组相联Cache52

3.4.4 二级Cache54

3.5 L1P Cache55

3.5.1 L1P存储器和Cache55

3.5.2 L1P Cache结构56

3.5.3 L1P冻结模式57

3.5.4 程序启动的一致性操作57

3.6 L1D Cache57

3.6.1 L1D存储器和Cache58

3.6.2 L1D Cache结构58

3.6.3 L1D冻结模式59

3.6.4 程序发起的Cache一致性操作59

3.7 L2 Cache60

3.7.1 L2存储器和Cache60

3.7.2 L2 Cache结构60

3.7.3 L2冻结模式61

3.7.4 程序发起的Cache一致性操作62

3.7.5 Cache能力控制63

3.8 使用Cache65

3.8.1 配置L1 Cache65

3.8.2 配置L2 Cache65

3.9 数据一致性67

3.9.1 Snoop一致性协议68

3.9.2 在外部存储器和Cache之间维持一致性71

3.9.3 对L2 Cache一致性操作使用指导73

3.9.4 对L1 Cache一致性操作使用指导74

3.10 片上Debug支持75

3.11 在运行中改变Cache配置76

3.11.1 禁用外部存储器Cache功能76

3.11.2 在运行中改变Cache尺寸76

3.12 优化Cache性能76

3.12.1 Cache性能特征76

3.12.2 阻塞情况77

3.12.3 优化技术概览79

3.12.4 应用级优化79

3.12.5 过程级优化80

3.12.6 C66x DSP Cache一致性操作小结89

3.13 设计建议93

3.13.1 消除虚假地址93

3.13.2 数据一致性问题94

第4章 DMA传输95

4.1 IDMA95

4.1.1 IDMA结构96

4.1.2 IDMA通道096

4.1.3 IDMA通道197

4.2 EDMA3控制器98

4.2.1 EDMA3控制器介绍98

4.2.2 EDMA3器件特定的信息99

4.2.3 EDMA3通道控制器配置100

4.2.4 EDMA3传输控制器配置100

4.2.5 EDMA3通道同步事件101

4.2.6 EDMA3通道控制器101

4.2.7 EDMA3传输控制器103

4.3 EDMA3传输类型104

4.3.1 A同步传输105

4.3.2 AB同步传输105

4.4 参数RAM106

4.4.1 PaRAM参数集107

4.4.2 Dummy与Null传输比较108

4.4.3 参数集更新109

4.4.4 连接传输109

4.4.5 常数地址模式传输/对齐问题113

4.4.6 单元大小113

4.5 发起一个DMA传输113

4.5.1 DMA通道113

4.5.2 QDMA通道115

4.5.3 完成一个DMA传输116

4.6 提升DMA性能的几点建议117

4.6.1 尽量用较大的ACNT117

4.6.2 线性传输117

4.6.3 地址对齐118

4.6.4 恰当使用多个CC和TC传输118

第5章 中断和异常119

5.1 C6678处理器中断简介119

5.2 芯片中断控制器120

5.3 C66x内核中断控制器概述121

5.3.1 特征121

5.3.2 功能块图122

5.4 中断控制器结构122

5.4.1 事件寄存器123

5.4.2 事件合并器124

5.4.3 中断选择器126

5.4.4 异常合并器127

5.5 C66x内核事件128

5.6 中断控制器与DSP交互129

5.6.1 DSP中断控制器接口129

5.6.2 DSP服务中断事件130

5.7 中断设计建议131

5.7.1 不要过多使用中断或中断嵌套131

5.7.2 中断服务程序中代码不宜过长131

5.7.3 中断服务程序改变的全局变量要加上volatile标志131

第6章 如何使用132

6.1 常用界面133

6.1.1 Project Explorer133

6.1.2 程序窗口133

6.1.3 目标配置窗口133

6.1.4 Debug窗口133

6.1.5 Memory窗口134

6.1.6 Expressions窗口134

6.1.7 Breakpoints窗口135

6.1.8 Problems窗口135

6.1.9 Console窗口135

6.2 新建工程136

6.3 新建一个目标配置文件138

6.3.1 新建ccxml文件138

6.3.2 设置仿真器139

6.3.3 添加器件140

6.4 常用操作141

6.4.1 Launch141

6.4.2 Group142

6.4.3 Connect143

6.4.4 加载程序143

6.4.5 设置断点调试程序145

6.4.6 复位145

6.5 常见问题146

6.5.1 头文件找不到146

6.5.2 EVM板未初始化,调试找不到DDR3147

6.5.3 选中不了仿真器147

6.5.4 加断点调试错误147

6.5.5 域选择不正确147

6.5.6 仿真器连接中断电147

6.6 设置字体和代码风格147

6.6.1 修改字体147

6.6.2 代码风格设置147

6.7 MCSDK149

6.7.1 MCSDK架构149

6.7.2 MCSDK特点149

6.8 TI函数库调用151

6.8.1 格式选择151

6.8.2 库的调用152

6.8.3 库的使用152

6.9 理解CMD文件153

6.9.1 CMD文件简介153

6.9.2 MEMORY命令154

6.9.3 SECTIONS命令154

第7章 SYS/BIOS实时操作系统156

7.1 什么是SYS/BIOS156

7.1.1 SYS/BIOS的优势156

7.1.2 SYS/BIOS和XDC TOOL的关系156

7.2 SYS/BIOS包159

7.3 SYS/BIOS中使用C++159

7.3.1 存储器管理160

7.3.2 Name Mangling160

7.3.3 从配置调用对象方法161

7.3.4 类构造器的折构器161

7.4 SYS/BIOS配置和编译161

7.4.1 在工程中添加SYS/BIOS支持163

7.4.2 创建一个独立的配置工程163

7.4.3 配置SYS/BIOS应用164

7.4.4 用XGCONF打开一个配置文件164

7.4.5 用XGCONF执行任务165

7.4.6 保存配置166

7.4.7 关于XCONFG视图166

7.4.8 使用可用产品视图167

7.4.9 使用概要视图167

7.4.10 使用属性视图168

7.4.11 使用问题视图169

7.4.12 找到并修正错误170

7.5 编译一个SYS/BIOS应用170

7.5.1 了解编译流程170

7.5.2 编译和连接优化171

7.6 线程模块171

7.6.1 SYS/BIOS启动顺序172

7.6.2 线程模块的概览173

7.6.3 线程类型173

7.6.4 线程优先级173

7.6.5 让步和抢占173

7.6.6 钩子175

7.7 硬件中断176

7.7.1 创建中断176

7.7.2 硬件中断嵌套和系统堆栈大小177

7.7.3 硬件钩子177

7.8 软件中断178

7.8.1 创建软件中断对象178

7.8.2 设置软件中断优先级178

7.8.3 软件中断优先级和系统堆栈大小178

7.8.4 软件中断执行179

7.8.5 优点和折中179

7.8.6 软件中断函数同步179

7.8.7 软件钩子179

7.9 任务180

7.9.1 创建任务180

7.9.2 任务执行状态和调度181

7.9.3 任务堆栈182

7.9.4 测试堆栈溢出182

7.9.5 任务钩子182

7.9.6 空闲循环183

7.10 SYS/BIOS同步模块184

7.10.1 信号量184

7.10.2 事件模块185

7.10.3 门模块188

7.10.4 邮箱190

7.10.5 队列191

7.11 定时服务191

7.12 Memory192

7.12.1 新建一个Platform192

7.12.2 栈192

7.12.3 Cache配置194

7.12.4 Cache Runtime API194

7.12.5 动态存储器分配194

7.12.6 Heap的实施196

7.13 硬件抽象层196

7.14 典型设计实例和建议196

7.14.1 典型设计196

7.14.2 设计建议197

第8章 多核并行设计199

8.1 并行粒度和并行级别199

8.2 并行方式200

8.3 任务类型200

8.3.1 相同任务的多个副本200

8.3.2 多个独立任务201

8.3.3 单个任务拆分成多个子任务201

8.3.4 多个松散耦合任务201

8.3.5 耦合度高的任务202

8.4 依赖关系202

8.4.1 数据依赖202

8.4.2 存储器依赖203

8.5 死锁和活锁204

8.5.1 死锁204

8.5.2 活锁205

8.6 同步205

8.6.1 SYS/BIOS同步模块206

8.6.2 采用控制信号实现多核对等同步206

8.7 fork-join207

8.8 OpenMP并行设计208

8.9 任务级优化设计209

8.9.1 一种典型的任务处理流程209

8.9.2 优化设计实例216

第9章 软件优化设计222

9.1 for循环优化223

9.1.1 移出能在循环外完成的计算223

9.1.2 循环体内的大运算换成小运算224

9.1.3 多重循环224

9.1.4 for循环中有判断225

9.2 多核for循环并行任务优化225

9.2.1 资源占用小的for循环226

9.2.2 资源占用大的for循环226

9.3 if声明优化227

9.3.1 if转换227

9.3.2 消除if声明228

9.3.3 相同代码合并减少if声明229

9.3.4 减少嵌套的if230

9.3.5 优化条件表达式230

9.3.6 优化稀疏矩阵230

9.4 软件流水231

9.5 正确使用编译指示和关键字232

9.5.1 restrict关键字232

9.5.2 nassert关键字232

9.5.3 interrupt中断关键字233

9.5.4 near和far关键字233

9.5.5 const关键字234

9.5.6 UNROLL编译指示234

9.5.7 MUST_ITERATE编译指示234

9.5.8 CODE_SECTION编译指示235

9.5.9 DATA_SECTION编译指示235

9.5.10 SET_CODE_SECTION和SET_DATA_SECTION编译指示236

9.5.11 DATA_ALIGN编译指示236

9.5.12 STRUCT_ALIGN236

9.6 采用内建函数237

9.6.1 数据移动和打包函数237

9.6.2 使用除法指令238

9.6.3 使用C66x定点指令实现复数矩阵操作和向量操作238

9.6.4 浮点和矢量运算240

9.7 选定正确的优化级别242

9.8 软件优化小结243

第10章 距离多普勒成像设计实例244

10.1 背景介绍244

10.2 距离多普勒成像算法244

10.3 数据组织形式245

10.4 算法的并行化设计246

10.5 fork-join的设计247

10.6 脉冲压缩的设计247

10.6.1 IFFT转为FFT248

10.6.2 无缓存的大点数FFT、IFFT设计249

10.6.3 有数据缓冲多核大点数FFT、IFFT设计249

10.6.4 资源使用情况250

10.6.5 复数相乘251

10.6.6 脉冲压缩的伪码实现251

10.7 其他阶段任务分解252

10.8 实验结果分析253

第11章 展望254

11.1 异构多核SOC处理器254

11.1.1 异构多核DSP254

11.1.2 异构多核FPGA254

11.2 嵌入式软件设计思考255

11.2.1 掌握系统架构255

11.2.2 做好软件模块化设计255

11.2.3 片上系统架构设计的挑战255

11.2.4 自动化并行设计255

附录A257

附录B265

附录C272

参考文献276

热门推荐