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.

[参考译文] RTOS:Vision SDK -在管线 VID1 &放大器之间切换;GFX1

Guru**** 2609285 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/654159/rtos-vision-sdk---switching-between-pipelines-vid1-gfx1

工具/软件:TI-RTOS

大家好、

我们使用的是 Fra7xx 定制板和 Vision SDK 3d.1。

我们 计划在   VID1流水线中使用摄像头、 在 GFX 流水线中使用图形。

如何在 VisionSDK 中应用程序的两条管线之间切换?

用例:

Capture -> Display_Video

 DefLink_dispdist (A15)-> Display_Gfx

此致、

Gokul

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

    你好、Gokul、

    换管道意味着什么?

    您可以更改每个显示链接中的信道编号并切换信道。 您在寻找这种解决方案吗?

    Rgds、

    Brijesh

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

    您好、Brijesh、


    目前,我们计划将 M4作为显示服务器使用,而不与 a15共享显示。
    考虑管道 VID1用于摄像头、而 GFXx 用于来自 A15内核的 HMI。


    激活摄像头信号后、我们希望在显示屏上显示摄像头数据、取消激活摄像头后、我们应该在显示屏中获取 HMI 数据。

    1.如何处理上述情况?


    UseCase:Westin_m4摄像头

    Capture -> Display_Video

    DefLink_dispdist (A15)-> Display_Gfx


    ovlyPrms->deltaLinesPerPanel = 0;
    ovlyPrms->alpha BlenderEnable = 0;
    ovlyPrms->BackGroundColor = 0x10;
    ovlyPrms->ColorKeyEnable = 1;
    ovlyPrms->colorKeySel = system_dss_dispc_translation_color_key_SRC;
    ovlyPrms->ovlyOptimization = system_dss_DISPC_OVLY_Fetch _ALLDATA;
    ovlyPrms->transColorKey = DRAW2D_Transparent_color;

    /*设置覆盖管参数*/

    pipeOvlyPrms[0].pipe = system_dss_DISPC_pipe_VID1;
    pipeOvlyPrms[0].globalAlpha = 0xFF;
    pipeOvlyPrms[0].preMultiplyAlpha = 0;
    pipeOvlyPrms[0].zorderEnable = true;
    pipeOvlyPrms[0].zorder = SYSTEM_DSS_DISPC_ZORDER0;
    // pipeOvlyPrms[0].zorder = system_dss_DISPC_ZORDER3;

    pipeOvlyPrms[1].pipe = system_dss_DISPC_pipe_VID2;
    pipeOvlyPrms[1].globalAlpha = 0xFF;
    pipeOvlyPrms[1].preMultiplyAlpha = 0;
    pipeOvlyPrms[1].zorderEnable = true;
    pipeOvlyPrms[1].zorder = SYSTEM_DSS_DISPC_ZORDER1;

    pipeOvlyPrms[2]。pipe = system_dss_DISPC_pipe_VID3;
    pipeOvlyPrms[2].globalAlpha = 0xFF;
    pipeOvlyPrms[2].preMultiplyAlpha = 0;
    pipeOvlyPrms[2].zorderEnable = true;
    pipeOvlyPrms[2].zorder = SYSTEM_DSS_DISPC_ZORDER2;

    pipeOvlyPrms[3].pipe = system_dss_DISPC_pipe_GFX1;
    pipeOvlyPrms[3].globalAlpha = 0xff;
    pipeOvlyPrms[3].preMultiplyAlpha = 0;
    pipeOvlyPrms[3].zorderEnable = true;
    pipeOvlyPrms[3].zorder = system_dss_DISPC_ZORDER3;


    2.当全局字母值等于0xff 时,只能看到 GFX -Weston 屏幕。 (pipeOvlyPrms[3].globalAlpha = 0xff;)
    但是、如果设置为127、则摄像头数据和 gfx 都可见、如果设置为零、则只能看到摄像头。


    是否可以在运行时配置此值?


    谢谢、此致、
    Gokul

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

    您正在走正确的道路。 您可以使用 α 混成使视频管道透明和不透明。 是的、您可以更改此参数运行时间并使视频透明或不透明。

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

    您好、Brijesh、

    我们尝试在我的 UC (用例)中添加几个用于 α 混成的案例。 我们正在尝试访问 DSS 寄存器并对其进行修改。

    我们将遇到如下错误。此文件存在于 HLOS 中。

    /apps/src/hlos/adas/src/usecases/weston_m4camera/chains_m4camera_weston.c

    请在文件库中找到我的文件。


    ***** 捕获到分段故障...
    错误地址为0x58001074,从 bbb6bbc6cf 调用
    完全获得0个堆栈帧。 信号编号=11
    信号编号= 11、信号错误编号= 0
    SI 代码= 1 (地址未映射到对象)
    故障地址= 0x58001074
    [BT]执行路径:

    e2e.ti.com/.../chains_5F00_m4camera_5F00_weston.c

    while (!done)

    CH ="1";
    CH = chains_menuRunTime ();
    开关(通道)

    情况"0":
    DONE = true;
    中断;

    案例"p":
    案例"P":
    ChainCommon_PrintStatistics();
    Weston_m4camera_printStatistics (&chainsObj.ucObj);
    中断;
    案例"h":
    案例"H":

    temp =*((volatile UINT32 *) 0x58001074);
    printf ("DISPC_GLOBAL_ALPHA reg 值为%x \n "、temp);
    *((volatile UINT32 *) 0x58001074)= temp &(UINT32) 0xFFFFFF00;
    temp =*((volatile UINT32 *) 0x58001074);
    printf ("Affet set DISPC_GLOBAL_ALPHA reg 值为%x \n "、temp);
    //*((volatile UINT32 *) 0x4805D194)=(UINT32) 0x00002000;
    中断;
    默认值:
    vps_printf ("\n 不支持的选项'%c'。 请重试\n"、ch);
    中断;

    此致、

    Gokul

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

    您似乎正在尝试直接从 Linux 访问 DSS 寄存器。 不能执行此操作、因为无法直接从用户空间访问此地址。 应该对其进行映射、然后才能访问。 另一种方法是、您可以使用驱动程序 API 来更新 alpha 值。

    此致、
    Brijesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是 Brijesh。 这是我的错误、正如我在 SYS-BIOS 内部思考并错误地做的那样。

    最好是从 Linux 修改 DSS 寄存器,还是可以通过 System_linkControl API 向 M4发送命令?

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

    这取决于您从何处控制 DSS。 如果从 M4配置和控制 DSS、则最好向 M4发送命令、然后对其进行配置。 如果它由运行 Linux 的 A15控制和配置、则可以使用 Linux 框架更新 Alpha 值。

    Rgds、
    Brijesh