原创 IER和IFR在CCS中的定义

2011-5-26 12:49 10437 10 11 分类: 处理器与DSP
看源程序(TMS320F2812)的时候在main函数中看到这样一段:
 // Disable and clear all CPU interrupts:
 DINT;
 IER = 0x0000;
 IFR = 0x0000;
就想看看这个IER和IFR的地址,结果找来找去都找不到,只在Device.h中有这样两段:
extern cregister volatile unsigned int IFR;
extern cregister volatile unsigned int IER;
就感觉很奇怪呀,没有地址怎么操作呀?所以上网查了查,才知道答案了。
在官方资料中(TMS320C28x Optimizing C/C++ Compiler.pdf)中有这样的说明:
The compiler extends the C/C++ language by adding the cregister keyword to allow high level language access to control registers.When you use the cregister keyword on an object, the compiler compares the name of the object to a list of standard control registers for the C28x (see Table 6-2 ). If the name matches, the compiler generates the code to reference the control register. If the name does not match, the compiler issues an error.
Table 6-2. Valid Control Registers
------------------------------------
Register              Description
------------------------------------------
IER Interrupt         enable register
IFR Interrupt         flag register
To use the control registers in Table 6-2 , you must declare each register as follows. The c28x.h include file defines all the control registers through this syntax:
extern cregister volatile unsigned int register ;
原来这两个寄存器是可以用关键字cregister定义的寄存器,定义之后就可以直接调用了。
你可以先定义一个头文件,专门定义这个变量(实际就是相应的寄存器),
然后在相应的c源代码中直接引用这些变量了。
PS:貌似在DSP62XX系列中有更多这样的寄存器AMR,IAR,IER,ICR

文章评论1条评论)

登录后参与讨论

用户377235 2014-7-30 12:53

谢谢您,受教了!

用户1715008 2008-5-28 00:07

受益匪浅
相关推荐阅读
用户564791 2014-03-13 10:26
二维数组传参
        二维数组的存储方式是和一维数组没什么区别,但是用二维数组做参数,它的形参该怎样写?要注意的是:函数中的形参其实就相当于一个声明,并不产生内存分配,形参的目的就是要让编译器知道函数参...
用户564791 2014-01-14 17:15
JLINKV8更新固件后下载程序导致MDK5.0关闭解决方法及Jlink无法识别修复方法
1.JLINK更新固件后,在MKD5.0上将程序downLoad到板子后,MDK5.0直接自动关闭解决方法: 用SEGGER安装目录下的JLinkARM.dll替换掉MDK安装目录下./ARM...
用户564791 2014-01-02 17:31
STM32 CAN过滤器设置(1)
1 前言          在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)...
用户564791 2013-10-31 00:04
TI 图形驱动库使用心得(转)
Stellaris图形库分成了三层,分别是: (1) 显示驱动层 (Display Driver Layer)   (2) 基本图形层 (...
用户564791 2013-09-19 16:28
sourceInsight基础教程
  SourceInsight,从软件的英文名字上来解读就是“深入到源代码”,该软件只具有代码的阅读、编辑和...
用户564791 2013-09-16 22:16
C30编译器使用UART2实现printf的串口输出(转载)
    在C30中,可以用printf函数,将数据输出到串口。很多PIC24/PIC30/PIC33单片机有两个串口,但是默认情况下,数据是输出到串口1的,怎样将printf输出到串口2呢...
我要评论
1
10
关闭 站长推荐上一条 /2 下一条