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.

[参考译文] VISION- SDK2-12 Jacinto6- dra7xx -通过 CCS 在 M4内核中运行 VPS 应用

Guru**** 2591230 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582256/vision--sdk2-12-jacinto6--dra7xx---run-vps-application-in-m4-core-via-ccs

我对 VISION SDK 非常陌生。  

如何通过 CCS 在 M4内核中运行 VPS 应用程序? (SDK 文件夹路径- ti_componels/drivers/bsp_01_07_01_17/examples/vps/。)

喜欢的台阶是什么?

请与我分享相关文档。

谢谢

Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Gokul、
    我们将对此进行研究、并会随时为您发布信息。
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我在构建 BSP-示例时遇到以下错误。 您能支持吗?

    TI_components \drivers\bsp_01_07_01_17\

    环境:VISION SDK 2-12版本、
    platform= dra7xx


    gmake -s 示例 platform=dra7xx-evm


    "LLD_hsi2c.c"、第648行:错误:标识符"LLD_I2C_EDMA_CHA_I2CTXEVT0"未定义
    "LLD_hsi2c.c"、第650行:错误:标识符"LLD_I2C_EDMA_CHA_I2CRXEVT0"未定义
    "LLD_hsi2c.c"、第655行:错误:标识符"LLD_I2C_EDMA_CHA_I2CTXEVT1"未定义
    "LLD_hsi2c.c"、第657行:错误:标识符"LLD_I2C_EDMA_CHA_I2CRXEVT1"未定义
    在编译"LLD_hsi2c.c"时检测到4个错误。


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

    您能否尝试使用以下命令进行构建:
    gmake -s 示例 platform=tda2xx-evm

    TDA2xx 和 DRA7xx 是同一器件的器件型号。

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

    谢谢 Rishabh。

    我们能够使用 gmake -s examples platform=tda2xx-evm 进行编译。

    有时,我 会得到以下错误。 同时连接到目标。

    连接到目标时出错:
    (错误-230 @ 0x0)
    测得的 JTAG IR 和 DR 扫描路径长度无效。
    这表示链路延迟或扫描路径中存在错误。
    (仿真包6.0.576.0)

    原因可能是什么? 如何避免这种情况?

    谢谢、

    Gokul

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

    您能否尝试更新仿真包并查看它是否适合您?

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

    您好、Rishabh、

    请告诉我更新软件包的版本? 我的 CCS 版本

    Code Composer Studio

    版本:7.1.0.00015

    运行 Display 应用程序时出现以下错误

    无法从 SD 卡加载缓冲区。

    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)

    loadRaw (0x80e00000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);

    将4个大小为1920x1080的 BGR24_888视频帧加载到位置:0x81dd2000

    如何提供要缓冲的输入文件?

    谢谢

    Gokul

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

    仿真软件包的最新版本是6.0.579.0。 继续并从"Help->Install new software 选择"All available sites (所有可用站点)"进行更新、向下滚动至"TI Emulators (TI 仿真器)"、然后从此处进行更新。 请参阅示例屏幕截图:  

    谢谢、

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    运行 Display 应用程序时出现以下错误

    无法从 SD 卡加载缓冲区。

    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)

    loadRaw (0x80e00000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);

    将4个大小为1920x1080的 BGR24_888视频帧加载到位置:0x81dd2000

    如何向缓冲区提供输入文件数据?

    谢谢

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

    您可以使用以下位置的测试输入: \docs\test_inputs 文件夹。

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

    您好、Rishabh、

    我们有一个定制的 dra7xx- jacinto6板。  。

    我们正在尝试在 电路板上运行 VISION SDK 显示应用。

    我们希望在 LCD 中显示图像。

    我们已将 Vout3从 DSS 连接到 LCD。  

    显示启动涉及哪些步骤?

    我们想知道从应用程序级别完成的配置更改。

    要配置的 DispApp_TestParams 是什么?

     根据源代码、我知道 需要引脚多路复用和 LCD 面板配置、

    源参考 :bsp_01_07_01_17\bsp_01_07_01_17\examples\vps\display\displayDss\src

    /**

    * \brief 显示应用程序测试参数。

    * 测试用例的执行基于此结构的值

    *

    typedef 结构

      特性       *testDescStr;

      /**<测试说明。 *

      uint32.      numEnc;

      /**<要运行的视频编码器数。 *

      uint32.      encDrvId[VPS_DISP_ENC_INST_MAX];

      /**<要为每个句柄打开的视频编码器驱动程序 ID。 *

      uint32.      vencpId[VPS_DISP_ENC_INST_MAX];

      /**<每个句柄的 Venc ID。 *

      Fvid2_Standard 标准[VPS_DISP_ENC_INST_MAX];

      /**<视频编码器视频标准。 *

      uint32.      isSdVenc;

      /**< SD VENC 为真、其他为假。 仅对 Tda3xx 有效。 *

      uint32.      isRtParamUpdateTest;

      /**< RT 参数更新测试用例为 True,其他测试用例为 false。 *

      uint32.      NumHandles;

      /**<要运行的显示句柄数。 *

      uint32.      instId[VPS_DISP_INST_MAX];

      /**<要为每个句柄打开的实例 ID。 *

      Fvid2_DataFormat inDataFmt[VPS_DISP_INST_MAX];

      /**< YUV 或 RGB 数据格式。 *

      uint32.      inWidth[VPS_DISP_INST_MAX];

      /**<以像素为单位的输入缓冲区分辨率宽度。 *

      uint32.      inHeight[VPS_DISP_INST_MAX];

      /**<输入缓冲区分辨率高度(以行为单位)。 *

      uint32.      posx[VPS_DISP_INST_MAX];

      /**<输入缓冲器位置 x。*/

      uint32.      posy[VPS_DISP_INST_MAX];

      /**<输入缓冲器位置 y。*/

      uint32.      inScanFormat[VPS_DISP_INST_MAX];

      /**<采用扫描格式。 *

      uint32.      isFieldMerge [VPS_DISP_INST_MAX];

      /**<字段合并或字段分隔。 *

      Int32.       runCount;

      /**<要显示的帧数。 *

      BSP_BoardMode  boardMode;

      /**<板模式参数、如24位、8位。 *

      uint32.      董事会 ID;

      /**<运行测试用例的有效电路板列表。 *

    }DispApp_TestParams;

    谢谢

    Gokul

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

    你好、Gokul、

    我们有一份 thise2e.ti.com/.../Video_5F00_Driver_5F00_Porting_5F00_Guide.pdf 应用手册

    请参阅。 谢谢。

    此致、

    Rishabh

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

    感谢您提供的有用文档。

    像素时钟频率为27MHz。 我是否需要设置分频值才能锁定?

    我们已将 Vout3从 DSS 连接到 LCD。
    我已经在 DispApp_TestParams 中给出了 VPS_DCTRL_DSS_VENC_LCD3。
    正确吗?

    3.如果 DispApp_TestParams 中没有编码器,我可以分配到零吗?

    4 DispApp_TestParams 中有很多参数,哪一个是最简单的情况?
    我目前正在尝试以下情况。
    DSS 视频1 (YUY422I) -> DPI3 -> LCD


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

    我将就此咨询 DSS 专家、然后再与您联系。

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

    您可以直接在视频 PLL 中设置该像素时钟。 无需设置分频值。
    2、是的、LCD3用于 Vout3
    3、您可能需要更改 LCD 特定参数。 在这种情况下、您可以在 LCD 编码器下添加特定代码
    4、是的、您可以使用 DSS -> DPI3->LCD 测试用例。

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

    您好、Brijesh、

    1我们能够通过 BSP_platformSetPllFreq 设置像素时钟。 如下所示。

    返回值没有错误。  

    vPllCfg.videoPll = BSP_platform_pll_VIDEO1;
    vPllCfg.PixelClk = 27000 * 4;//以 KHz 为单位*
    RetVal = BSP_platformSetPllFreq (_vPllCfg);


    2 但配置 venc-clk 源失败。  

    如何设置 venc 时钟源?
    vencClkCfg.outputVenc = bsp_platform_venC_LCD3;
    vencClkCfg.vencClkSrc = bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT1;

    RetVal = BSP_platformSetVencClkSrc (vencClkCfg);

    if (RetVal!= FVID2_SOK)

    GT_0TRACE (BspAppTrace、GT_ERR、
    app_name ":设置 MS Venc 时钟源失败!!!\n");

    此外、我们还有输入文件 display_yuv422_prog_packed_1920_1020.tigf 和 display_gbr888_prog_packed_1920_1020.tigf。 用于测试、将加载到存储器中以供显示。

     主机中是否有任何播放器可查看此文件的实际内容?

    谢谢、此致、
    Gokul

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


    为什么要将27KHz 乘以4? 您是否将该时钟除以其他位置?
    这些文件是普通的 RGB888或 YUV422文件、您可以通过将它们的扩展名更改为 YUV 或.RGB、以7yov 格式打开它们

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

    您好、Brijesh、

    是的,我们使用 vencDivisor 作为4。

    配置 VENC 时钟源时可能会出现什么问题?

    int32 M4_PLL_config (DispApp_Obj * appObj)

    bsp_PlatformSetPllFreq vPllCfg;
    BSP_PlatformVencSrc vencClkCfg;
    Int32 RetVal = FVID2_SOK;
    vPllCfg.videoPll = BSP_platform_pll_VIDEO1;
    vPllCfg.PixelClk = 27000 * 4;//以 KHz 为单位*
    //vPllCfg.PixelClk = 27000;//以 KHz 为单位*/

    RetVal = BSP_platformSetPllFreq (_vPllCfg);

    if (RetVal!= FVID2_SOK)

    GT_0TRACE (BspAppTrace、GT_ERR、
    app_name ":配置 MS PLL 失败!!!\n");

    vencClkCfg.outputVenc = bsp_platform_venC_LCD3;
    vencClkCfg.vencClkSrc = bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT1;

    RetVal = BSP_platformSetVencClkSrc (vencClkCfg);

    if (RetVal!= FVID2_SOK)

    GT_0TRACE (BspAppTrace、GT_ERR、
    app_name ":设置 MS Venc 时钟源失败!!!\n");

    /*设置液晶屏 PCD 除数*/
    VPS_DctrlVencDivisorInfo vencDivisors;
    vencDivisors.vencId = VPS_DCTRL_DSS_VENC_LCD3;
    vencDivisors.visorLCD = 1;
    vencDivisors.divisorPCD = 4;

    RetVal = Fvid2_control (appObj->dctrlHandle、IOCTL_VPS_DCTRL_SET_VENC_PCLK_DIFFINS、
    vencDivisors、NULL);

    if (RetVal!= FVID2_SOK)

    GT_0TRACE (BspAppTrace、GT_ERR、
    APP_NAME ":设置 MS PCLK 分频器失败!!!\n");

    谢谢、此致

    Gokul

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

    你好、Gokul、

    好的、它之所以失败、是因为、

    对于 LCD3输出、支持的时钟源为

    bsp_platform_clkSRC_DPLL_VIDEO1_CLKOUT3

    bsp_platform_clkSRC_DPLL_HDMI

    bsp_platform_clkSRC_DPLL_VIDEO2_CLKOUT1

    bsp_platform_clkSRC_DSS_GFCLK

    因此、您需要为 LCD3选择这些时钟源之一

    此致、

    Brijesh

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

    您好、Brijesh、


    我们已将时钟源更改为 VIDEO1_CLKOUT3、设置 venc-clk 源时没有错误。


    我们能够使用图像 display_yuv422_prog_packed_1920_1020.tigf 在 Display 中获取一些数据、但设置 PLL 时仍然存在错误。

    bsp_platformSetPllFreq (&vPllCfg); 此错误的原因可能是什么?  

    我们能够获取实际图像左上角的数据(display_yuv422_prog_packed_1920_1020.tigf)。

    我们的 LCD 分辨率800 * 480。 是否可以为此分辨率加载图像以获得精确的输出?
    为此,VPS-DISPLAY-DSS 应用程序涉及哪些更改?

    根据我的理解、我必须更改 gDispDssLoadBufCfg 参数。 正确吗? 间距值是多少?

    我尝试了 w-800 h -480和 pitch 1600。 但我没有在显示屏中获得预期的输出数据。

    静态常量 DispApp_LoadBufCfg gDispDssLoadBufCfg[]=

    /*宽度、高度、间距、dataFmt、scanFmt、 FieldsMerged、numBuffers */
    {1920u、1080u、3840u、FVID2_DF_YUV422I_YUYV、FVID2_SF_Progressive、
    错误、
    disp_app_MAX_FRAes_per_Handle}、
    {1920u、1080u、5760u、FVID2_DF_BGR24_888、FVID2_SF_Progressive、
    错误、
    disp_app_MAX_FRAes_per_Handle}、
    };


    请告诉我显示800 * 480 r 图像所涉及的更改?

    另外 ,设置 PLL 时可能会出现什么问题 ?

    谢谢 、此致、

    Gokul

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

    你好、Gokul、

    您要设置的像素频率是多少?  

    是的、您需要更改 DispApp_LoadBufCfg gDispDssLoadBufCfg 实例以更改负载缓冲区大小。  

    您在显示屏上看到什么问题? 您能否通过读回来检查输入缓冲器是否正确且加载正确?

    此致、

    Brijesh