您好:
我使用的DM365,在显示开机LOGO时,屏幕的右上角总是有一个闪烁的光标:蓝色的一个小条,白色的在一闪一闪的(其中在系统启动后没有屏幕显示时背景色就是蓝色的);在不显示LOGO,显示QT程序后,关闭QT程序,只有背景色(蓝色)的时候,在 屏幕的右上角仍然有这个闪烁的光标存在,显示QT程序时好像就没有了,这是怎么回事呢?
怎么去掉这个闪烁的光标呢?请各位大神多多指点,多谢了。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
你能否配置寄存器RECTCUR.RCACT=0 (off)看看是否有改善?
你好,
你能否读取OSDWIN1MD.OASW,看是否为1,也就是配置为Attribute window。如果是,将该值配置为0,并且disable OSD win1,看看是否有改善?
你好,
DM36x的OSD中共5个窗口,1个光标窗口,2个OSD窗口(一个可以配置为属性窗口),2个video窗口。你可以一个个关闭,看是谁的影响。
对了,当你设定寄存器后,请读回确认,确保没有被别的代码改掉。
还有uboot logo是如何使能的,你能否也分享一下,谢谢!
您好:
1、我试着将各个窗口使能进行了设置,其中2个video窗口(VIDWINMD)和光标串口(RECTCUR)寄存器读取值为0,为关闭状态;OSD1不管设置为属性窗口还是OSD窗口,均为关闭状态(值为0x8000,其中bit0为0);OSD0窗口(OSDWIN0MD)值为0x3039,关闭(bit0置0)后,LCD显示白屏;
2、寄存器设定后,我都进行了回读确认。这个是可以确定修改了没有效果的。
3、Uboot LOGO还没有添加,正打算添加这一部分,其中遇到如下问题:使用OSD0显示,LCD只能显示纯色,我想在一屏数据中显示不同的颜色,不能正常显示,这是哪里没有配置正确吗?配置见附件。
yx wang 说:1、我试着将各个窗口使能进行了设置,其中2个video窗口(VIDWINMD)和光标串口(RECTCUR)寄存器读取值为0,为关闭状态;OSD1不管设置为属性窗口还是OSD窗口,均为关闭状态(值为0x8000,其中bit0为0);OSD0窗口(OSDWIN0MD)值为0x3039,关闭(bit0置0)后,LCD显示白屏;
yx wang 说:3、Uboot LOGO还没有添加,正打算添加这一部分,其中遇到如下问题:使用OSD0显示,LCD只能显示纯色,我想在一屏数据中显示不同的颜色,不能正常显示,这是哪里没有配置正确吗?配置见附件。
你好,
代码里面的OSD0窗口的高位地址配置的是vid0的(OSD_VIDWINADH),而不是osd0的(OSDWINADH)。你使用的是OSD0,应该配置OSDWINADH。
Chris,您好:
非常感谢您的耐心回答!!!
1、针对“OSD1如果配置为属性窗口,设置OSDWIN1MD的bit0是无法关闭属性窗口的。必须配置OSD1为普通OSD窗口,才能关闭。请问你的ccs测试例子也有光标的问题么?”
谢谢您的解释,明白了,我按照你第一次说的那样,也就是配置OSD1为普通OSD窗口后关闭,是没有效果的。CCS测试例子还没有正确显示,不过在整屏显示一个颜色的时候(整屏显示不同颜色还没有调试出来)是没有这个闪烁光标显示的。
2、对于“请阅读以下DM36x VPBE user guide,里面提到了OSD窗口可以支持Bitmap, RGB565, RGB888+blend, YUV422。你的代码里面的配置是OSD_OSDWIN0MD = 0x2003;,也就是使用RGB565的格式。你是说无论你内存里面的值是多少,你显示都是一个颜色?是什么颜色?你的CCS里面VENC的配置,和你Linux下可以正常显示屏时候的VENC寄存器配置是否一致?”
LCD显示的不是同一个颜色,而是说,可以根据想指向的DDR区域写入不同的值,LCD就可以显示不同的数据(比如,填充数据0xF800则显示红色,填充数据0x07E0可以显示绿色,填充0x1F可以显示蓝色),但是LCD显示时是全屏都是一个颜色,即使我填充不同的数据在同一屏数据中(LCD大小为400X240,400X140填充0xF800,400X100填充0x0x07E0,则不会出现红色和绿色同时显示的场景);我在DM36x VPBE user guide下也没有找到具体这样的解释。
我最终是想要显示LOGO数据,添加到Uboot下面,使用OSD0显示,再按照附件中的VNEC相关的配置,这样可以实现吗?还是说要使用其他窗口(比如video)才能实现?有没有相关配置或者工程可以参考?我目前参考的是彩条输出工程,但是差别挺大的。
3、对于“代码里面的OSD0窗口的高位地址配置的是vid0的(OSD_VIDWINADH),而不是osd0的(OSDWINADH)。你使用的是OSD0,应该配置OSDWINADH。”
这个是没有问题的,只是头文件中名字写的有歧义,实际为
#define OSD_VIDWINADH *( volatile Uint32* )( OSD_BASE + 0x34 )
谢谢,期待您的回复。