第1章 绪论 1
1.1 DSP算法标准的内容 1
1.2 制订DSP算法标准的出发点 2
1.3 制订DSP算法标准的目标 3
1.4 DSP算法标准中的尚待研究的部分 4
1.5 系统结构 4
1.5.1 系统架构 5
1.5.2 算法 5
1.5.3 运行支持 6
第2章 编程规范 7
2.1 通用编程规范 7
2.1.1 C语言的使用 7
2.1.2 线程和可重入 7
2.1.3 数据存储器 11
2.1.4 程序存储器 14
2.1.5 代码固化 15
2.1.6 外设的使用 15
2.2 算法级规范 15
2.2.1 接口和模块 15
2.2.2 算法 23
2.2.3 测试和诊断 24
2.2.4 封装 25
2.3 算法性能描述 26
2.3.1 数据存储器 27
2.3.2 程序存储器 29
2.3.3 中断延迟 29
2.3.4 运行时间 30
2.4 专用级规范 31
2.4.1 CPU寄存器类型 31
2.4.2 浮点的使用 32
2.4.3 TMS320C6000的规范 32
2.4.4 TMS320C5400的规范 35
2.4.5 TMS320C5500系列DSP的规范 37
2.4.6 TMS320C2400系列DSP的规范 41
2.4.7 TMS320C2800系列DSP的规范 43
2.5 DMA编程规范 45
2.5.1 算法和架构 45
2.5.2 使用DMA资源的要求 46
2.5.3 DMA控制器 46
2.5.4 逻辑通道 47
2.5.5 数据传输属性 47
2.5.6 数据传输的同步 48
2.5.7 抽象接口 49
2.5.8 资源描述 49
2.5.9 API函数 50
2.5.10 严格的DMA传输请求排序 50
2.5.11 申请DMA传输 51
2.5.12 依赖于设备的DMA优化建议 51
2.5.13 C6000专用的DMA规范 52
2.5.14 C5500专用DMA规范 53
2.5.15 算法间的同步 54
第3章 算法接口 57
3.1 抽象算法接口 57
3.1.1 ialg.h 58
3.1.2 IALG的函数 62
3.1.3 对象的创建和初始化 63
3.1.4 数据的处理 64
3.2 IALG函数的介绍 65
3.2.1 algActivate() 65
3.2.2 algAlloc() 67
3.2.3 algControl() 68
3.2.4 algDeactivate() 69
3.2.5 algFree() 70
3.2.6 algInit() 71
3.2.7 algMoved() 73
3.2.8 algNumAlloc() 74
3.3 算法DMA接口 75
3.3.1 idma2.h 75
3.3.2 IDMA2函数 78
3.3.3 DMA操作概述 78
3.3.4 dmaChangeChannels() 79
3.3.5 dmaGetChannelCnt() 80
3.3.6 dmaGetChannels() 81
3.3.7 dmaInit() 83
3.4 ACPY2 API函数 84
3.4.1 ACPY2_complete() 84
3.4.2 ACPY2_configure () 84
3.4.3 ACPY2_setNumFrames () 86
3.4.4 ACPY2_setSrcFrameIndex () 86
3.4.5 ACPY2_setDstFrameIndex () 87
3.4.6 ACPY2_start () 88
3.4.7 ACPY2_wait () 90
3.4.8 ACPY2_getChanObjSize () 90
3.4.9 ACPY2_initChannel () 91
3.4.10 ACPY2_startAligned () 91
3.5 增补API函数 93
3.5.1 ALG——算法实例对象的管理器 93
3.5.2 ALG_activate() 94
3.5.3 ALG_create() 94
3.5.4 ALG_control() 95
3.5.5 ALG_deactivate() 95
3.5.6 ALG_delete() 96
3.5.7 ALG_init() 96
3.5.8 ALG_exit() 96
第4章 CCS中的算法工具 97
4.1 模板代码生成器 97
4.2 示例程序 99
4.2.1 示例的使用 99
4.2.2 目标应用的描述 101
4.2.3 示例中的分析对象 102
4.2.4 主机插件 102
附录A 算法实现的例程 103