IMX51+WINCE6.0平台缩写意义

1.以EPIT为例

EPIT(Enhanced Periodic Interrupt Timer)为增强型周期中断定时器,其中有CR控制寄存器,要设置CR寄存器的SWR位,代码如下:

// Assert software reset for the timer
    OUTREG32(&pEPIT->CR, CSP_BITFMASK(EPIT_CR_SWR));

其中CSP_BITFMASK宏定义如下:

#define CSP_BITFMASK(bit) (((1U << (bit ## _WID)) - 1) << (bit ## _LSH))

这里的bit就是EPIT_CR_SWR,结合宏定义,可知此宏定义相当于下面的定义:

#define CSP_BITFMASK(bit) (((1U << (EPIT_CR_SWR_WID)) - 1) << (EPIT_CR_SWR _LSH))

WINCE6.0 BSP包中大部分都是这样对寄存器进行操作,这里的WID是指SWR位的宽度(WIDTH),因为CR的SWR域只有一位,所以EPIT_CR_SWR_WID=1;EPIT_CR_SWR _LSH(LSH表示LEFT SHIT左移)表示CR寄存器SWR域在寄存器中的位置(CR[16]),所以EPIT_CR_SWR _LSH=16

在这方面,飞思卡尔在对寄存器控制代码比三星的规范,但要定义好很多宏。


原文地址:https://www.cnblogs.com/LoongEmbedded/p/5298599.html