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.

[参考译文] 使用 FRAMECOPY ALG

Guru**** 2387870 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1498403/use-framecopy-alg

器件型号:TDA3XEVM

工具/软件:

我创建了下面的用例并使其正常工作、但收到链接错误。 tda3 isscapture 是否不支持帧复制?

IssCapture -> Alg_Frame 复制(DSP1)-> Display_Video //IPU1_0
GrpxSrc  -> Display_Grpx
但以下面的用例工作
IssCapture  -> Alg_Color ToGray (DSP1) -> Display_Video  //IPU1_0

GrpxSrc -> Display_Grpx

[IPU1-0]      3.933538 s:  ISSCAPTURE: Create in progress !!!
[IPU1-0]      4.094156 s:  ISSCAPTURE: Create Done !!!
[IPU1-0]      4.094400 s:  IPC_OUT_0   : Create in progress !!!
[IPU1-0]      4.094674 s:  IPC_OUT_0   : Create Done !!!
[IPU1-0]      4.096809 s:  Assertion @ Line: 159 in /home/server/work/TI/TDA3/PROCESSOR_SDK_VISION_03_08_00_00/vision_sdk/apps/src/rtos/usecases/csi2_cal_multi_cam_view/chains_csi2CalMultiCam_priv.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
[IPU1-0]      4.097907 s:  Assertion @ Line: 159 in /home/server/work/TI/TDA3/PROCESSOR_SDK_VISION_03_08_00_00/vision_sdk/apps/src/rtos/usecases/csi2_cal_multi_cam_view/chains_csi2CalMultiCam_priv.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
[DSP1  ]      4.094979 s:  IPC_IN_0   : Create in progress !!!
[DSP1  ]      4.095864 s:  IPC_IN_0   : Create Done !!!
[DSP1  ]      4.096260 s:  ALGORITHM: Create in progress (algId = 0) !!!
[DSP1  ]      4.096565 s:  ALGORITHM: Create Done (algId = 0) !!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kim

    它应该(但不确定)您能否 检查配置文件以查看是否启用了此链接?  

    此致、

    Brijesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    您说的是哪个配置文件?

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kim:

    TDA3x_EVM 用例特定配置文件。  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    csi2_cal_multi_cam_view:

    ALG_framecopy=yes
    
    NEED_PROC_IPU1_0=yes
    
    ifeq ($(SOC),tda2ex)
    NEED_PROC_IPU1_0=yes
    endif
    

    tda3xx_evm_bios_all:

    #
    # Modules are split into,
    # - Use-cases specified in uc_cfg.mk
    # - Other system config/feature, specified in this file
    #
    # Any specific overrides are also specified in this file
    # Example, for TDA3x SoC EVE2/3/4 are not present and hence force marked as <blank>, i.e disabled
    #
    
    #
    # Additional config options
    #
    
    #
    # CPUs to included in build
    #
    PROC_IPU1_0_INCLUDE=yes
    PROC_IPU1_1_INCLUDE=no
    PROC_DSP1_INCLUDE=yes
    PROC_DSP2_INCLUDE=no
    PROC_EVE1_INCLUDE=no
    
    
    VSDK_BOARD_TYPE=TDA3XX_EVM
    
    #Enable SMP on IPU1
    IPU1_SMP_BIOS=no
    
    # Supported values: DDR_MEM_512M DDR_MEM_128M
    DDR_MEM=DDR_MEM_512M
    
    # Supported values: ipu1_0 ipu1_1 none
    NDK_PROC_TO_USE=none
    
    #Used to control TFDTP stack (supported values: yes no)
    NSP_TFDTP_INCLUDE=no
    
    #Enable IPv6 Support
    NDK_ENABLE_IPV6=no
    
    # Supported values: ipu1_0 none
    FATFS_PROC_TO_USE=ipu1_0
    
    #
    # Used to control building of algorithm source.
    # By default algorithm source not included in Vision SDK
    #
    BUILD_ALGORITHMS=no
    
    ALG_framecopy=yes
    
    #

    此文件是否正确?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jadav

    配置是否有问题?

    在 framecopy 示例中、似乎您使用的是捕获块、而不是 isscapture。

    帧复制是否可以与通过 VIP 传输的数据一起使用?

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    是的、这是正确的、但根据此帧、Copy Algo 已启用。

    ALG_framecopy=yes

    那么、您能否请检查它在用例中到底发生故障的位置? 哪项陈述? 您是否在此用例中使用 frameCopy Algo (csi2CalMultiCam)?

    [IPU1-0]   4.096809 s: 断言@行:159在/home/server/work/TI/TDA3/PROCESSOR_SDK_VISION_03_08_00_00/vision_sdk/apps /sci2/cal_multi_cam_view/chains_csi2CalMultiCam_priv.c 中 src:159在中:system_link_status_sok:failed!!

    此致、

    Brijesh  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    帧副本中可能存在不正确的格式。 通常情况下、iss 采集以原始格式输出数据、我不确定帧复制算法是否支持此格式。 您需要使用 ISP 转换此数据。 或者使用 iss capture 捕获 YUV 数据。

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    在基本示例 csi2CalMultiCam 中添加了帧复制 ALG。

    下面的第159行似乎发生了错误。

    摄像机格式为 YuYV。

    已确认彩色 ALG 工作正常。

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kim:

    不确定、因此您能否使用 JTAG+CCS 连接到 DSP 内核并将断点放置在帧复制算法的创建函数上、看看它返回错误的位置?  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我不熟悉如何使用 CCS。

    我将固件上传到 DSP 内核、但不知道如何在算法代码中放置断点。

    您能告诉我如何操作吗?

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    不确定您是否有板载 JTAG 连接、那么能否先检查您是否有 JTAG?  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然可以

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、请连接到 DSP 内核、将断点放置在帧复制算法的创建 API 上、然后运行用例、请查看创建 API 返回错误的位置。  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    [IPU1-0]      3.591044 s:  
    [IPU1-0]      3.591776 s:  ISSCAPTURE: Create in progress !!!
    [IPU1-0]      3.752668 s:  ISSCAPTURE: Create Done !!!
    [IPU1-0]      3.752943 s:  IPC_OUT_0   : Create in progress !!!
    [IPU1-0]      3.753187 s:  IPC_OUT_0   : Create Done !!!
    [IPU1-0]      3.754132 s:  Assertion @ Line: 159 in /home/server/work/TI/TDA3/PROCESSOR_SDK_VISION_03_08_00_00/vision_sdk/apps/src/rtos/usecases/csi2_cal_multi_cam_view_canlab/chains_csi2CalMultiCam_Canlab_priv.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
    [IPU1-0]      3.755200 s:  Assertion @ Line: 159 in /home/server/work/TI/TDA3/PROCESSOR_SDK_VISION_03_08_00_00/vision_sdk/apps/src/rtos/usecases/csi2_cal_multi_cam_view_canlab/chains_csi2CalMultiCam_Canlab_priv.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
    [DSP1  ]      3.753400 s:  IPC_IN_0   : Create in progress !!!
    [DSP1  ]      3.753736 s:  IPC_IN_0   : Create Done !!!
    [DSP1  ]      3.753949 s:  ALGORITHM: Create in progress (algId = 0) !!!
    [DSP1  ]      3.754010 s: maxWidth : 1048575 maxHeight :0
    [DSP1  ]  
    [DSP1  ]      3.754041 s: pPrevChInfo->width : 640 maxWidth : 1048575 pPrevChInfo->height : 480, maxHeight :0
    [DSP1  ]  
    [DSP1  ]      3.754071 s:  ALGORITHM: Create Done (algId = 0) !!!
    

    我检查了那部分发生了一个错误,当我打印出来时,它似乎有一个奇怪的值。

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正确传递帧复制参数值后、这次出现如下所示的错误。

    [IPU1-0]  Enter Choice: 
    [IPU1-0]  
    [IPU1-0]      2.494479 s:  
    [IPU1-0]      2.495180 s:  ISSCAPTURE: Create in progress !!!
    [IPU1-0]      2.655889 s:  ISSCAPTURE: Create Done !!!
    [IPU1-0]      2.656133 s:  IPC_OUT_0   : Create in progress !!!
    [IPU1-0]      2.656438 s:  IPC_OUT_0   : Create Done !!!
    [DSP1  ]      2.656621 s:  IPC_IN_0   : Create in progress !!!
    [DSP1  ]      2.656957 s:  IPC_IN_0   : Create Done !!!
    [DSP1  ]      2.657170 s:  ALGORITHM: Create in progress (algId = 0) !!!
    [DSP1  ]      2.657231 s: maxWidth2 : 640 maxHeight :480
    [DSP1  ]  
    [DSP1  ]      2.657262 s: pPrevChInfo->width : 640 maxWidth : 640 pPrevChInfo->height : 480, maxHeight :480
    [DSP1  ]  
    [DSP1  ]      2.657262 s: pPrevChInfo->width : 640 maxWidth : 640 pPrevChInfo->height : 480, maxHeight :480
    [DSP1  ]  
    [DSP1  ]      2.657292 s: pPrevChInfo->width : 640 maxWidth : 640 pPrevChInfo->height : 480, maxHeight :480
    [DSP1  ]  
    [DSP1  ]      2.657323 s: pPrevChInfo->width : 640 maxWidth : 640 pPrevChInfo->height : 480, maxHeight :480
    [DSP1  ]  
    [DSP1  ]      2.657384 s:  ALG_FRAMECOPY: DMA: Allocated CH (TCC) = 0 (0)
    [DSP1  ]      2.662294 s:  Assertion @ Line: 420 in algorithmLink_algPluginSupport.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
    [DSP1  ]      2.662416 s:  Assertion @ Line: 420 in algorithmLink_algPluginSupport.c: status == SYSTEM_LINK_STATUS_SOK : failed !!!
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我发现 AlgorithmLink_putEmptyOutputBuffer 中发生错误、当 chid 变为1时发生错误。

    所以我将 for loop channeid 固定为0、这样有效。

    您能告诉我原因是什么吗?

        for(channelId =0 ; channelId < 1; channelId++)
        {
          for(frameIdx = 0;
              frameIdx < pFrameCopyObj->algLinkCreateParams.numOutputFrames;
              frameIdx++)
          {
            pSystemBuffer           =
                                 &(pFrameCopyObj->buffers[channelId][frameIdx]);
            pSystemVideoFrameBuffer =
                                 &(pFrameCopyObj->videoFrames[channelId][frameIdx]);
    
            /*
             * Properties of pSystemBuffer, which do not get altered during
             * run time (frame exchanges) are initialized here
             */
            pSystemBuffer->payload     = pSystemVideoFrameBuffer;
            pSystemBuffer->payloadSize = sizeof(System_VideoFrameBuffer);
            pSystemBuffer->bufType     = SYSTEM_BUFFER_TYPE_VIDEO_FRAME;
            pSystemBuffer->chNum       = channelId;
    
            memcpy((void *)&pSystemVideoFrameBuffer->chInfo,
                   (void *)&pOutputQInfo->queInfo.chInfo[channelId],
                   sizeof(System_LinkChInfo));
    
            /*
             * Buffer allocation done for maxHeight, maxWidth and also assuming
             * worst case num planes = 2, for data Format SYSTEM_DF_YUV422I_YUYV
             * run time (frame exchanges) are initialized here
             */
            pSystemVideoFrameBuffer->bufAddr[0] = Utils_memAlloc(
                                               UTILS_HEAPID_DDR_CACHED_SR,
                                               (maxHeight*(pFrameCopyObj->pitch)*2),
                                               ALGORITHMLINK_FRAME_ALIGN);
    
            /*
             * Carving out memory pointer for chroma which will get used in case of
             * SYSTEM_DF_YUV422SP_UV
             */
            pSystemVideoFrameBuffer->bufAddr[1] = (void*)(
                (UInt32) pSystemVideoFrameBuffer->bufAddr[0] +
                (UInt32)(maxHeight*(pFrameCopyObj->pitch))
                );
    
            UTILS_assert(pSystemVideoFrameBuffer->bufAddr[0] != NULL);
    
            AlgorithmLink_putEmptyOutputBuffer(pObj, outputQId, pSystemBuffer);
          }
        }

    此致、

    Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kim:

    但您是否在多通道模式下使用链路? 如果不是、则 channelId 不应超过1。  

    此致、

    Brijesh