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.

[参考译文] TDA2SX:Vision SDK 中在两个内核上运行的定制应用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1339496/tda2sx-custom-application-running-on-two-cores-in-vision-sdk

器件型号:TDA2SX

您好!

我的问题与 VISION SDK 开发相关。 我对 VISION SDK 中的算法开发了解不多。 但我知道如何开发自定义算法插件、在 VISION SDK 内部集成和运行、例如、仅涉及一个内核时、框架等具有相同的实现。 但目前还没有示例用例、说明我们集成了在不同内核上运行的算法插件。 物体检测和稀疏光流等大多数示例都具有 ALG 视觉接口。 其他诸如边沿检测的源代码是隐藏的。 我想知道如何在 VISION SDK 中实现这样的东西。  

Capture -> Alg1 (A15)-> Alg2 (DSP1)-> Display (显示)。

我需要 Alg1将一些数据、如一些参数以及视频帧缓冲区传递给 ALG 2。  

请帮助。

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

    您好!

    您可以始终 参考现有的帧复制算法实现、并实施您自己的算法。 实现列表并不是那么困难。 只需要实施少量 API 并需要分配输出缓冲区。 其余部分都是特定于链接/算法的 实现。

    此致、

    布里耶什

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

    我将尝试在这里报告我的问题。  

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

    当然、我会将该 TT 移至等待状态。 要重新打开它、只需点击"Reply"按钮。

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

    我的用例:

    UseCase:chains_vipSingleCameraCorrTracker

    Capture -> DUP_CAPTURE -> Merge _ALG (捕获-> DUP_CAPTURE ->合并)

    DUP_CAPTURE -> Alg_Corr (45g)-> Merge _ALG -> Sync_ALG (DSP1)-> Alg_Draw ingBox (DSP1)-> Display_ALG

    GrpxSrc -> Display_Grpx

    但是、当我运行用例时、我在执行时收到以下错误:

    算法:正在创建(algId = 15)!!!
    未处理的异常:
    Thschoclia Type_Task 发生异常
    A15中发生异常、异常类型为18
    句柄:0x89a43958。
    堆栈基地址:0x8a0b8b48。
    堆栈大小:0x8000。
    R0 = 0x8a08ec68 R8 = 0x89a7e33c
    R1 = 0x00000001 R9 = 0x00007100
    R2 = 0x89a7e338 R10 = 0x00000780
    R3 = 0x00000001 R11 = 0x8a0c0aac
    R4 = 0x89a7dd60 R12 = 0x00000000
    R5 = 0x8a08ec68 SP (R13)= 0x8986b478
    R6 = 0x00000000 LR (R14)= 0x89a719d4
    R7 = 0x89a7e450 PC (R15)= 0x8986b478
    PSR = 0x00007100
    DFSR = 0x00000a05
    IFSR = 0x00000000
    DFAR = 0x00000000
    IFAR = 0x00000000
    正在终止执行...

    ### XDC 生效-错误回调开始###

    e_dataAbort:PC = 0x8986b478、LR = 0x89a719d4。

    ### XDC 生效-错误回调结束###

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

    您好!

    最有可能  Alg_Corr 算法在创建时间内出现故障、请添加一些打印语句、以找出故障的确切位置。  

    此致、

    布里耶什

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

    解决了这个问题。 但我一直在试图传递一些数据从 Alg_Corr Alg_Draw  

    这是 correlationTrackerLink_algPlugin.c 的算法链接进程函数。 我正在使用一个名为 CorrTracker_outputlist 的结构、我打算将该结构作为元数据传递到下一个链接。 此结构的内容在 ALG 处理函数内设定。   

    CorrTracker_outputlist* pCorrOutput;
    pCorrOutput = (CorrTracker_outputlist*)pOutMetaBuf->bufAddr[0];
    
    status = Alg_CorrTrackerProcess(algHandle, (UInt8**)pVideoFrameInBuffer->bufAddr, pCorrOutput);
    UTILS_assert(status == SYSTEM_LINK_STATUS_SOK);

    接下来、在 drawBoundingBox_algPlugin.c 的过程函数下面。 我将从复合缓冲区中选择如下所示的数据:

    pDrawBoundingBoxObj->pCorrOutput = (CorrTracker_outputlist*)pCompositeBuffer->bufAddr[0][1];
    

    但问题是、当我在这里打印结构的内容时、它显示的值是零。 我尝试传递整数值仍然是个问题。 我缺少什么吗? 请注意、我的用例是:

    Capture -> DUP_CAPTURE -> Merge _ALG (捕获-> DUP_CAPTURE ->合并)

    DUP_CAPTURE -> Alg_Corr (45g)-> Merge _ALG -> Sync_ALG (DSP1)-> Alg_Draw ingBox (DSP1)-> Display_ALG

    GrpxSrc -> Display_Grpx

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

    您好!

    只是想知道这是否即将实现高速缓存。 在访问这些数据之前、您能否进行高速缓存操作、看看它是否有帮助?

    此致、

    布里耶什

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

    谢谢、我会看到这一方面。