欢迎访问学兔兔,学习、交流 分享 !

返回首页 |

嵌入式多核DSP应用开发与实践

收藏
  • 大小:69.64 MB
  • 语言:中文版
  • 格式: PDF文档
  • 阅读软件: Adobe Reader
资源简介
嵌入式多核DSP应用开发与实践
出版时间: 2017年版
内容简介
  嵌入式多核DSP应用开发与实践本书从C66x的内核架构、关键外设、多核编程等方面进行翔实介绍,同时通过基于CCSV5Simulator软件仿真以及TMDXEVM6678LEVM 硬件仿真的实例精解,从更多细节上介绍基于TMS320C6678的电路设计开发和boot设计,给出用实例测试的片内外设应用测试程序,最后介绍中科院某所基于TMS320C6678的星载毫米波SAR GMTI系统数字中频接收机的总体设计。本书适合于广大DSP爱好者、大学高年级学生、研究生,以及从事DSP等嵌入式技术开发的企业工程技术人员参考。
目录
第1章 多核DSP技术……………………………………………………………… 1
1.1 DSP概述…………………………………………………………………… 1
1.2 TI公司DSP器件的发展………………………………………………… 1
1.2.1 C2000系列DSP …………………………………………………… 2
1.2.2 C5000系列DSP …………………………………………………… 3
1.2.3 C6000单核系列DSP ……………………………………………… 3
1.2.4 达芬奇系列DSP …………………………………………………… 3
1.2.5 多核系列DSP ……………………………………………………… 4
1.3 高性能多核TIDSP性能………………………………………………… 6
1.4 KeyStoneⅠ多核DSP处理器…………………………………………… 8
1.4.1 KeyStoneⅠ概述…………………………………………………… 8
1.4.2 应用领域…………………………………………………………… 11
1.5 KeyStoneⅡ多核DSP处理器…………………………………………… 13
1.5.1 KeyStoneⅡ概述………………………………………………… 13
1.5.2 KeyStoneⅡ多核架构…………………………………………… 14
1.5.3 专用服务器应用…………………………………………………… 15
1.5.4 企业和工业应用…………………………………………………… 16
1.5.5 绿色能效网络处理………………………………………………… 16
1.5.6 产品优势…………………………………………………………… 17
第2章 TMS320C66x的多核处理器架构………………………………………… 18
2.1 C66x内核………………………………………………………………… 18
2.1.1 概 述……………………………………………………………… 18
2.1.2 C66xDSP架构指令增强………………………………………… 20
2.1.3 C66x内核中CPU 数据通路和控制……………………………… 22
2.2 TMS320C66xDSP内核………………………………………………… 24
2.2.1 C66x内核介绍…………………………………………………… 24
2.2.2 C66x内核内部模块概述………………………………………… 25
2.2.3 IDMA ……………………………………………………………… 31
2.2.4 中断控制器………………………………………………………… 33
2.3 多核导航器………………………………………………………………… 39
2.3.1 概 述……………………………………………………………… 39
2.3.2 多核导航器的功能………………………………………………… 43
2.3.3 多核导航器的基本概念…………………………………………… 44
2.4 高速通信接口……………………………………………………………… 49
2.4.1 HyperLink接口…………………………………………………… 51
2.4.2 RapidIO接口……………………………………………………… 57
2.4.3 PCIe接口………………………………………………………… 62
2.5 多核共享资源……………………………………………………………… 70
2.5.1 存储器资源分配…………………………………………………… 70
2.5.2 EDMA 资源……………………………………………………… 71
2.5.3 硬件信号量………………………………………………………… 72
2.5.4 IPC中断…………………………………………………………… 76
第3章 C66x片内外设、接口与应用……………………………………………… 77
3.1 EDMA3 …………………………………………………………………… 77
3.1.1 EDMA3概述……………………………………………………… 77
3.1.2 EMDA3传输类型………………………………………………… 81
3.1.3 EDMA 功能实例………………………………………………… 83
3.2 Ethernet/MDIO ………………………………………………………… 86
3.3 AIF2天线接口…………………………………………………………… 87
3.3.1 概 述……………………………………………………………… 87
3.3.2 OBSAI协议概述………………………………………………… 88
3.3.3 AIF2硬件框图…………………………………………………… 90
第4章 CCS5集成开发环境……………………………………………………… 92
4.1 CCS5的安装和配置……………………………………………………… 93
4.1.1 CCSV5.5的下载………………………………………………… 93
4.1.2 CCSV5.5的安装………………………………………………… 94
4.1.3 CCSV5.5的使用………………………………………………… 97
4.2 CCSV5操作小技巧…………………………………………………… 107
4.2.1 更改显示………………………………………………………… 107
4.2.2 多线程编译……………………………………………………… 107
4.2.3 多核断点调试…………………………………………………… 108
4.2.4 L1P、L1D、L2cache分析工具………………………………… 110
4.3 GEL的使用……………………………………………………………… 110
4.3.1 GEL功能简介…………………………………………………… 110
4.3.2 实现GEL脚本的基本要素…………………………………… 110
4.3.3 GEL脚本应用技巧……………………………………………… 116
第5章 多核软件开发包…………………………………………………………… 125
5.1 多核软件开发包概述…………………………………………………… 125
5.2 Linux/MCSDK ………………………………………………………… 127
5.3 BIOS-MCSDK …………………………………………………………… 129
5.3.1 BIOS-MCSDK简介……………………………………………… 129
5.3.2 BIOS-MCSDK2.x开发………………………………………… 133
5.3.3 MCSDK2.x使用指南…………………………………………… 135
5.3.4 运行演示应用程序……………………………………………… 142
5.4 CSL与底层驱动………………………………………………………… 145
5.4.1 CSL介绍………………………………………………………… 145
5.4.2 LLDs介绍……………………………………………………… 145
5.4.3 EDMA3驱动介绍……………………………………………… 147
5.5 算法处理库……………………………………………………………… 147
5.5.1 数字信号处理库(DSPLIB)……………………………………… 147
5.5.2 图像处理库(IMGLIB) ………………………………………… 148
5.5.3 数学函数库(MATHLIB) ……………………………………… 149
5.6 网络开发工具NDK …………………………………………………… 150
5.6.1 NDK概述………………………………………………………… 151
5.6.2 NDK组织结构…………………………………………………… 152
5.6.3 NDK实现过程…………………………………………………… 153
5.6.4 CCS创建NDK工程…………………………………………… 155
5.6.5 配置NDK ……………………………………………………… 157
5.6.6 NDK开发中应注意的问题……………………………………… 157
5.7 HUA 实例……………………………………………………………… 158
5.7.1 概 述…………………………………………………………… 158
5.7.2 软件设计………………………………………………………… 161
5.8 ImageProcessing实例讲解…………………………………………… 162
5.8.1 概 述…………………………………………………………… 162
5.8.2 软件设计………………………………………………………… 162
5.8.3 软件实例介绍…………………………………………………… 165
第6章 SYS/BIOS ………………………………………………………………… 168
6.1 SYS/BIOS基础………………………………………………………… 168
6.1.1 SYS/BIOS概述………………………………………………… 168
6.1.2 SYS/BIOS与DSP/BIOS的区别……………………………… 169
6.1.3 XDCtools概述…………………………………………………… 170
6.1.4 SYS/BIOS开发流程…………………………………………… 173
6.2 IPC核间通信…………………………………………………………… 174
6.2.1 IPC功能架构…………………………………………………… 174
6.2.2 IPC主要模块介绍……………………………………………… 176
6.2.3 使用IPC需要解决的问题……………………………………… 183
6.3 SYS/BIOS组成………………………………………………………… 183
6.4 SYS/BIOS工程创建和配置…………………………………………… 189
6.4.1 用TI资源管理器创建SYS/BIOS工程……………………… 189
6.4.2 用CCS工程向导创建SYS/BIOS工程………………………… 191
6.5 SYS/BIOS启动过程…………………………………………………… 196
第7章 硬件设计指南……………………………………………………………… 198
7.1 电源设计、节电模式和功耗评估………………………………………… 198
7.1.1 功耗分析………………………………………………………… 198
7.1.2 系统总体方案设计……………………………………………… 199
7.1.3 电源滤波设计…………………………………………………… 201
7.1.4 电源控制电路…………………………………………………… 201
7.1.5 3.3V 辅助电路………………………………………………… 203
7.1.6 上电时序控制电路……………………………………………… 203
7.1.7 在线软件控制…………………………………………………… 205
7.2 时钟设计………………………………………………………………… 206
7.2.1 时钟需求………………………………………………………… 206
7.2.2 时钟电路设计…………………………………………………… 208
7.3 复位电路设计…………………………………………………………… 215
7.3.1 复位需求统计…………………………………………………… 215
7.3.2 复位电路及时序设计…………………………………………… 215
7.4 DDR3接口设计………………………………………………………… 216
7.4.1 DDR3技术综述………………………………………………… 216
7.4.2 TMS320C6678的DDR3控制器……………………………… 217
7.4.3 DDR3-SDRAM 选型…………………………………………… 217
7.4.4 DDR3电路设计………………………………………………… 218
7.4.5 PCB设计中的注意事项………………………………………… 219
7.5 EMIF16接口设计……………………………………………………… 222
7.5.1 EMIF16接口介绍……………………………………………… 222
7.5.2 EMIF16存储空间分配………………………………………… 223
7.5.3 NORFlash接口设计…………………………………………… 223
7.5.4 NANDFlash接口设计………………………………………… 225
7.6 SRIO接口设计………………………………………………………… 226
7.6.1 设计原理………………………………………………………… 226
7.6.2 PCB设计中的注意事项………………………………………… 227
7.6.3 GbE设计………………………………………………………… 228
7.7 SPI接口设计…………………………………………………………… 233
7.8 I2C接口设计…………………………………………………………… 233
7.9 外中断设计……………………………………………………………… 234
7.10 JTAG仿真……………………………………………………………… 235
7.11 硬件设计检查表………………………………………………………… 235
7.12 电路设计小技巧………………………………………………………… 240
7.12.1 UltraLibrarian的使用………………………………………… 240
7.12.2 Cadence模块化复用………………………………………… 243
第8章 TIC66x多核DSP自启动开发…………………………………………… 253
8.1 概 述…………………………………………………………………… 253
8.1.1 DSP启动过程…………………………………………………… 255
8.1.2 多核启动原理…………………………………………………… 256
8.1.3 启动数据的生成………………………………………………… 258
8.2 EMIF16方式…………………………………………………………… 259
8.3 主从I2C方式…………………………………………………………… 259
8.3.1 单核启动模式…………………………………………………… 260
8.3.2 多核启动模式…………………………………………………… 261
8.4 SPI方式………………………………………………………………… 261
8.4.1 SPI总线的工作原理…………………………………………… 262
8.4.2 SPI启动的实现………………………………………………… 263
8.4.3 SPINOR启动步骤及注意事项………………………………… 264
8.5 SRIO方式……………………………………………………………… 266
8.6 以太网方式……………………………………………………………… 268
8.7 PCIe方式………………………………………………………………… 270
8.7.1 PCIe启动原理…………………………………………………… 270
8.7.2 PCIe启动分析…………………………………………………… 271
8.7.3 单模式加载启动实现…………………………………………… 271
8.7.4 多核启动实现…………………………………………………… 272
8.7.5 DDR3多模代码加载启动实现………………………………… 273
8.8 HyperLink方式………………………………………………………… 274
第9章 C66x多核编程指南……………………………………………………… 275
9.1 应用程序编程框架……………………………………………………… 275
9.1.1 XDAIS标准……………………………………………………… 275
9.1.2 IALG接口……………………………………………………… 275
9.1.3 XDM 标准……………………………………………………… 277
9.1.4 VISAAPI ……………………………………………………… 279
9.2 应用程序映射到多核导航器…………………………………………… 279
9.2.1 并行处理模型…………………………………………………… 280
9.2.2 识别并行任务…………………………………………………… 282
9.3 多核通信………………………………………………………………… 284
9.3.1 数据迁移………………………………………………………… 285
9.3.2 多核导航器数据移动…………………………………………… 286
9.3.3 通知和同步……………………………………………………… 287
9.3.4 多核导航器的通知方法………………………………………… 288
9.4 数据传输引擎…………………………………………………………… 290
9.5 共享资源管理…………………………………………………………… 291
9.6 存储器管理……………………………………………………………… 292
9.7 C66x代码优化…………………………………………………………… 295
9.7.1 使用内嵌函数…………………………………………………… 295
9.7.2 软件流水………………………………………………………… 296
9.7.3 混合编程………………………………………………………… 297
9.8 线性汇编………………………………………………………………… 300
9.8.1 C代码改写为线性汇编………………………………………… 300
9.8.2 线性汇编使用SIMD指令……………………………………… 304
9.8.3 循环展开………………………………………………………… 305
9.8.4 解决存储器冲突………………………………………………… 307
9.9 TI代码优化设计文档…………………………………………………… 309
第10章 C66x多核DSP软件开发实例………………………………………… 317
10.1 IPC核间通信实例……………………………………………………… 317
10.1.1 概 述…………………………………………………………… 317
10.1.2 实例详解………………………………………………………… 318
10.1.3 源代码详解……………………………………………………… 319
10.2 VLFFT ………………………………………………………………… 326
10.2.1 概 述…………………………………………………………… 326
10.2.2 软件设计………………………………………………………… 328
10.2.3 VLFFT实验实例……………………………………………… 330
10.2.4 运行结果分析…………………………………………………… 333
第11章 TMDSEVM6678LEVM 及视频编解码实现……………………………… 335
11.1 EVM 概述……………………………………………………………… 335
11.1.1 TMDSEVM6678L概述……………………………………… 336
11.1.2 TMDSEVM6678L电路介绍………………………………… 338
11.2 多相机视频编解码实现………………………………………………… 344
11.2.1 系统介绍………………………………………………………… 344
11.2.2 开发包支持……………………………………………………… 344
11.2.3 性能评估………………………………………………………… 344
第12章 KeyStoneⅠ自测程序指南……………………………………………… 348
第13章 星载毫米波SAR GMTI系统数字中频接收机……………………… 419
附录 多核DSP开发网络资源…………………………………………………… 432
参考文献 …………………………………………………………………………… 433
下载地址