Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37058
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-28 21:44
个人简介

因工作项目需要,决定以零linux基础开始做基于海思HI3520D的视频系统的开发,记录一下开发的过程。

文章分类

全部博文(17)

文章存档

2015年(17)

我的朋友

分类: LINUX

2015-02-06 10:16:22

     我拿到的这个开发板与海思的官方开发板有一点区别,模拟视频CVBS采集转为数字视频BT.656采用的芯片不同,官方板应该用的是TW2865,CX26828,ALC320等,我用这个板子AD是NVP1914,所以驱动程序不同。
    按照官方的SDK开发说明,首先要load3520D中的各类驱动模块.
 

点击(此处)折叠或打开

  1. insmod mmz.ko mmz=anonymous,0,0x84000000,186M:jpeg,0,0x8fa00000,5M anony=1 || report_error
  2.     insmod hiuser.ko
  3.     insmod hi3520D_base.ko
  4.     insmod hi3520D_sys.ko
  5.     insmod hi3520D_tde.ko g_u32TdeTmpBufW=800 g_u32TdeTmpBufH=600
  6.     insmod hi3520D_dsu.ko
  7.     insmod hi3520D_venc.ko
  8.     insmod hi3520D_group.ko
  9.     insmod hi3520D_chnl.ko
  10.     insmod hi3520D_h264e.ko
  11.     insmod hi3520D_rc.ko
  12.     insmod hi3520D_jpege.ko
  13.     insmod hi3520D_viu.ko
  14.     insmod hi3520D_vou.ko
  15.     insmod hi3520D_vpss.ko
  16.     insmod hi3520D_ive.ko
  17.     insmod hi3520D_vda.ko
  18.     insmod hi3520D_region.ko
  19.     insmod vcmp.ko
  20.     insmod hifb.ko video="hifb:vram0_size:8100,vram1_size:1620,vram2_size:1620,vram3_size:32" softcursor="off" u32VcmpBufNum=2
  21.     insmod hi3520D_vdec.ko
  22.     insmod hi3520D_vfmw.ko
  23.     insmod hi3520D_hdmi.ko
  24.     insmod jpeg.ko
  25.     
  26.     insmod extdrv/gpioi2c.ko
  27.     insmod extdrv/cx26828.ko > /dev/null
  28.     insert_audio
      修改上图27行,将cx26828.ko修改为nvp1914.ko。这样就加载了nvp1914的驱动模块。
     但是仅仅这样修改还是不行,因为在sample_vio.c中也使用了cx26828,TW2865的驱动进行视频丢失检测等操作,这些都需要注释掉。
     另外还需要将commom文件夹中sample_common.h和sample_vi.c中关于AD的内容,注释掉 cx26828,TW2865 的内容。另外我在编译的时候发现提示sample_audio.c文件中有错误,于是把这个文件中的ALC320内容也注释掉。
     编译成功了,./sample_vio 6,来选择输入模式:1*D1; VO:SD0(CVBS) SD Zoom,
     我使用视频测试仪接CVBS的模拟输出,发现没有图像。
      那就测试下VGA接口吧。./sample_vio 5 1*D1; VO:HD0(VGA) HD Zoom,用模拟VGA接口的显示器接开发板的VGA接口,这时显示器上显示出无法显示的分辨率,最优分辨率为1024×768.可能是设置输出的分辨率过高了,我接的显示器太老了吧。在sample_vio.c文件中看了一下,有设置输出分辨率的语句:
 

点击(此处)折叠或打开

  1. if(VIDEO_ENCODING_MODE_PAL == gs_enNorm)
  2.     {
  3.         stVoPubAttr.enIntfSync = VO_OUTPUT_1080P50;
  4.     }
  5.     else
  6.     {
  7.         stVoPubAttr.enIntfSync = VO_OUTPUT_1080P60;
  8.     }
    显然VGA的输出设置的分辨率为1080P50的,就是1920×1280@50hz刷新率的,显然太高了。另外注意3520D的VGA和HDMI的输出是同源的,所以这个分辨率显然是给HDMI接口用的高清的。我先是换了个高清的显示器,果然能够看到哦啊VGA输出,然后修改了output的分辨率,720P就可以,果然有变化,那这个VGA接口的输出是没问题的。
    下面就是CVBS的输出了。SDK里面的CVBS使用的都是
    VoDev = SAMPLE_VO_DEV_DSD0;  即CVBS0,但是怎么测都没有输出。改成VoDev = SAMPLE_VO_DEV_DSD1
,即CVBS1,则BNC的那个口有模拟视频输出,我的视频测试仪采集到了图像。
    难道那个莲花头的视频输出是CVBS0的?但是没有测到呀,这个问题存疑。
    另外还有个问题,hi3520D是直接带VGA和CVBS输出的,那么问题来了,难道HI3520D是集成DA的?也有可能吧。

     
     
阅读(5005) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~