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.

[参考译文] AM5728:可以#39;t 从 PDK 编译 DSS 示例

Guru**** 2551110 points
Other Parts Discussed in Thread: AM5728, TMDSEVM572X

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592411/am5728-can-t-compile-the-dss-example-from-pdk

器件型号:AM5728
主题中讨论的其他器件:TMDSEVM572X

我使用的是 GCC 4.9 2015q2。

我们需要在具有定制操作系统的基于 AM5728的产品中提供显示支持、因此我需要弄清楚如何使显示模块正常工作、并且我正在尝试从 PDK 1.0.6编译 DSS 示例。 它不编译:

E:\TI_PDK~1\pdk_am~1\packages/ti\drv\VPS\examples\dss\displayDss>gmake build_profile=debug

pdk_am~1/packages/ti/binary/ti/drv/vps/src/device/obj/tda2xx/m4/debug -fc src/bsp_device.c
"src\bsp_devicePrivv.h"、第73行:致命错误:无法打开源文件"ti/drv/bsp_LLD/i2c/bsp_i2c.h"
1在"src/bsp_device.c"的编译中检测到灾难性错误。
编译已终止。

PDK 中实际上缺少"ti/drv/bsp_lld/i2c/bsp_i2c.h"文件。 它有条件地包含在 bsp_devicePriv.h 中:
72:#if!defined (VPS_TI_RTOS_I2C)
73:#include
74:#endif

似乎可以通过提供 SOC=am572x (ti\drv\VPS\VPS_component.mk 处理它)来定义 VPS_TI_RTOS_I2C、但是

E:\TI_PDK~1\pdk_am~1\packages/ti\drv\VPS\examples\dss\displayDss>gmake build_profile=debug SOC=am572x

导致链接错误。

那么、如何构建 DSS 示例以在 X-15板上运行它? 或者、或许有一个更好的示例、说明如何在裸机上设置显示?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题:您使用的是 beagleboard.org 上的 X15吗? 或者您是否正在使用我们的 TMDSEVM572x?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们两者都有。 它们之间是否有一些重要差异?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经回答了你的问题;你是否有机会回答我的问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    John、
    X15由 Beagleboard.org 开发、TMDSEVM572x 由 TI 开发。 我们仅支持我们的 EVM。 您可以在 EVM 产品文件夹中找到我们的 EVM 设计文件、也可以将两者进行比较...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是-我的原始问题、关于从 PDK 编译 DSS 示例。

    我想 TMDSEVM572x 和 X-15是相同的、但版本号除外。 但是、正如我说过的、我们有两个板。
    到目前为止、它甚至不会进行编译。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    John、
    好的、我将让我们的应用团队回复您的问题。 他们应尽快发表评论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_VPS_DRIVERS 中提供了针对 VPS 示例(包括 DSS 示例)的构建过程。

    我刚刚尝试过最新的 Processor SDK 3.3、构建它们没有问题。

    • CD /封装
    • pdksetupenv.bat
    • 生成 VPS

    输出位于 pdk_am57xx_1_0_6\packets\ti\binary\vps_examples_displayDss\bin:

    • evmAM572x
    • IDKAM572x

    此致、Eric

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

    谢谢! 我在 Release 中成功编译了 DSS 示例(和其他示例)。

    似乎我需要连接 CCS 才能运行此示例? 到目前为止、它显示了

    **** PDK SBL ****
    ****复制应用程序映像到 DDR ****

     SD Boot (SD 引导)-文件打开成功完成

     MPU CPU0映像加载完成
    正在跳转到 MPU CPU0应用程序...

    并挂起。 是否有办法在没有 CCS 的情况下使用它? 喜欢从 SD 卡加载 tigf 文件?

    顺便说一下、我无法在调试模式下构建。 我正在尝试

    E:\TI_PDK~1\pdk_am~1\packages/gmake VPS build_profile=debug Board=evmAM572x core=a15
    E:\TI_PDK~1\pdk_am~1\packages/gmake VPS build_profile=debug Board=evmAM572x
    E:\TI_PDK~1\pdk_am~1\packages/gmake VPS build_profile=debug

    它们都不会进行编译。 我怀疑我再次做了不正确的事情。

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

    示例基于 CCS、您需要将 CCS/JTAG 连接到内核、然后加载并运行。 然后、UART/CCS 控制台提示会要求您输入视频文件以供显示。

    对于在调试模式下构建、我没有问题。 我刚刚尝试了"gmake VPS build_profile=debug"、我看到代码正在编译、需要一些时间才能完成。

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

    我们已获得 XDS200调试器、CCS 6.2并尝试运行 DSS 示例。 它会启动、输出一些构建和电路板信息:

    建造时间           :[17:36:11 2017年5月10日]
    FVID2版本        :[FVID_02_01_00_01]
    BSP 版本          :[BSP_01_08_00_xx]
    平台             :[evm]
    SoC                  :[AM572X]
    SoC 修订版         :[ES2.0]
    FT 修订          版本:[5]
    软件包              :[未知]
    磁芯                 :[A15]
    检测到板       :[AM572X GP EVM]
    EEPROM 基板名称:[AM572PM_]
    基板修订  版:[REV A]
    子卡修订版:[Rev A]

    然后在轮询 PLL_STATUS 寄存器(0x58004304、DPLL_VIDEO1_MAIN_L3)时挂起。 PLLCTRL_RESET_DONE 始终为0,处理器在函数 PMHALVideopllConfigure()内循环运行:

    文件 pmhal_videopll.c
    292:执行
    293:{
    294:    videopllStatus =
    295:        PMHALVideopllGetResetStatus (videopllId);
    296:}while (0 = videopllStatus);

    视频 pllStatus 始终为0、因此似乎 PLL 从不会从复位中退出。 整个 PLL_STATUS 寄存器读为0。

    提醒一下、我们使用的是插入了 LCD 模块和 PDK 1.0.6的 TMDSEVM572x 电路板。 是否有任何关于可能出现的问题以及如何解决的建议?

    "gmake VPS build_profile=debug"对我们仍然无效。 经过一段时间的构建过程后、最终会出现错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然希望得到一个如何解决它的答案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过 JTAG 从 CCS 运行它、它挂起、等待视频 PLL 复位。 请于2017年5月18日晚上10:34查看我的帖子。
    您能不能建议出什么问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我记得您可以在发布模式下构建它。 对吧? 对于.out 文件、我昨天在具有 A15内核的 AM571x IDK EVM 上进行了测试、结果很好。 让我找到一个 AM572x GP EVM 和测试 DSS 示例、并尝试是否可以在调试模式下构建。

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

    是的、我能够在发行版中构建。 以防我附加我的.out 文件。

    谢谢、感谢您的帮助。

    e2e.ti.com/.../vps_5F00_examples_5F00_displayDss_5F00_a15_5F00_0_5F00_release.7z

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

    您好!

    我测试了安装了 LCD 显示屏的 AM572x GP EVM。 我运行 A15 DSS 版本构建、没有任何问题。 是否使用 GEL 来初始化 EVM? 以下是我的 CCS GEL 日志:

    IcePick_D:GEL 输出:IPU RTOS 从等待复位中释放。

    IcePick_D:GEL 输出:IPU SIMCOP 从等待复位中释放。

    IcePick_D:GEL 输出:IVAHD C66从等待复位中释放。

    IcePick_D:GEL 输出:IVAHD ICONT1从等待复位中释放。

    IcePick_D:GEL 输出:IVAHD ICONT2被从等待复位中释放。

    CS_DAP_DebugSS:GEL 输出:->>将调试 DPLL 设置配置为1.9 GHZ <<---

    CS_DAP_DebugSS:GEL 输出:>正在设置 DebugSS 1.9GHz ...

    CS_DAP_DebugSS:GEL 输出:<使用设置 DebugSS 跟踪导出时钟(TPIU)到97MHz 完成

    CS_DAP_DebugSS:GEL 输出:<使用 Setup DebugSS PLL 时钟1.9GHz 完成

    CS_DAP_DebugSS:GEL 输出:<使用设置 DebugSS ATB 时钟380MHz 完成

    CS_DAP_DebugSS:GEL 输出:<使用设置 DebugSS 跟踪导出时钟(TPIU)到97MHz 完成

    CS_DAP_DebugSS:GEL 输出:->>打开调试检测所需的 L3_INSTR 和 L3_3时钟<<< ----

    CS_DAP_DebugSS:GEL 输出:-<<启用 L3仪表时钟>>>--

    CS_DAP_DebugSS:GEL 输出:->>>映射计时器支持源到默认内核<<<< ----

    CS_DAP_PC:GEL 输出:Cortex-A15 1不处于 WIR 模式、因此无需执行任何操作。

    CortexA15_0:GEL 输出:-->>AM572x GP EVM <<---

    CortexA15_0:GEL 输出:-->>AM572x 目标连接序列开始... <<<--

    CortexA15_0:GEL 输出:->>I2C Init <<<--

    CortexA15_0:GEL 输出:--> AM572x 开始 MMC2焊盘配置<<---

    CortexA15_0:GEL 输出:--> AM572x End MMC2 Pad 配置<<---

    CortexA15_0:GEL 输出:--> AM572x PG2.0 GP 器件<<---

    CortexA15_0:GEL 输出:->>>>OPPNOM 的 PRCM 时钟配置正在进行中... <<<--

    CortexA15_0:GEL 输出:Cortex A15 DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:Cortex A15 DPLL 已锁定、现在正在解锁...

    CortexA15_0:GEL 输出:Cortex A15 DPLL OPP 0完成!

    CortexA15_0:GEL 输出:IVA DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:IVA DPLL OPP 0完成!

    CortexA15_0:GEL 输出:每个 DPLL OPP 0时钟配置正在进行...

    CortexA15_0:GEL 输出:每个 DPLL 已锁定、现在解锁

    CortexA15_0:GEL 输出:每个 DPLL OPP 0完成!

    CortexA15_0:GEL 输出:内核 DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:内核 DPLL OPP 已锁定、现在正在解锁...

    CortexA15_0:GEL 输出:内核 DPLL OPP 0完成!

    CortexA15_0:GEL 输出:Abe DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:Abe DPLL OPP 0完成!

    CortexA15_0:GEL 输出:GMAC DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:GMAC DPLL OPP 0完成!

    CortexA15_0:GEL 输出:GPU DPLL OPP 0时钟配置正在进行...

    CortexA15_0:GEL 输出:GPU DPLL OPP 0完成!

    CortexA15_0:GEL 输出:DSP DPLL OPP 0时钟配置正在进行中...

    CortexA15_0:GEL 输出:DSP DPLL OPP 0完成!

    CortexA15_0:GEL 输出:PCIe_REF DPLL OPP 0时钟配置正在进行...

    CortexA15_0:GEL 输出:PCIe_REF DPLL OPP 0完成!

    CortexA15_0:GEL 输出:->>>>OPP 0的 PRCM 时钟配置完成! <<<--

    CortexA15_0:GEL 输出:->>>PRCM 配置、用于所有进行中的模块... <<<--

    CortexA15_0:GEL 输出:->>>>PRCM 所有模块的配置均已完成! <<<--

    CortexA15_0:GEL 输出:->>DDR3初始化正在进行... <<<--

    CortexA15_0:GEL 输出:532MHz 的 DDR DPLL 时钟配置正在进行中...

    CortexA15_0:GEL 输出:532MHz 的 DDR DPLL 时钟配置已完成!

    CortexA15_0:GEL 输出:启动完全调平

    CortexA15_0:GEL 输出:更新 PHY_STATUSx 寄存器中的从器件比率

    CortexA15_0:GEL 输出:根据硬件调平输出

    CortexA15_0:GEL 输出:硬件调平现已禁用。 使用中的从器件比率

    CortexA15_0:GEL 输出:PHY_STATUSx 寄存器

    CortexA15_0:GEL 输出:启动完全调平

    CortexA15_0:GEL 输出:更新 PHY_STATUSx 寄存器中的从器件比率

    CortexA15_0:GEL 输出:根据硬件调平输出

    CortexA15_0:GEL 输出:硬件调平现已禁用。 使用中的从器件比率

    CortexA15_0:GEL 输出:PHY_STATUSx 寄存器

    CortexA15_0:GEL 输出:交错模式下的两个 EMIF -(总共2GB)

    CortexA15_0:GEL 输出:->>DDR3初始化完成! <<<--

    CortexA15_0:GEL 输出:-->将计时器暂停源映射到默认内核<<<<<< ----

    CortexA15_0:GEL 输出:->>IPU1SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:->>IPU1SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:-->>IPU2SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:->>IPU2SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:->>>DSP1SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:调试:在 DSPSS L2RAM 中检查数据完整性...

    CortexA15_0:GEL 输出:调试:GEM L2RAM 中的数据完整性检查成功!

    CortexA15_0:GEL 输出:->>>DSP1SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:->>>DSP2SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:调试:在 DSPSS L2RAM 中检查数据完整性...

    CortexA15_0:GEL 输出:调试:GEM L2RAM 中的数据完整性检查成功!

    CortexA15_0:GEL 输出:->>>DSP2SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:-->>IVAHD 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:-->>IVAHD 初始化完成! (笑声) <<<--

    CortexA15_0:GEL 输出:->>PRUSS 1和2初始化正在进行... <<<--

    CortexA15_0:GEL 输出:-->>PRUSS 1和2初始化正在完成... <<<--

    CortexA15_0:GEL 输出:->>AM572x 目标连接序列完成!!!!! <<<--

    CortexA15_0:GEL 输出:-->将计时器暂停源映射到默认内核<<<<<< ----

    CortexA15_0:GEL 输出:->>IPU1SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:->>IPU1SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:-->>IPU2SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:->>IPU2SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:->>>DSP1SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:调试:在 DSPSS L2RAM 中检查数据完整性...

    CortexA15_0:GEL 输出:调试:GEM L2RAM 中的数据完整性检查成功!

    CortexA15_0:GEL 输出:->>>DSP1SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:->>>DSP2SS 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:调试:在 DSPSS L2RAM 中检查数据完整性...

    CortexA15_0:GEL 输出:调试:GEM L2RAM 中的数据完整性检查成功!

    CortexA15_0:GEL 输出:->>>DSP2SS 初始化完成! <<<--

    CortexA15_0:GEL 输出:-->>IVAHD 初始化正在进行... <<<--

    CortexA15_0:GEL 输出:调试:时钟处于活动状态...

    CortexA15_0:GEL 输出:-->>IVAHD 初始化完成! (笑声) <<<--

    CortexA15_0:GEL 输出:->>PRUSS 1和2初始化正在进行... <<<--

    CortexA15_0:GEL 输出:-->>PRUSS 1和2初始化正在完成... <<<--

    然后、我加载了输出文件并运行:

    [CortexA15_0] DISP_DSS_APP:示例应用-启动!!!

    *** VPDMA 固件正在加载... ***

    VPDMA 固件地址= 0xa0011fc0

    VPDMA 加载地址= 0x4897d004

    VPDMA 固件版本= 0x4d0001b8

    VPDMA 列表忙状态= 0x00000000

    *** VPDMA 固件加载成功***

    *** VPDMA 固件正在加载... ***

    VPDMA 固件地址= 0xa0011fc0

    VPDMA 加载地址= 0x4899d004

    VPDMA 固件版本= 0x4d0001b8

    VPDMA 列表忙状态= 0x00000000

    *** VPDMA 固件加载成功***

    *** VPDMA 固件正在加载... ***

    VPDMA 固件地址= 0xa0011fc0

    VPDMA 加载地址= 0x489bd004

    VPDMA 固件版本= 0x4d0001b8

    VPDMA 列表忙状态= 0x00000000

    *** VPDMA 固件加载成功***

    *** VPDMA 固件正在加载... ***

    VPDMA 固件地址= 0xa0011fc0

    VPDMA 加载地址= 0x489dd004

    VPDMA 固件版本= 0x4d0001b8

    VPDMA 列表忙状态= 0x00000000

    *** VPDMA 固件加载成功***

    建造时间:[13:41:07 2017年5月25日]

    FVID2版本:[FVID_02_01_00_01]

    BSP 版本:[BSP_01_08_00_xx]

    平台:[evm]

    SoC:[AM572X]

    SoC 修订版:[ES2.0]

    FT 修订版:[3]

    软件包:[未知]

    磁芯:[A15]

    检测到板:[AM572X GP EVM]

    EEPROM 基板名称:[AM572PM_]

    基板修订版:[REV A]

    子卡修订版:[Rev A]

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

    正在尝试从 SD 卡加载缓冲区。

    无法从 SD 卡加载缓冲区。

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

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

     

    附件是我的.out file.e2e.ti.com/.../vps_5F00_examples_5F00_displayDss_5F00_a15_5F00_0_5F00_release.xa15fg

    是否可以尝试设置是否正常? 我试过你的、它在加载后进入主程序、然后在我运行时离开。

    此致、Eric

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

    我进一步提高了。 似乎我的问题是 GEL 文件-我使用它们不正确、我将它们应用到了错误的内核。 感谢您的 GEL 日志、它向我展示了我的问题。

    现在、我收到了消息

    将4个大小为1920x1080的 YUV422I_YUYV 视频帧加载到位置:0x81600000
    正在尝试从 SD 卡加载缓冲区。
    无法从 SD 卡加载缓冲区。
    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
    loadRaw (0x81600000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);

    有时它会进一步传递并请求第二个文件:

    将4个大小为1920x1080的 YUV422I_YUYV 视频帧加载到位置:0x81600000
    正在尝试从 SD 卡加载缓冲区。
    无法从 SD 卡加载缓冲区。
    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
    loadRaw (0x81600000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);
    将4个大小为1920x1080的 BGR24_888视频帧加载到位置:0x825d2000
    正在尝试从 SD 卡加载缓冲区。
    无法从 SD 卡加载缓冲区。
    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
    loadRaw (0x825d2000、0、"C:\\display_bgr888_prog_packed_1920_1020.tigf"、32、false);

    我尝试加载文件的方式:
    1.启动目标配置。
    2.选择 core a15_0并为其选择 gpevm_am572x.gel。
    3.连接到内核 a15_0。
    4.在控制台中输入两个命令:
    loadRaw (0x816000000、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false)
    loadRaw (0x825d2000、0、"C:\\display_bgr888_prog_packed_1920_1020.tigf"、32、false)
    根据 processors.wiki.ti.com/.../Scripting_Console、参数之间没有空格、结尾没有分号
    没有对此类命令的反馈、因此我在每次命令之后都等待了一段时间、让它加载这些大文件。
    5.复位 CPU。
    6.运行/加载.out 文件。 它会自动运行到'main'。
    7.继续跑步。
    8.它会输出加载文件的请求,但不会执行任何操作。 如果我点击"Suspend"、堆栈跟踪显示我们位于内核函数 Task_exit()内。

    顺便说一下-第二个显示转储的文件名不正确。
    C:\ti\pdk_am57xx_1_0_6\packets\ti\drv\vps\docs\test_inputs\dss_input_files.rar 包含文件
    Display_gbr888_prog_packed_1920_1020.tigf
    而建议的控制台命令加载文件
    Display_bgr888_prog_packed_1920_1020.tigf
    我将其重命名。

    不确定运行.out 文件时发生了什么情况。 您说"它在加载后进入 main、然后在我运行时消失"、但您说的"离开"是什么意思?
    现在、对于我来说、您的.out 和我的.out 的行为方式差不多。 他们请求.tigf 文件、然后不执行任何操作、无论我之前是否通过控制台加载过这些文件。

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

    关于调试模式下的编译、我将\packages 下的 Toplevel makefile 从"yes"更改为"no":

    VPS:
    $(make)-C ./ti/drv/vps all disable_recurse_DEPS="no"

    使用"gmake VPS build_profile=debug"进行编译没有问题

    2.重新命名测试文件名,是的,“RGB”的顺序是错误的

    3.如何测试:
    当您从 CCS 或 UART 看到以下内容时:
    将4个大小为1920x1080的 YUV422I_YUYV 视频帧加载到位置:0x81600000
    正在尝试从 SD 卡加载缓冲区。
    无法从 SD 卡加载缓冲区。
    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
    loadRaw (0x81600000、0、"C:\\display_yuv422_prog_packed_1920_1020.tigf"、32、false);

    请停止运行 DSS 的内核、然后打开 CCS 脚本控制台以键入上述命令来加载视频。

    然后、运行内核并在 UART 控制台中按"enter"、系统将要求您在 CCS 控制台和 UART 中加载第二个视频、如下所示:

    将4个大小为1920x1080的 BGR24_888视频帧加载到位置:0x825d2000
    正在尝试从 SD 卡加载缓冲区。
    无法从 SD 卡加载缓冲区。
    正在等待1分钟从脚本控制台加载缓冲区加载后,请在加载缓冲区后按任意键(在 UART 控制台中)
    loadRaw (0x825d2000、0、"C:\\display_bgr888_prog_packed_1920_1020.tigf"、32、false);

    请停止内核并使用 CCS 脚本控制台再次加载。 加载完成后、再次运行内核、在 UART 控制台中按"enter"。

    您应该会看到:

    disp_dss_app:DispApp_init()-完成!!!

    ------------------------------------
    根据下表选择要运行的测试:
    ------------------------------------

    0:DSS Video1 (YUY422I) -> DPI1 -> LCD
    1:DSS GFX (BGR888)-> DPI1 -> LCD
    2:DSS Video1. (YUV422I)+ GFX (BGR888)-> DPI1 -> LCD
    3:DSS Video1、2 (YUV422I)+ GFX (BGR888)-> DPI1 -> LCD
    4:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@1080p60
    5:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@480P60 (TDM)
    6:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@720p60
    7:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60
    8:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@XGAP60 (TDM)
    9:DSS Video1 (YUY422I) -> DPI1 -> SIL9022A-HDMI@WXGAP60
    10:DSS Video1、2、3 (YUV422I)+ GFX (BGR888)-> DPI1 -> LCD
    11:DSS Video2 (YUY422I) -> TV -> HDMI@1080p60
    12:DSS Video2 (YUY422I) -> TV -> HDMI@1080I60
    13:DSS Video1. (YUY422I) ->DPI1 -> LCD (RT 参数测试)
    14:自动运行

    100:退出

    进入 Test to Run (在 UART 控制台中):

    选择要运行的测试号#。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我最终了解了什么是"脚本控制台"。 谢谢!

    什么是"停止内核"? 我认为它是"暂停"图标(Alt+F8)。 这就是我尝试做的事情。

    我启动并加载了连接到内核 a15_0的.gel 文件、加载并运行了您的.out 文件。
    我一直等到它要求我提供一个显示转储文件。 我单击"Suspend"图标。 现在我转到脚本控制台,复制粘贴所需的 loadRaw ()命令,等待它读取并加载文件。 然后点击"Resume"图标(F8)、代码恢复执行。 现在、我可以在 Teraterm、Putty 或 CCS 控制台中按 Enter (常规控制台、其中 UART 输出复制到其中)。 或者我可以等待一分钟或更长时间-没有发生任何情况。 如果我再次挂起、堆栈跟踪显示处理器在 Task_exit()函数中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../DSS.docxHi、

    我随附了一个文字文档、其中显示了我测试该文档的步骤、如果您的侧面有任何缺失、您可以参考该文档。

    此致、Eric

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

    我无法根据您的指令运行 DSS 示例。 可能是我做了一些错误。 我遇到的问题是、从 UART、UART_readPolling_v1()读取字符的函数会尝试执行该操作、如果没有要读取的内容、它会等待1ms、然后再次尝试等 但是对于我来说,等待的函数 UART_osalDelay ()永远不会返回。 如果挂起,堆栈跟踪将显示 Task_exit()内的处理器。
    我创建了权变措施。 我注释掉了 BspUtils_uartGetChar()调用,并在下面的行中放置了一个断点。 然后调试器到达断点、我通过脚本控制台加载位图。 我对代码执行了类似的操作、要求用户提供测试 ID。
    这就是我让 DSS 示例工作的方式。 我可以在连接的 LCD 或 HDMI 上看到视频输出。
    根据您的建议更改 makefile 后、现在调试构建也可以正常工作。
    感谢你的帮助、我对此表示感谢。

    但现在我还有另一个问题。
    我们的目标是运行此 DSS 示例并确定如何复制所有初始化等、并使显示适用于我们的定制操作系统。 我们无法将整个 VPS 驱动程序(以及它所依赖的任何内容)拖到我们的项目中。 到目前为止、我们甚至无法使 HDMI 像素时钟运行。 我们认为、为了使像素时钟运行、我们缺少的是 CM_DSS_CLKSTCTRL 寄存器中的两个位、即位17和18。 该寄存器是一个状态寄存器(只读)、我们必须执行一些操作才能将这两个位置位。 我尝试单步执行 DSS 示例源代码并尝试 lo locate、会弹出这些位的特定操作。
    我发现当我在 JTAG 调试器下运行 DSS 示例时,这两个位会在处理器到达 main()后设置。 但是、当我自己运行非常相同的示例时、这两个位会关闭。 因此、必须连接一些 JTAG 调试器的工件、并且显然需要在处理器上切换某些器件。

    可能是 DSS 示例稍后调用一些驱动程序调用、这可以确保弹出这两个位、但只要它们从一开始就已设置好、就无法将其计算出来。

    我不是100%信任 CCS 中的"寄存器"子窗口、我在代码中读取该寄存器并通过 UART 输出其值:

    对于 free-runnig DSS 示例,在 main()之后:
    CM_DSS_clkstctrl = 0x102

    对于 DSS 示例,在调试器下,在 main()之后:
    CM_DSS_clkstctrl = 0x61f02

    在这两种情况下、MLO 是相同的。

    那么、我们如何设置 CM_DSS_CLKSTCTRL 的位17和18? 我们设法设置了9..12位(cm_dss_clkstctrl = 0x1f02)、但在我们调用 vpscree_dctrlHdmiPowerOn ()后、它不会打开像素时钟。 这是将 HDMI 像素时钟作为其最后操作打开的函数。

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

    DSS 示例旨在与 GEL 文件一起运行、不使用 MLO。 当 GEL 就位并且加载了 DSS 程序 GO main():。 此时0x4A00_9100 = 0x0006_1F02。 它由 GEL 例程完成:

    - prcm_set_clkdomain_state (dss_cm_core、 DSS_CM_CORE_CM_DSS_CLKSTCTRL、 SW_WKUP );
    - prcm_set_dss_mode (dss_cm_core、 DSS_CM_CORE_CM_DSS_DSS_CLKCTRL、 MODE_ENABLED );

    我不理解"自由运行 DSS 示例"中的"MLO 在两种情况下都是相同的。" ===>如果不运行 GEL 文件并依赖 MLO (次级引导加载程序)进行 DSS 时钟初始化。 然后、您需要将上述两个函数添加到 MLO 中。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。 现在、我们成功编写了自己的简单显示驱动程序、它在一定程度上起作用。
    我想向 TI 报告的内容:
    函数 vpshal_HdmiComputePll()有问题。 其任务是针对给定的像素时钟频率计算 HDMI PLL 的正确分频值、而数学运算是错误的、它不会为所有频率产生正确的值。 编写此函数的任何人都已经注意到这一点、并为频率74.25MHz 的特殊情况提供了硬编码值。 对于我们的频率(1024*768)为65MHz 的情况,此函数也会出现故障,并且计算出的分频值会导致频率等于195MHz。 错误的值似乎是 REGN;它是10、而它必须是30。
    2. HDMI_WP 模块记录不好。 TI 的驱动程序正在填充此模块的许多寄存器、它们在 CSL 中定义、但文档仅介绍两个寄存器:HDMI_WP_PWR_CTRL 和 HDMI_WP_CLK。
    3. HDMI_PHY 模块(0x58040300)似乎根本没有记录。

    再次感谢您、您提供的信息对我们来说非常有价值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    非常感谢您的反馈! 我将研究报告的问题!

    此致、Eric