TI中文支持网
TI专业的中文技术问题搜集分享网站

dm368 寄存器设置如何生效

最近遇到一个很棘手的问题。我在dm368的开发板上做开发,想改写encode demo想把编码数据用YCC16模式输出到video port的Y0~Y7上。但是将近一个月的努力,现在还是没解决问题。我先说一下我的方法:
由于encode demo中已经打开了video2设备,所以不能使用vid0或vid1,它们是相冲突的。所以,我打开了OSD0 window,并从pdf资料得知osd0是支持YUV422输入数据格式的。然后我设置了output是LCD,输出模式是NTSC,输入数据就是编码数据(把编码数据插入到Y信号位置),输出数据格式是YCC16。然后根据这些我设置了VPSS、OSD和VENC的很多相关寄存器,然后加到write.c的代码中去,并且也打开并初始化、设置了OSD0,奇怪的是运行时没有LCD_OE和VENC_CLK时钟信号,数据就更没有了。好像寄存器设置没起作用一样,不知道是什么原因,但是程序运行也没有报错,编码部分正常。所以我在这里想请教大家,怎么样使设置的OSD和VENC寄存器生效,另外怎样做才能产生LCD_OE和VENC_CLK时钟信号。希望有哪位前辈或TI工程师给我指点一下,帮帮我,非常急。我在这里给以后回复本帖的人表示非常感谢,谢谢你们提出的宝贵建议。

Chris Meng:

你好,

能否尝试encodedecode demo?把decode部分的解码去掉,把从encode编码后的数据直接送去显示模块?

qingsong liu:

回复 Chris Meng:

谢谢你的建议,我想我后面会试一试。我最近两天还是在encode下改了一下,现在寄存器设置生效了,可以产生venc_clk时钟信号,但是数据读进OSD0的两个buffer中却没有输出,我调用了ioctl中的FBIOPAN_DISPLAY来切换这两个buffer,但是没有任何数据输出。我想是不是和encode本身的display播放线程冲突了,display用的设备是/dev/video2,而我想用OSD0,所以可能会存在冲突,我再试试看能不能想办法解决。我想用encode demo主要是这个程序现在改了好多东西,也比较熟悉,所以想尽可能在这个demo的基础上修改。如果你还有其他建议,请您告诉我,再次谢谢您的回复。

赞(0)
未经允许不得转载:TI中文支持网 » dm368 寄存器设置如何生效
分享到: 更多 (0)