《TMS320LF240x DSP应用程序设计教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:清源科技编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111125029
  • 页数:353 页
图书介绍:本书共分两篇。第1篇主要讲述TMS32LF24x系列DSP硬件概况,内部资源,汇编语言寻址方式和指令系统,汇编程序的编写方法和CCS调试环境以及汇编程序开发实例;第2篇主要讲述TMS32LF24x系列DSP的C编译器,C代码的优化,C程序的链接,运行时支持库以及与TMS32LF24x系列DSP相关的C语言知识,并且使用两个实例阐述了C程序开发过程等。

第1篇 TMS320LF240x CPU和汇编程序设计 1

第1章 TMS320LF240x DSP简介 3

1.1 DSP芯片基本结构 3

1.2 TMS320LF240x DSP控制器简介 5

1.2.1 基于控制领域的应用 5

1.2.2 TMS320LF240x特点和资源 5

1.2.3 TMS320LF240x的功能结构 6

1.3 TMS320LF240xDSP存储映射 7

1.3.1 TMS320LF240x DSP存储器映射 7

1.3.2 TMS320LF240xDSP外设存储器映射图 9

1.4 TMS320LF240x的CPU内部总线结构 10

2.1.3 FLASH程序存储器 11

2.1.2 单端口RAM(SARAM) 11

2.1.1 双端口RAM(DARAM) 11

2.1 片内存储器 11

第2章 存储器和I/O空间 11

2.2 程序存储器 12

2.3 数据存储器 13

2.4 I/O空间 16

第3章 中央处理单元(CPU) 18

3.1 TMS320LF240xDSP的CPU功能模块 18

3.2 输入定标部分 21

3.3 乘法部分 23

3.3.1 乘法器 23

3.3.2 乘积定标移位器 24

3.4 中央算术逻辑部分 25

3.4.1 中央算术逻辑单元 26

3.4.3 输出定标移位器 27

3.4.2 累加器(ACC) 27

3.5 辅助寄存器算术单元(ARAU) 28

3.5.1 辅助寄存器算术单元(ARAU)简述 28

3.5.2 辅助寄存器 29

3.6 状态寄存器ST0和ST1 30

3.7 外部存储器接口操作 31

第4章 程序控制 35

4.1 程序地址的产生 35

4.1.1 程序计数器(PC) 36

4.1.2 堆栈 37

4.1.3 微堆栈(MSTACK) 38

4.2 指令流水线操作 38

4.3.1 无条件转移 39

4.3.2 无条件调用 39

4.3 转移、调用和返回 39

4.3.3 无条件返回 40

4.4 条件转移、调用和返回 40

4.4.1 使用多个条件 40

4.4.2 条件的稳定 41

4.4.3 条件转移 41

4.4.4 条件调用 41

4.4.5 条件返回 42

4.5 重复单条指令 42

4.6 中断 42

4.7 CPU中断寄存器 47

4.7.1 CPU中断标志寄存器 47

4.7.2 CPU中断屏蔽寄存器 49

第5章 寻址方式 50

5.1 立即寻址方式 50

5.2 直接寻址方式 51

5.2.2 直接寻址举例 52

5.2.1 使用直接寻址方式 52

5.3 间接寻址方式 54

5.3.1 当前辅助寄存器 54

5.3.2 间接寻址的选择 54

5.3.3 下一次的辅助寄存器 55

5.3.4 间接寻址操作码的格式 56

5.3.5 间接寻址举例 57

5.3.6 修改辅助寄存器的内容 58

第6章 汇编程序设计及开发环境 60

6.1 TMS320LF240x DSP的应用软件开发流程和工具 60

6.2.1 COFF文件的基本单元——段 62

6.2.2 汇编器对段的处理 62

6.2 COFF文件概述 62

6.2.3 链接器对段的处理 67

6.2.4 重新定位 69

6.2.5 运行时重新定位 70

6.2.6 加载程序 70

6.2.7 COFF文件中的符号 71

6.3 汇编语言程序格式 71

6.4 程序汇编 74

6.4.1 运行汇编程序 74

6.4.2 条件汇编 75

6.4.3 列表文件 76

6.4.4 交叉引用清单 77

6.5 程序链接 78

6.5.1 链接器的调用 79

6.5.2 链接器的选项 79

6.5.3 链接器命令文件(.cmd文件) 81

6.6 编写链接器命令文件(.cmd文件) 82

6.6.1 MEMoRY指令 82

6.6.2 SECTIONS指令 84

6.6.3 MEMORY和SECTIONS指令的默认算法 88

6.6.4 基于CCS环境下命令文件编写实例 88

6.7 宏定义和宏调用 89

6.7.1 宏定义 89

6.7.2 宏调用 90

6.8 集成开发环境(CCS) 91

6.8.1 CCS的系统配置 91

6.8.2 运行CCS 93

6.8.3 建立工程文件 93

6.8.4 设置工程项目选项 94

6.8.7 查看存储器信息 98

6.8.6 仿真运行输出目标文件 98

6.8.5 编译和创建输出目标文件 98

6.8.8 查看寄存器信息 100

6.8.9 修改存储器和寄存器内容 100

6.8.10 设置断点和探测点 101

6.8.11 FLASH烧录 102

6.9 TMS320LF240xDSP汇编程序开发实例 104

6.9.1 寄存器定义文件240xA.h 104

6.9.2 中断向量表定义文件 112

6.9.3 闭环PID控制汇编程序 113

第7章 汇编语言指令 121

7.1 指令集概述 121

7.2 如何使用指令描述 127

7.2.1 语法 128

7.2.4 执行 129

7.2.2 操作数 129

7.2.3 操作码 129

7.2.5 状态位 130

7.2.6 说明 130

7.2.7 字数 130

7.2.8 周期数 130

7.2.9 举例 132

7.3 指令描述 132

第2篇 TMS320LF240x C语言编程 257

第8章 C编译器概述 259

8.1 C编译器特性 259

8.2 命令解释程序 260

8.3 调用编译器命令解释程序 261

8.4 改变编译器的选项 262

8.4.1 常用的选项 262

8.4.3 修改Shell对文件名的解释 263

8.4.2 指定文件名 263

8.4.4 修改Shell对文件名扩展的解释和命名 264

8.4.5 指定目录 264

8.4.6 忽略ANSI C类型检查的选项 264

8.4.7 运行时模块选项 265

8.4.8 控制汇编器的选项 265

8.5 使用环境变量改变编译器特性 266

8.5.1 设置默认Shell选项(COPTION) 266

8.5.2 指定临时文件目录(TMP) 267

8.6 控制预处理器 267

8.6.1 预定义的宏名 267

8.6.2 #include文件的搜索路径 268

8.6.3 用-i选项改变#include文件的搜索路径 268

8.7.1 直接插入内部操作数 269

8.6.4 产生预处理的列表文件(-pl选项] 269

8.7 使用直接插入函数展开 269

8.7.2 控制直接插入函数展开(-x选项) 270

8.7.3 _INLINE预处理器符号 270

8.8 使用交互列表工具 271

8.9 编译错误简介 272

8.10 使用CCS汇编工具 274

第9章 优化C代码 278

9.1 使用C编译优化器 278

9.2 使用-o3选项 279

9.2.1 控制文件级优化(-oln选项] 279

9.2.2 创建优化信息文件(-onn选项) 280

9.3 执行程序优化级 280

9.3.1 控制程序级优化(-opn选项) 280

9.4 自动内嵌扩展(-oi选项) 281

9.3.2 当混合C语言和汇编的优化考虑因素 281

9.3.3 命名程序编译输出文件(-px选项) 281

9.5 使用交互列表工具 282

9.6 调试优化的代码和优化类型 282

9.6.1 调试优化的代码 282

9.6.2 可执行的优化类型 282

第10章 链接C代码 290

10.1 单步调用链接器 290

10.2 使用编译器的Shell程序调用链接器(-z选项) 291

10.3 禁用链接器(-c Shell选项) 291

10.4 控制链接过程 291

10.4.1 链接运行时支持库 292

10.4.2 指定初始化类型 292

10.4.3 指定段在存储器中的分配 293

10.4.4 链接器命令文件实例 294

第11章 TMS320LF240x的C语言 296

11.1 TMS320LF240x C语言的特点 296

11.2 数据类型 297

11.3 寄存器变量和全局寄存器变量 298

11.3.1 寄存器变量 298

11.3.2 创建全局寄存器变量 298

11.4 Pragma伪指令 299

11.5 初始化静态和全局变量 301

11.6 C语言和汇编语言混合编程 302

11.6.1 用C代码调用汇编语言模块 303

11.6.2 在C语言中插入汇编语句 304

11.6.3 在程序中访问汇编语言变量 305

11.6.4 修改编译器输出 306

第12章 运行时环境和支持库 307

12.1 存储器模式 307

12.1.1 段 307

12.1.2 C系统堆栈 308

12.1.3 分配.const到程序存储器 308

12.1.4 动态存储器分配 309

12.1.5 变量初始化 310

12.1.6 为静态和全局变量分配存储器 310

12.1.7 字符串常数 310

12.2 寄存器规定 311

12.2.1 状态寄存器的位 311

12.2.2 堆栈指针、帧指针和局部变量指针 312

12.3 函数结构和调用规定 312

12.3.1 函数如何进行调用 312

12.3.2 被调用函数如何响应 313

12.4.1 C语言中断的基本知识 314

12.4 中断处理 314

12.4.2 使用C中断程序 315

12.4.3 使用汇编语言中断程序 315

12.5 系统初始化 316

12.5.1 运行时堆栈 316

12.5.2 变量自动初始化 316

12.5.3 初始化表 316

12.5.4 运行时变量的自动初始化 317

12.5.5 在加载时变量的初始化 318

12.6 运行时支持库函数 319

12.6.1 库 319

12.6.2 头文件 320

13.1.1 主程序Exam2407.c 326

第13章 应用实例 326

13.1 对称PWM波形产生实例 326

13.1.2 中断向量表定义文件cvectors.asm 329

13.1.3 外设寄存器定义文件f2407C.h 330

13.1.4 链接器命令文件Exam2407C.cmd 335

13.2 产生锯齿波波形 336

13.2.1 主程序 336

13.2.2 包含程序DAC.h 340

13.2.3 包含程序ioreg.h 341

13.2.4 中断向量表定义vectors.asm 344

13.2.5 引导程序Boot2407.asm 345

13.2.6 链接器命令文件Saw_wave.cmd 349

附录 汇编指令索引 351

参考文献 353