paradoxfx

【原创】TI C2833x介绍---外设寄存器的头文件(4)

0
阅读(4703)

以前在使用TMS320LF2407A这样的芯片的时候,大家在一个新工程的开始往往都会去找一个叫“tms320lf2407.h”的头文件,几乎所有例程的开头你都会看到,因为它采用传统的方法定义了DSP的所有的外设、寄存器的地址。后来TMS320F2812刚刚推出来的时候,我记得论坛里面也有人在寻找和发布一个包含F2812 DSP全部外设、寄存器等等的头文件。文件的长度是惊人的,因为随着器件配置水平的不断提高,外设与寄存器的数量也显著增加了。幸好TI发布了头文件配置与外设例程,比如《C2833x/C2823x C/C++ Header Files and Peripheral Examples Quick Start》这样的文档以及配套的工程文件,在TI网站各个型号的产品文件夹下面都有免费的下载。看完这个五十页左右的文档,就对编程的基本架构有了了解,然后对着各个外设的说明文档,跑一下相应的例子,试着调试看看,很快就可以上手了。

这里总结一下DSP2833x头文件的内容,主要包括:

  1. 所有外设的名字(例如CpuTimer0Regs,一般是每个单词的首字母大写)、结构(包含那些控制寄存器、状态寄存器、输入输出端口)
  2. 所有的寄存器名字(例如TCR, TIM, TPR,一般是全部大写字母
  3. 寄存器各个位的说明(例如POL, TOG, TSS,一般是全部大写字母
  4. 寄存器的地址

举例说明,即如下的结构

PeripheralName.RegisterName.all// Access full 16 or 32-bit register

PeripheralName.RegisterName.half.LSW// Access low 16-bits of 32-bit register

PeripheralName.RegisterName.half.MSW// Access high 16-bits of 32-bit register

PeripheralName.RegisterName.bit.FieldName// Access specified bit fields of register

外设的名字、寄存器的名字在每个外设对应的头文件中可以找到,一般情况下和datasheet里面是一一对应的,但是在早期发布的外设与头文件包中可以存在一定的差异,所以如果在CCS中编译的时候提示找不到寄存器,或者感觉程序里面的寄存器名字与datasheet不一致时,最好的办法是在头文件里面对一下寄存器的地址,因为这是不会改变的。