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.

[参考译文] AM62P:AM62P 中的 DSS 共享问题

Guru**** 2558250 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1559854/am62p-dss-sharing-issue-in-am62p

部件号:AM62P


工具/软件:

TI 团队大家好

我正在处理 DSS 共享演示。  以固定启动界面。 我使用以下代码直接将 Frames[]设置为启动界面原始数组。  

 

        gSplashARGB = (uint32_t *)fulllog1920720_pixels;
            /* -------- Zero-copy path: queue two frames pointing to constant ARGB -------- */
        {
        // CacheP_wb((void*)fulllog1920720_pixels, 5529600U, CacheP_TYPE_ALLD);
        Fvid2_FrameList qList;
        Fvid2FrameList_init(&qList);

        /* local static frames to keep lifetime valid across start/fade */
        static Fvid2_Frame splashFrm[2];

        for (int i = 0; i < 2; ++i) {
            Fvid2Frame_init(&splashFrm[i]);
            /* English comment: both frames use the SAME read-only ARGB array */
            splashFrm[i].addr[0] = (uint64_t)gSplashARGB;
            splashFrm[i].fid = FVID2_FID_FRAME;
            splashFrm[i].appData = instObj;

            qList.numFrames = 1U;
            qList.frames[0] = &splashFrm[i];
            (void)Fvid2_queue(instObj->drvHandle, &qList, 0U);
            }

闪屏工作正常。 但是、当该应用进入 函数 DispApp_displayShareThread 时、我在 gFirstPipelineFrameBuf[]中用 0x00 或 0xFF 清除缓冲区 的内容、

 屏幕将闪烁并带有屏蔽的启动界面日志。  如何在不中断 DSS 共享的情况下清除所有 Fvid /DSS 缓冲区?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否分享一个 pic、说明您在“询问的闪存日志“中看到的内容?

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

    e2e.ti.com/.../IMG_5F00_0749.MOV

    大家好、TI 团队、请观看这部电影。

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

    感谢观看本视频。 让我在内部对此进行讨论、并通过星期一与您联系。

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

    您好、
    我们将能够在这方面提供非常有限的帮助,因为它是您的自定义应用程序。 提示:有 2 个帧缓冲区以乒乓方式工作、要 保持共享帧缓冲区的 2 个内核之间的同步、必须在 2 个 VSyncs(60fps 时为 16.6 毫秒)之间完全清除帧缓冲区。 这还取决于您如何在帧缓冲区中填零。 memcpy () 会花费很多时间,您可能需要使用 DMA 来实现同样的目的。

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

    TI 团队大家好

    对于此应用程序、我编辑/更改的是将 Fvid2_FrameList 火焰直接 设置为原始数组、但不将数据复制到 gFirstPipelineFrameBuf[] 、然后我 将 0x00 和 0xff 设置为 gFirstPipelineFrameBuf 0 和 1、使 Fvid2 出队、如果我没有执行 fivid2、则会停止/开始闪存。  

    如何清除帧缓冲区? 我应该处理多少帧缓冲区?

    有任何疑问吗?

    非常感谢!

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

    明天就会回复您。

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

    您好、
    DSS 中已经有 DMA 引擎、基于指针的方法似乎正确。
    很遗憾、我们不提供用于清除屏幕的 API、需要使用用户空间代码完成此操作。
    您能否分享您的整个 C 文件? 我假设与默认示例相比更改极小?

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

    e2e.ti.com/.../dss_5F00_display_5F00_share_5F00_am62px_2D00_sk_5F00_wkup_2D00_r5fss0_2D00_0_5F00_freertos_5F00_ti_2D00_arm_2D00_clang_5F00_2.zip

    您好团队

    您可以直接导入 DSS 共享示例并将所有文件放到工程根目录中。  

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

    您好、
    谢谢。 让我在内部回顾一下。 如果您在下周结束前没有收到回复、请随时在该主题上打 ping。

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

    您好、
    我一直在浏览您的代码、发现有大量的自定义更改、我很难在此代码库上提供支持。 在代码更改中、您尚未初始化 gFirstPipelineFrameBuf、并且在使用 while 循环的情况下不会使帧在排队后取消队列。 您能否以最小的偏差与示例分享一个可以帮助我重现问题的代码?

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

    您好团队

    这是最小的变化。 我直接导入示例、仅使用一个函数更改代码。  我没有使用  gFirstPipelineFrameBuf 、并且直接将帧缓冲区设置为数组 、以避免复制它以缩短加载时间。  

    它只在闪屏中显示 1 个 pic、所以我没有排队和出队。

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

    您好、
    我的鸡巴在裤裆里跳动,不停地跳动。
    在这方面是否有任何进展?  从初始化线程跳转到显示共享线程时、您是否能够逐步检查问题的来源?

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

    我没有 X110、但您可以在 https://www.ti.com/tool/SK-LCD1 上使用首选 LCD 的 am62px-SK EVM 试用

    您可以 重现此问题。