第3章tms320f2812外设的c语言程序设计fuxyu.pptVIP

  • 8
  • 0
  • 约5.64千字
  • 约 17页
  • 2018-07-08 发布于湖北
  • 举报

第3章tms320f2812外设的c语言程序设计fuxyu.ppt

第3章tms320f2812外设的c语言程序设计fuxyu

第3章 TMS320F2812外设的C语言程序设计 学习重点 掌握CCS工程文档的基本结构、功能及特点。 掌握采用结构体 、共用体和位定义实现对DSP外设寄存器的结构定义和管理。 CCS中CMD文件的功能、定义。 如何对寄存器进行配置。 * 课程内容 CCS工程文档结构介绍; 利用传统的#define方法定义DSP寄存器; 利用位定义、结构体和共用体定义DSP寄存器; 举例说明。 * 1. CCS工程文档结构介绍; * 在CCS中调试程序的一般步骤 打开 volume1 文件夹内的 Volume1.pjt(系统自带的程序)。 点击 编译工具栏的 rebuild all 按钮,开始编译工程 volume1.pjt。 下载编译结果到DSP开发板。 执行程序。 * 在CCS中调试程序的一般步骤 如何设置断点 单步调试 Source-single step 就是按一下,走一步的模式。 Source-step over 这个按钮是指在单步执行时,如果在函数内遇到子函数,则不会进入子函数内单步 执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。 Source-step out 当单步执行到子函数内时,用 step out 就可以执行完子函数余下部分,并返回到上 一层函数。 如何使用 watch window 其他一些操 Go main Set PC to cursor * 在CCS中调试程序的一般步骤 统计代码运行时间 点击菜单栏中的“Profile”“Clock””Enable”,来使能 Clock功能。接下来点击“Profile”“Clock”“View”, 在 CCS 最下面会出现一个类似于秒表的工具,旁边显示数字“0”,通过设置断点观察始终数字的变化。 * 2. 利用传统的#define方法定义DSP寄存器 首先定义各寄存器的符号及其对应的入口地址; #define SCICCRA(volatile Uint16 *) 0x7050 #define SCICTRL1A(volatile Uint16 *) 0x7051 …… 利用指针形式访问寄存器; *SCICTL1A=0x0003; *SCICTL1B|=0x0001; * 传统的#define方法定义DSP寄存器优缺点 优点: 定义简单、快速、容易分类; 直接采用寄存器的名字进行定义,易于操作。 缺点: 对寄存器的位操作比较困难; 不利于在CCS内跟踪调试; * 3. 利用位定义、结构体和共用体定义DSP寄存器; 在头文件中定义各寄存器结构体及其变量; 使用DATA_SECTION将寄存器变量映射到相应物理地址空间; 在CMD文件中定义各区段物理地址及长度; 通过寄存器结构体变量访问相应寄存器。 * 在头文件中定义各寄存器结构体及其变量 在DSP28_Sci.h文件中实现 struct SCICTL1_BITS { // bit description Uint16 RXENA:1; // 0 SCI receiver enable Uint16 TXENA:1; // 1 SCI transmitter enable Uint16 SLEEP:1; // 2 SCI sleep Uint16 TXWAKE:1; // 3 Transmitter wakeup method Uint16 rsvd:1; // 4 reserved Uint16 SWRESET:1; // 5 Software reset Uint16 RXERRINTENA:1; // 6 Recieve interrupt enable Uint16 rsvd1:9; // 15:7 reserved }; union SCICTL1_REG { Uint16 all; struct SCICTL1_BITS bit; }; * 在头文件中定义各寄存器结构体及其变量 struct SCI_REGS { union SCICCR_REG SCICCR; // Communications control register union SCICTL1_REG SCICTL1; // Control register 1 Uint16 SCIHBAUD;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档