DM8148视频采集EZSDK开发包中固件版本的说明

在使用达芬奇平台dm8148开发板进行视频处理的过程中,对EZSDK开发包中一些模块的使用产生了一些疑惑,在网上进行查找和源码追踪后对自己的理解简单的总结了一下;

首先是各个固件的使用


以上是DM8148的EZSDK的开发包的几个固件模块;8148的片子上集成了一个ARM核、一个DSP核、以及两个M3核(分别对应VPSS模块和hdvicp模块),可以看到HDVPSS的固件有两个。此外还有DDR容量不同的对应版本

首先贴出TI论坛上的解释:

https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/243527

ti814x_hdvpss_1G.xem3 is part of PSP package. dm814x_hdvpss.xem3 is part of EZSDK package.
EZSDK has different M3 firmware and utility to load M3 with PSP.
./slaveloader startup VPSS-M3 ti814x_hdvpss_1G.xem3 is the usage of PSP.
EZSDK use the below command:
./firmware_loader 2 dm814x_hdvpss.xem3 start
The HDVPSS binaries that present in the PSP package contain only the driver interfaces and not the full multimedia stack

(ti814x_hdvpss_1G.xme3 is pure M3 firmware and it does not support OMX).
The difference between dm814x_hdvpss.xem3 and dm814x_hdvpss_v4l2_xme3 is one control I2c from M3, the other does not.This is because  support two application stacks. One is OpenMax application and other is V4L2 based application.

So for OpenMax I2c is getting controlled through M3 and V4L2 I2C is controlled through A8. Thats why there is two binaries.
m814x_hdvpss.xem3:
    This is use for OpenMax application.  So user will use their application is OpenMax interface.This can NOT be used to use I2C from A8 during HDVPSS driver is working.
 dm814x_hdvpss_v4l2_xem3:
     This is use for V4L2 application.  So user will use their application is V4L2 interface.This can be used to use I2C from A8 during HDVPSS driver is working.
If you want to use only V4L2 capture + V4L2 display + fbdev than ti814x_hdvpss_1G.xem3 is fine,  if you want to use encode/decode or any of OpenMax components you need to use dm814x_hdvpss_v4l2.xem3 for V4L2 capture.

 

nfs的文件系统中/etc/rtC5中默认进入系统中加载的是load-hd-firmware.sh文件;先替换这个文件为load-hd-v4l2-firmware.sh;开始使用V4L2架构去调试;区别在与调用的HDVPSS的固件模块;

如果加载dm816x_hdvpss.xem3 对应与OMX的组件视频处理;没有单独加载视频解码驱动,视频芯片的驱动部分直接在M3核的源码中实现,看OMX实现的原理;

如果加载dm816x_hdvpss_V4L2.xem3 start对应V4L2架构对视频处理,要对应的加载相应的视频解码芯片驱动tvp7002.ko

 

所以从这个理解,顶层使用什么框架取实现视频的采集,是跟固件模块相关的,固件模块给它提供了支持;比如使用DM8127IPNC RDKMCFW的框架的一些函数,需要固件支持。

You will have to use dm8x4x_hdvicp.xem3 and dm814x_hdvpss.xem3 from EZSDK prebuilt.

 These two firmwares are omx firmware. If you want to use V4L2, you can use dm814x_hdvpss_V4L2.xem3.

 

比较固件挂载两个shell脚本文件的区别:

1、load-hd-v4l2-firmware.sh

firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 start -i2c 0

modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60 i2c_mode=0

2、load-hd-firmware.sh

firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss.xem3 start

modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60 i2c_mode=1

3、固件加载的工具:firmware_loader的使用参数

"<Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3 \n"

"-i2c 参数  0: i2c init not done by M3, 1(default): i2c init done by M3 \n");

不使用这个参数的时候,默认是i2c=1,m3核控制i2c配置外部的视频芯片,对应固件

dm814x_hdvpss.xem3;如果要使用dm814x_hdvpss_v4l2.xem3要配置i2c=0,此时A8控制i2c配置外围视频采集芯片。

简单总结为dm814x_hdvpss.xem3固件实现的是m3控制i2c及外围视频芯片,dm814x_hdvpss_v4l2.xem3是A8控制i2c

,需要加载相应的视频芯片的驱动tvp7002.ko

4、vpss加载的时候的参数i2c_mode

"control of i2c-based external video devices in A8 or M3, by default(0) it is on A8, a special fimrware is required\if control is on M3");

-I2c 0对应VPSSi2c_mode=0说明i2c init done by M3。默认的显示mode1080P

而使用OMX对应的VPSS的固件时,默认为1(i2c init done by M3)i2c_mode=1.


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值