数字信号处理器(Digital Signal Processor,DSP)是对信号和图像实现实时处理的一类高性能的CPU。所谓“实时(Real-Time)实现”是指一个实际的系统能在人们听觉、视觉或按任务要求所允许的时间范围内实现对输入信号的处理并将其输出。为了顺利地实现设计任务,一本或几本好的手册是必不可少的,其中包括该CPU的结构手册、指令和汇编语言手册以及开发手册等。
但凡使用过TI DSP文档的朋友都有这样的经验:其手册在使用上是有相当难度的。另外,TI DSP文档都是用英文写成,这也给部分工程技术人员带来一定的困难。也正因为如此,本书应运而生!
DSP编程中往往过分追求性能,忽略了软件的封装,从而使得数字信号处理系统很难像“搭积木”一样集成已有算法,增加了系统的研发时间。针对上述缺憾,TI公司适时地推出了DSP算法标准——XDAIS,规范了DSP算法软件的开发,并提供了类似C++语言类的封装方式的算法接口,使得算法集成变得简单统一。本书系统介绍了XDAIS基本概念、软件编程规范和接口规范,并阐述了CCS中的相关工具的使用。
该书适合DSP软件编程人员作为工作工具使用,也可作为大学DSP相关课程的参考书使用。
第1章 绪论
1.1 DSP算法标准的内容
1.2 制订DSP算法标准的出发点
1.3 制订DSP算法标准的目标
1.4 DSP算法标准中的尚待研究的部分
1.5 系统结构
1.5.1 系统架构
1.5.2 算法
1.5.3 运行支持
第2章 编程规范
2.1 通用编程规范
2.1.1 C语言的使用
2.1.2 线程和可重入
2.1.3 数据存储器
2.1.4 程序存储器
2.1.5 代码固化
2.1.6 外设的使用
2.2 算法级规范
2.2.1 接口和模块
2.2.2 算法
2.2.3 测试和诊断
2.2.4 封装
2.3 算法性能描述
2.3.1 数据存储器
2.3.2 程序存储器
2.3.3 中断延迟
2.3.4 运行时间
2.4 专用级规范
2.4.1 CPU寄存器类型
2.4.2 浮点的使用
2.4.3 TMS320C6000的规范
2.4.4 TMS320C5400的规范
2.4.5 TMS320C5500系列DSP的规范
2.4.6 TMS320C2400系列DSP的规范
2.4.7 TMS320C2800系列DSP的规范
2.5 DMA编程规范
2.5.1 算法和架构
2.5.2 使用DMA资源的要求
2.5.3 DMA控制器
2.5.4 逻辑通道
2.5.5 数据传输属性
2.5.6 数据传输的同步
2.5.7 抽象接口
2.5.8 资源描述
2.5.9 API函数
2.5.10 严格的DMA传输请求排序
2.5.11 申请DMA传输
2.5.12 依赖于设备的DMA优化建议
2.5.13 C6000专用的DMA规范
2.5.14 C5500专用DMA规范
2.5.15 算法间的同步
第3章 算法接口
3.1 抽象算法接口
3.1.1 ialg.h
3.1.2 IALG的函数
3.1.3 对象的创建和初始化
3.1.4 数据的处理
3.2 IALG函数的介绍
3.2.1 algActivate()
3.2.2 algAlloc()
3.2.3 algControl()
3.2.4 algDeactivate()
3.2.5 algFree()
3.2.6 algInit()
3.2.7 algMoved()
3.2.8 algNumAlloc()
3.3 算法DMA接口
3.3.1 idma2.h
3.3.2 IDMA2函数
3.3.3 DMA操作概述
3.3.4 dmaChangeChannels()
3.3.5 dmaGetChannelCnt()
3.3.6 dmaGetChannels()
3.3.7 dmaInit()
3.4 ACPY2 API函数
3.4.1 ACPY2_complete()
3.4.2 ACPY2_configure ()
3.4.3 ACPY2_setNumFrames ()
3.4.4 ACPY2_setSrcFrameIndex ()
3.4.5 ACPY2_setDstFrameIndex ()
3.4.6 ACPY2_start ()
3.4.7 ACPY2_wait ()
3.4.8 ACPY2_getChanObjSize ()
3.4.9 ACPY2_initChannel ()
3.4.10 ACPY2_startAligned ()
3.5 增补API函数
3.5.1 ALG——算法实例对象的管理器
3.5.2 ALG_activate()
3.5.3 ALG_create()
3.5.4 ALG_control()
3.5.5 ALG_deactivate()
3.5.6 ALG_delete()
3.5.7 ALG_init()
3.5.8 ALG_exit()
第4章 CCS中的算法工具
4.1 模板代码生成器
4.2 示例程序
4.2.1 示例的使用
4.2.2 目标应用的描述
4.2.3 示例中的分析对象
4.2.4 主机插件
附录A 算法实现的例程