请问dm365连接的LR430 LCD显示器对应的设备文件节点是哪个,有没有例程?谢谢
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.
谢谢!但是是否要在uboot里修改传递给内核的参数呢,因为我现在对/dev/fb0操作,只能在小电视(模拟LCD)上输出。
谢谢!但是是否要在uboot里修改传递给内核的参数呢,因为我现在对/dev/fb0操作,只能在小电视(模拟LCD)上输出。
为什么我的dm365只能在模拟LCD上输出,无法在数字LCD上输出?我已经设置了davinci_enc_mngr.ch0_output=LCD。
在boot参数中加上earlyprint initdebug debug_level=8通常会打印出来相应的设备信息
framebuffer是逻辑驱动,物理驱动是enc部分,具体还是看执行逻辑
Tuff Li您好:
我现在正在做DM365的数字LCD显示。在这个贴子里我看到了您大致的意思是把avnetlcd驱动编译进内核,然后再uboot驱动参数里加上或修改davinci_enc_mngr.ch0_output=LCD,此时数字LCD控制器就应该有可用信号输出了,至于LCD的型号不同可能需要修改对应驱动或者配置的参数。
我现在有以下几点疑问,还请你不吝赐教!
以上是我问题的描述,请您不吝赐教!定万分感谢!
谢谢!
这两个参数是encode和decode里面lcd显示时用到的
驱动可以修改kernel\drivers\media\video\davinci\logicpd_encoder.c
static struct logicpd_encoder_config logicpd_encoder_configuration = {
.no_of_outputs = LOGICPD_ENCODER_MAX_NO_OUTPUTS,
.output[0] = {
.output_name = VID_ENC_OUTPUT_LCD,
.no_of_standard = LOGICPD_ENCODER_GRAPHICS_NUM_STD,
.standards[0] = {
.name = VID_ENC_STD_640x480,
.std = 1,
.if_type = VID_ENC_IF_PRGB,
.interlaced = 0,
.xres = 800, //640,
.yres = 480,
.fps = {30, 1}, //{60, 1},
.left_margin = 85,
.right_margin = 70,
.upper_margin = 32,
.lower_margin = 11,
.hsync_len = 9,
.vsync_len = 9,
.flags = 0}, /* hsync -ve, vsync -ve */
....
您好:
让数字LCD液晶屏显示可能就需要这几个操作,我也找到了相关操作位置。但是我一直想弄通整个通路,比如模拟屏显示的时候应用程序davinci_display.c在初始化的时候打开了"dev/video2"设备,然后通过VPBE的encoder输出模拟视频。在数字LCD显示流程中应用层好像没有找到open设备文件“dev/fb/0”。
如果可以的话还请您简单叙述以下从应用层到驱动层整个大致流程。比如我理解的是驱动层会把uboot参数读入,然后进行配置,上层应用程序把准备好的数据放入指定buffer(encoder输入buffer)之后,encoder会把数据进行对应操作,而不需要fb/0之类的操作。如果方便请你大致列举一下各个流程对应的源文件。
非常感谢!!!
您好:
这段时间一直在看IPNC系统中对LCD液晶屏的显示,自己觉得对ipnc2.6中display流程有了更深一步的了解。
我现在能想到的有三种情况让数字LCD显示视频,不知道那种是最简单的或者可行的,请您指教。
1. 直接对dev/fb/0设备文件进行操作
如果我直接打开dev/fb/0设备文件操作该设备(其实是fbmem.c实现的framebuffer设备驱动),是不是就对数字液晶屏进行了操作(这种方法跳过了V4l2)?这些操作需要输入的视频格式是什么样的?可以是avserver最终给display的YUV422格式的吗?输出默认是不是PRGB565格式的?
如果是这种方法的话我只需要想办法直接把avserver中display线程的YUV422格式的视频数据一帧一帧写入framebuffer中就行了。
2. 对现有系统代码进行修改
这时需要对avserver已经实现了的模拟LCD流程进行修改,这时会用到V4l2设备驱动(videodev.c文件实现)。比如把layer由原来的VID0改为OSD0等。
如果是这样的话我需要在应用层设置一些VPBE中encoder的寄存器吗?比如输入格式为YUV422,输出格式为RGB565等等,或者其他的一系列操作?
3. 最简单的方法
就像以前咱们讨论的只需要把avnetlcd等模块编译进内核、把uboot参数做简单那的修改、程序部分只需要修改一下分辨率?
如果是这样的话是不是avserver中display线程把现有的YUV422格式的视频数据进行现有的操作,入队V4L2中就行了?以下的工作就由已实现对应的模块做格式转换,由LCD控制器产生时序等等?
如果您现在工作挺忙,您明示以下这三种方法的哪一种就行。
真诚的感谢您作出解答,谢谢!
此致
敬礼!
您好,按照上面讲的,我将encode demo进行了修改,现在LCD上面有东西输出,但是发现画面色彩不正常,感觉像是实际正常视频上面叠加了一层彩色的影子,影子框架的颜色是绿色或者紫色。不知道是什么问题导致的,RGB线序应该没错,因为开机启动过程中画面颜色都是很正常的,不知道您LCD配置有木有成功,希望能解答!
此致
敬礼