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.

怎么样在AM3894上使用DVR_RDK?

Other Parts Discussed in Thread: AM3894

AM3894和DM8168是pin to pin的关系,但是实际上AM3894相对DM8168缺少DSP,所以DVR_RDK需要做一定的修改才能在AM3894上使用,请问专家应该如何修改呢?目前使用DM8168的demo在AM3894上运行会有如下打印:

[m3vpss ]  22037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  23037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  24037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  25037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  26037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  27037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  28037: SYSTEM: Attaching to [DSP] ...
 [m3vpss ]  29037: SYSTEM: Attaching to [DSP] ...

期待您的回答,谢谢

  • 直接用am3894的sdk吧:

    http://www.ti.com/product/AM3894/toolssoftware

  • 要把所有可能用到DSP的组件移除,比如scd,osd, swms等等。。。

    没试过,good luck!

    可是你为啥要用DVRRDK 在这个片子上呢?看中它什么feature?

    BR,

    Eason

  • 之前一直使用DM8168,用DVR_RDK开发套件用顺手了,想到AM3894与DM8168管脚兼容,但是只缺少DSP,尝试在DVR_RDK中去掉DSP相关的IPC等等,不知道行不行啊?有人这么用过吗?我感觉前面也是困难重重,但是不是我决策啊,没办法。。。

  • 还是建议用自身的SDK,这样会省很多麻烦,如果直接用DM8168的DVR_RDK,潜在不确定风险太大

  • I am trying to help...

    DM816x和AM389x应该不仅限于DSP, 还包括HDVICP等,需要具体看器件的框图到底有何不同。以下是其他同事的comment:

    DVRRDK does not support AM389x. It would require some changes to get DVRRDK functional on AM389 which doesn't have HDVICP .At minimal you have to disable loading of Video M3 and disable IPC with video M3. There could be additional issues you will face as we have never tried dvrrdk on AM389x.


    BR,

    Eason

  • 另外一个建议是,请直接用DM8168吧。。。

  • 我给你先讲我这系统是怎么架构的:

    1、AM3984一片 + 2片C6678

    2、AM3894负责视频的采集和显示

    3、两片C6678负责编码和解码,AM3894与C6678通过PCIE通信;

    所以我想,AM3894只负责采集,那么我只需m3vpss就够了,HDVICP和DSP都用不到;

    基于以上应用场景,我将DVR_RDK进行了如下改造:

    1、DVR_RDK的system_common.h中修改

    #define SYSTEM_IPC_ENABLE_PROC_ID {\
    SYSTEM_PROC_HOSTA8, \
    SYSTEM_PROC_M3VIDEO, \
    SYSTEM_PROC_M3VPSS, \
    SYSTEM_PROC_MAX /* Last entry */ \
    }

    去掉了其中的SYSTEM_PROC_DSP

    那么有关DSP的核间通信都去掉了

    2、启动脚本中

    ./load_vpss.sh
    ./load_video.sh
    #./load_c6xdsp.sh
    ./osa_kermod_load.sh

    ./wait_cmd.sh s m3vpss ${REMOTE_DEBUG_ADDR}
    #./wait_cmd.sh s m3video ${REMOTE_DEBUG_ADDR}
    #./wait_cmd.sh s c6xdsp ${REMOTE_DEBUG_ADDR}

    注释掉了下面三条:

    #./load_c6xdsp.sh 这个应该是发起DSP相关进程的

    #./wait_cmd.sh s m3video ${REMOTE_DEBUG_ADDR}  这个不知道干什么用的?

    #./wait_cmd.sh s c6xdsp ${REMOTE_DEBUG_ADDR} 这个也不知道干什么用的?

    3、在system_linkApi.c中将system_linkControl函数进行了修改,凡是与DSP通信的调用一律直接返回,

    原因的我在跑应用的时候linux内核打印oops信息,显示syslink模块挂了,修改后正常了。

    最后,今天下班前用我新规划的chain采集到yuv图像数据了,接下来就是将这些yuv通过PCIE传输给C6678编码,

    专家看这样的应用还有什么问题,我想DVR_RDK在这样的应用场景下应该可以发挥作用。