uryyywerw 发表于 2019-2-20 10:36
加载后,会运行的,这部分你可以看firmware loader的代码,参考下http://blog.csdn.net/crushonme/article/details/10287693 loader部分说明,在dvrrdk中在运行后是会给HOST端发送一个字符 's',来确认slave已经在跑程序了。你这个不知道行不行,看了下程序,貌似用了vps_printf,这个程序是需要先运行remote_debug的。
D ...
Robin,我用fw_load.out加载了这个固件,运行情况如下:
root@dm816x:/opt/dvr_rdk/ti816x# bin/fw_load.out startup VPSS-M3 hdvpss_examples
_captureVip_m3vpss_debug.xem3
Attached to slave procId 2.
Loaded file hdvpss_examples_captureVip_m3vpss_debug.xem3 on slave procId 2.
Started slave procId 2.
After Ipc_loadcallback status [0x00000000]
After Ipc_startcallback status [0x00000000]
root@dm816x:/opt/dvr_rdk/ti816x#
好像还没有从main()函数开始运行,是否还需要别的方法来启动这个demo程序呢?
另外,还有个问题想问问你,我看过你的这篇csdn的文章了,里面有提到输入分Single Channel和Multi Channe两种方式,Multi模式应该指的是像tvp5158这种可以通过一个输入端口(例如port0 A口或者port0B口)采集到将四路输入合并到一个平面上视频源吧?如果是我理解的这样,那是不是说如果prot0A、B和Prot1A、B各种接入一个8bit一路输入源,其模式就是Single Channel模式吗?
在dvrrdk中,有定义几个传入到HDVPSS xem3固件中的参数,这些参数是用来告诉HDVPSS输入源的模式的,几种模式如下:
/**
* brief Video capture operation mode
*/
typedef enum
[
VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC = 0,
/**< Single Channel non multiplexed mode */
VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_LINE_MUX_EMBEDDED_SYNC,
/**< Multi-channel line-multiplexed mode */
VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC,
/**< Multi-channel pixel muxed */
VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VBLK,
/**< Single Channel non multiplexed discrete sync mode with HSYNC and
VBLK as control signals. */
VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC,
/**< Single Channel non multiplexed discrete sync mode with HSYNC and
VSYNC as control signals. */
VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VBLK,
/**< Single Channel non multiplexed discrete sync mode with ACTVID and
VBLK as control signals. */
VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VSYNC,
/**< Single Channel non multiplexed discrete sync mode with ACTVID and
VBLK as control signals. */
VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_LINE_MUX_SPLIT_LINE_EMBEDDED_SYNC,
/**< Multi-channel line-multiplexed mode - split line mode */
VPS_CAPT_VIDEO_CAPTURE_MODE_MAX
/**< Maximum modes */
] Vps_CaptVideoCaptureMode;
我看了dvrrdk中,如果输入源是tvp5158,他们用的参数是VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC,如果是16bit的输入,例如tvp7002、sil9135,它们用的就是VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC。假如说我现在要通过
prot0B 口(不是A口)采集一路来自tvp5147 8bit(或者8bit的高清输出decode)的输入源,那我这个定义应该选择哪一个呢?