打印

CSL库的一个例子分析

[复制链接]
4455|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
msblast|  楼主 | 2014-5-30 18:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 msblast 于 2014-5-30 21:17 编辑

先来看一个例子

代码1
CSL_FINST(osdRegs->VIDWINMD, OSD_VIDWINMD_VFF0, FRAMEMODE);
是什么意思呢?

在cslr.h中,CSL_FINST定义为
代码2
/* the Field INSert (Token) macro */
#define CSL_FINST(reg, PER_REG_FIELD, TOKEN)                                \
    CSL_FINS((reg), PER_REG_FIELD, CSL_##PER_REG_FIELD##_##TOKEN)
将代码1展开来
代码3
CSL_FINS((osdRegs->VIDWINMD),OSD_VIDWINMD_VFF0, CSL_OSD_VIDWINMD_VFF0_FRAMEMODE);
CSL_FINS的定义为
代码4
/* the Field INSert macro */
#define CSL_FINS(reg, PER_REG_FIELD, val)                                   \
    ((reg) = ((reg) & ~CSL_##PER_REG_FIELD##_MASK)                          \
    | CSL_FMK(PER_REG_FIELD, val))
将代码3继续展开
代码5
(((osdRegs->VIDWINMD))= (((osdRegs->VIDWINMD))&~CSL_OSD_VIDWINMD_VFF0_MASK) \
        |CSL_FMK(OSD_VIDWINMD_VFF0, CSL_OSD_VIDWINMD_VFF0_FRAMEMODE));
看CSL_FMK的定义
代码6
/* the Field MaKe macro */
#define CSL_FMK(PER_REG_FIELD, val)                                         \
    (((val) << CSL_##PER_REG_FIELD##_SHIFT) & CSL_##PER_REG_FIELD##_MASK)
将代码5展开,得最终表达式
代码7
(((osdRegs->VIDWINMD))= (((osdRegs->VIDWINMD))&~CSL_OSD_VIDWINMD_VFF0_MASK) \
        |(((CSL_OSD_VIDWINMD_VFF0_FRAMEMODE)<<CSL_OSD_VIDWINMD_VFF0_SHIFT)&CSL_OSD_VIDWINMD_VFF0_MASK);

在cslr_osd.h中
代码8
#define CSL_OSD_VIDWINMD_VFF0_MASK (0x00000002u)
#define CSL_OSD_VIDWINMD_VFF0_FRAMEMODE (0x00000001u)
#define CSL_OSD_VIDWINMD_VFF0_SHIFT (0x00000001u)
再来看看寄存器VIDWINMD的定义


将代码7简化
代码9
VIDWINMD= (VIDWINMD&~2)|((1<<1)&2);

因此,代码1的作用是将寄存器VIDWINMD的位域VFF0设置为FRAMEMODE。
三个参数分别为寄存器变量,寄存器位域,赋予位域的值。
评分
参与人数 1威望 +6 收起 理由
zhangmangui + 6 很给力!

相关帖子

沙发
zhangmangui| | 2014-6-1 23:31 | 只看该作者
非常感谢   很详细  

使用特权

评论回复
板凳
huangfeng33| | 2014-6-3 10:50 | 只看该作者
楼主提供的资料很详细,在学习ti的dsp的时候,不可避免的要遭遇到“CSL。感谢分享。

使用特权

评论回复
地板
6期待| | 2017-3-30 09:46 | 只看该作者
感谢楼主的详细讲解,对初学csl的我很有帮助~

使用特权

评论回复
5
selongli| | 2017-4-1 21:31 | 只看该作者
可以下载版主的C5000教程。

使用特权

评论回复
6
selongli| | 2017-4-1 21:34 | 只看该作者
CSL库应用比较简单。

使用特权

评论回复
7
gygp| | 2017-4-2 10:36 | 只看该作者
CSL库都来一个分析教材。

使用特权

评论回复
8
gygp| | 2017-4-2 10:43 | 只看该作者
9
mmbs| | 2017-4-2 21:36 | 只看该作者
CSL库其他实例应用呢

使用特权

评论回复
10
mmbs| | 2017-4-2 21:37 | 只看该作者
看看C5000的数据都是关于CSL库的

使用特权

评论回复
11
xiaoyaozt| | 2017-4-3 22:06 | 只看该作者
CSL还是用的不是很熟练。

使用特权

评论回复
12
xiaoyaozt| | 2017-4-3 22:13 | 只看该作者
都是根据代码进行修改设计的。

使用特权

评论回复
13
iyoum| | 2017-4-4 20:35 | 只看该作者
CSL_FINST什么含义?

使用特权

评论回复
14
iyoum| | 2017-4-4 20:39 | 只看该作者
CSL库定义不止这么多呢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

770

帖子

7

粉丝