zoukankan      html  css  js  c++  java
  • C6000 CSL 函数说明

    转自:http://bbs.21ic.com/icview-741800-1-1.html

    先来看一个例子
    代码1

    1. CSL_FINST(osdRegs->VIDWINMD, OSD_VIDWINMD_VFF0, FRAMEMODE);
    2. 在cslr.h中,CSL_FINST定义为
      代码2
    1. /* the Field INSert (Token) macro */
    2. #define CSL_FINST(reg, PER_REG_FIELD, TOKEN)                               
    3.     CSL_FINS((reg), PER_REG_FIELD, CSL_##PER_REG_FIELD##_##TOKEN)

    将代码1展开来
    代码3

    1. CSL_FINS((osdRegs->VIDWINMD),OSD_VIDWINMD_VFF0, CSL_OSD_VIDWINMD_VFF0_FRAMEMODE);

    CSL_FINS的定义为
    代码4

    1. /* the Field INSert macro */
    2. #define CSL_FINS(reg, PER_REG_FIELD, val)                                  
    3.     ((reg) = ((reg) & ~CSL_##PER_REG_FIELD##_MASK)                         
    4.     | CSL_FMK(PER_REG_FIELD, val))

    将代码3继续展开
    代码5

    1. (((osdRegs->VIDWINMD))= (((osdRegs->VIDWINMD))&~CSL_OSD_VIDWINMD_VFF0_MASK)
    2.         |CSL_FMK(OSD_VIDWINMD_VFF0, CSL_OSD_VIDWINMD_VFF0_FRAMEMODE));

    看CSL_FMK的定义
    代码6

    1. /* the Field MaKe macro */
    2. #define CSL_FMK(PER_REG_FIELD, val)                                        
    3.     (((val) << CSL_##PER_REG_FIELD##_SHIFT) & CSL_##PER_REG_FIELD##_MASK)

    将代码5展开,得最终表达式
    代码7

    1. (((osdRegs->VIDWINMD))= (((osdRegs->VIDWINMD))&~CSL_OSD_VIDWINMD_VFF0_MASK)
    2.         |(((CSL_OSD_VIDWINMD_VFF0_FRAMEMODE)<<CSL_OSD_VIDWINMD_VFF0_SHIFT)&CSL_OSD_VIDWINMD_VFF0_MASK);

    在cslr_osd.h中
    代码8

    1. #define CSL_OSD_VIDWINMD_VFF0_MASK (0x00000002u)
    2. #define CSL_OSD_VIDWINMD_VFF0_FRAMEMODE (0x00000001u)
    3. #define CSL_OSD_VIDWINMD_VFF0_SHIFT (0x00000001u)

    再来看看寄存器VIDWINMD的定义
    vff0

    将代码7简化
    代码9

    1. VIDWINMD= (VIDWINMD&~2)|((1<<1)&2);

    因此,代码1的作用是将寄存器VIDWINMD的位域VFF0设置为FRAMEMODE。
    三个参数分别为寄存器变量,寄存器位域,赋予位域的值。

  • 相关阅读:
    为什么
    android自定义控件,其三个父类构造方法有什么区别
    MocorDroid编译工程快速建立编译环境
    通话挂断后如何提示用户通话时长
    incallui中如何查询联系人数据
    protected-broadcast的作用
    ubuntu12.04安装openjdk-7
    Android JNI的使用浅析
    android listen
    android:minSdkVersion的总结
  • 原文地址:https://www.cnblogs.com/ldjrl2013/p/3839651.html
Copyright © 2011-2022 走看看