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.

[参考译文] CCS/TDA3LA:新定制 tda3xx 电路板上的数据验证错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/844237/ccs-tda3la-data-verification-error-on-new-custom-tda3xx-board

器件型号:TDA3LA

工具/软件:Code Composer Studio

您好!

我们获得了定制板、修改了 GEL 文件并尝试使用一些简单的 DDR 测试程序e2e.ti.com/.../TDA3xx_5F00_ddr_5F00_config_5F00_custom.gel

我们在 Code Composer Studio 加载程序时遇到了一些错误

文件加载器:验证失败:地址0x00350000处的值不匹配请验证目标存储器和存储器映射。
Cortex_M4_IPU1_C0:GEL:文件:C:\PROCESSOR_SDK\DMS\CSL_DDR_TEST_APP_Ipu1_0_DEBUG.xem4:发生数据验证错误、文件加载失败。

您是否对我们的错误行为有任何看法?

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

    tda3xx 定制板的日志
    Cortex_M4_IPU1_C0:GEL 输出:===================================
    Cortex_M4_IPU1_C0:GEL 输出:==== 检测到 TDA3xx PG3.0器件====
    Cortex_M4_IPU1_C0:GEL 输出:==== 检测到 TDA3xx GP 器件===========
    Cortex_M4_IPU1_C0:GEL 输出:==== 检测到 TDA3xx 15x15器件====
    Cortex_M4_IPU1_C0:GEL 输出:===================================
    Cortex_M4_IPU1_C0:GEL 输出:-->所有控制模块锁定寄存器都被解锁<<---
    Cortex_M4_IPU1_C0:GEL 输出:-->>>更改 RTI1反应类型以避免 RTI1在3分钟后复位器件... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>>正在启动 IPU A-MMU 配置... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>IPU A-MMU 配置完成。 <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-------------------------------------------------------
    Cortex_M4_IPU1_C0:GEL 输出:-->>DDR 和 DPLL 配置基于封装选择引脚状态(Sysboot[7])<<---
    Cortex_M4_IPU1_C0:GEL 输出:-------------------------------------------------------
    Cortex_M4_IPU1_C0:GEL 输出:->>15x15检测到软件包(SYSBOOT[7]=0)... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:->>>>>OPPNOM 的 PRCM 时钟配置正在进行中... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->内核 DPLL OPP 0时钟配置正在进行中...
    Cortex_M4_IPU1_C0:GEL 输出:-->内核 DPLL OPP 已锁定,现在正在解锁....
    Cortex_M4_IPU1_C0:GEL 输出:-->>>内核 DPLL OPP 0完成!
    Cortex_M4_IPU1_C0:GEL 输出:->>>>>每个 DPLL OPP 0时钟配置正在进行中...
    Cortex_M4_IPU1_C0:GEL 输出:-->>>每个 DPLL 已锁定、现在解锁
    Cortex_M4_IPU1_C0:GEL 输出:->>>>>每个 DPLL OPP 0完成!
    Cortex_M4_IPU1_C0:GEL 输出:-->>>DSP_GMAC DPLL OPP 0时钟配置正在进行...
    Cortex_M4_IPU1_C0:GEL 输出:--> DSP_GMAC DPLL 已锁定,现在正在解锁....
    Cortex_M4_IPU1_C0:GEL 输出:->>>DSP_GMAC DPLL OPP 0完成!
    Cortex_M4_IPU1_C0:GEL 输出:-->>EVE_VID_DSP DPLL OPP 0时钟配置正在进行...
    Cortex_M4_IPU1_C0:GEL 输出:--> DSP DPLL 已锁定,现在正在解锁....
    Cortex_M4_IPU1_C0:GEL 输出:->>>EVE_VID_DSP_DPLL OPP 0完成!
    Cortex_M4_IPU1_C0:GEL 输出:->>>>>OPP 0的 PRCM 时钟配置完成! <<<--
    Cortex_M4_IPU1_C0:GEL 输出:->>>>PRCM 配置、用于所有正在进行中的模块... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000C8
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D0
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D8
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x00000130
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:-->>>>PRCM 配置已完成! <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>> DDR3初始化开始(TI 15x15 EVM)... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:->>DDR3初始化正在进行... <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>>532MHz 的 DDR DPLL 时钟配置正在进行中...
    Cortex_M4_IPU1_C0:GEL 输出:--> DDR DPLL 已锁定,现在正在解锁....
    Cortex_M4_IPU1_C0:GEL 输出:-->>>>532MHz 的 DDR DPLL 时钟配置已完成!
    Cortex_M4_IPU1_C0:GEL 输出:启动完全调平
    Cortex_M4_IPU1_C0:GEL 输出:错误:硬件调平超时
    Cortex_M4_IPU1_C0:GEL 输出:->>>DDR3 532MHz 初始化完成! <<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>TDA3xx 开始视觉平台的所有端口配置<<---
    Cortex_M4_IPU1_C0:GEL 输出:-->>TDA3xx 开始在 EVM 平台上使用 RGMII 的所有焊盘配置<<---
    Cortex_M4_IPU1_C0:GEL 输出:->>>TDA3xx 开始 GMAC_SW MDIO 焊盘配置<<<--
    Cortex_M4_IPU1_C0:GEL 输出:->>>TDA3xx End GMAC_SW MDIO 焊盘配置<<<--
    Cortex_M4_IPU1_C0:GEL 输出:->>>TDA3xx Begin GMAC_SW RGMII0焊盘配置<<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>TDA3xx End GMAC_SW RGMII0焊盘配置<<<--
    Cortex_M4_IPU1_C0:GEL 输出:-->>TDA3xx 结束在 EVM 平台上使用 RGMII 的所有焊盘配置<<---
    Cortex_M4_IPU1_C0:GEL 输出:->>>TDA3xx 结束视觉平台的所有焊盘配置<<---
    Cortex_M4_IPU1_C0:GEL 输出:--> TDA3xx 目标连接序列完成!!!!! <<<--
    Cortex_M4_IPU1_C0:GEL 输出:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Cortex_M4_IPU1_C0:GEL 输出:对于 TI EVM 上基于 STM 的跟踪、
    Cortex_M4_IPU1_C0:GEL 输出:运行 M4/CS_DAP_DebugSS 上的"Scripts"菜单中的"TDA3x EVM I2C 扩展器控制-> Enable_Trace_Pins()"函数
    Cortex_M4_IPU1_C0:GEL 输出:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Cortex_M4_IPU1_C0:文件加载程序:验证失败:地址0x00350000处的值不匹配请验证目标存储器和存储器映射。
    Cortex_M4_IPU1_C0:GEL:文件:C:\PROCESSOR_SDK\DMS\CSL_DDR_TEST_APP_Ipu1_0_DEBUG.xem4:发生数据验证错误、文件加载失败。

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

    您好!

    您能否为此可执行文件共享映射文件?

    地址0x00350000似乎很奇怪、DDR 硬件平衡也不能按照日志进行。

    更改后、此电路板上的 DDR 是否稳定?

    您是否在应用程序中进行了其他更改?

    此致、

    Rishabh

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

    您好!  

    我们为 tda3xx 构建了 CSL_DDR_TEST_APP、但我们没有更改 tda3xx_ocmc.cmd 的应用程序和链接器文件中的任何内容。 但它指向0x0030000而不是0x4030000

    OCMCRAM1_1:org = 0x00300000 len = 0x00040000 // OCMC RAM1_1*/
    OCMCRAM1_2:org = 0x00340000 len = 0x00010000 // OCMC RAM1_2*/
    OCMCRAM1_3:org = 0x00350000 len = 0x00030000 // OCMC RAM1_3*/

    我还尝试加载 wspi 写入器,即使加载失败  

    文件加载器:验证失败:地址0x83500304处的值不匹配请验证目标存储器和存储器映射。

    加载 GEL 文件后、来自0x8000000的 DDR 存储器看起来稳定。

    对于与硬件调配相关的 GEL 文件、我们必须更改什么?

    此致

    Prakash

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

    我无法上传论坛中的任何文件、论坛上似乎存在一些问题。

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

    您好 Prakash、

    RBL 为 OCMC 启用 AMmu、因此0x0030_0000正常。

    您能否使用默认 GEL 文件检查此应用程序在 EVM 上是否适合您。

    此致、

    Rishabh

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

    我们将对其进行检查并告知您状态、在此之前我们无法将任何程序加载到定制板。 它显示文件加载程序验证失败。

    在我们的 GEL 日志中、

    我们在一些寄存器中看到一些超时错误、

    CM_L4PER3_DCC1_CLKCTRL、 CM_L4PER3_DCC2_CLKCTRL、 CM_L4PER3_DCC3_CLKCTRL、 CM_L4PER3_DCC4_CLKCTRL 这些寄存器值为 0x30000202。

    在 clkctrl 中的 clksel 位中 、源显示为 0x2:选择 SYS_CLK2。  

    MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000C8
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D0
    Cortex_M4_IPU1_C0:GEL 输出:等待模块空闲状态....
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D0
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D8
    Cortex_M4_IPU1_C0:GEL 输出:等待模块空闲状态....
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x000000D8
    Cortex_M4_IPU1_C0:GEL 输出:超时
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x00000130
    Cortex_M4_IPU1_C0:GEL 输出:等待模块空闲状态....
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_BASE:0x4A009700
    Cortex_M4_IPU1_C0:GEL 输出:MODULE_OFFSET:0x00000130

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

    您好!

    有关数据验证错误、请参阅 https://e2e.ti.com/support/tools/ccs/f/81/t/738865

    您的定制板上还有 SYSCLK2吗?

    此致、

    Rishabh

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

    您好!

    我们在定制板上没有 sysclk2、

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

    我们将在下面禁用模块  

    Cortex_M4_IPU1_C0:GEL 输出:模块:DCC1 (CD_L4PER3、PD_L4PER)
    Cortex_M4_IPU1_C0:GEL 输出:模块状态:已禁用
    Cortex_M4_IPU1_C0:GEL 输出:时钟状态:开
    Cortex_M4_IPU1_C0:GEL 输出:电源状态:开
    Cortex_M4_IPU1_C0:GEL 输出:最终状态:禁用模块
    Cortex_M4_IPU1_C0:GEL 输出:================================================
    Cortex_M4_IPU1_C0:GEL 输出:模块:DCC2 (CD_L4PER3、PD_L4PER)
    Cortex_M4_IPU1_C0:GEL 输出:模块状态:已禁用
    Cortex_M4_IPU1_C0:GEL 输出:时钟状态:开
    Cortex_M4_IPU1_C0:GEL 输出:电源状态:开
    Cortex_M4_IPU1_C0:GEL 输出:最终状态:禁用模块
    Cortex_M4_IPU1_C0:GEL 输出:================================================
    Cortex_M4_IPU1_C0:GEL 输出:模块:DCC3 (CD_L4PER3、PD_L4PER)
    Cortex_M4_IPU1_C0:GEL 输出:模块状态:已禁用
    Cortex_M4_IPU1_C0:GEL 输出:时钟状态:开
    Cortex_M4_IPU1_C0:GEL 输出:电源状态:开
    Cortex_M4_IPU1_C0:GEL 输出:最终状态:禁用模块
    Cortex_M4_IPU1_C0:GEL 输出:================================================
    Cortex_M4_IPU1_C0:GEL 输出:模块:DCC4 (CD_L4PER3、PD_L4PER)
    Cortex_M4_IPU1_C0:GEL 输出:模块状态:已禁用
    Cortex_M4_IPU1_C0:GEL 输出:时钟状态:开
    Cortex_M4_IPU1_C0:GEL 输出:电源状态:开
    Cortex_M4_IPU1_C0:GEL 输出:最终状态:禁用模块

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

    您好 Prakash、

    这些模块可能不是由 GEL 启用的。

    我建议您逐一尝试解决问题。

    DDR 应用在 EVM 上是否适合您?

    此致、

    Rishabh

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

    您好 Prakash、

    此外、您还可以检查 CM_L4PER3_DCCx_CLKCTRL 寄存器以实际查看 DCC 模块的状态。

    例如、对于 DCC3、寄存器地址为0x4A00_97D8。

    此致、

    Rishabh

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

    您好!

    DDR 应用正在 EVM 上工作、我希望我们根据我们对 sys_clk2启用的默认 DCC 模块的理解解决了超时寄存器错误、因此我们将 DCC1、DCC2、DCC3、DCC4的寄存器值更改为0x01000002、该值选择 sys_clk1。 现在、我们不会得到超时错误。

    在定制板上、我们能够在 OCMC RAM 上加载 SBL-QSPI.xem4、但不能在 CSL-DDR 应用上加载。

    现在、我们在 DDR 的硬件水平调整上出现了错误。

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

    您好 Prakash、

    您是否已在 TDA3xx_multicore_reset.gel 中将 VISION_SDK_CONFIG 设置为1?

    此外、请开始有关 DDR 硬件水平调整问题的新主题、以便硬件专家为您提供帮助。

    此致、

    Rishabh

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

    您好!

    我们只能从0x0030 0000到0x0034FFFF 访问一半的 OCMC RAM、大小约为256 KB。

    但在 Csl DDR 测试应用程序中,链接器脚本指向0x00350000,因此加载程序失败,但 EVM 从未出现这样的错误,


    OCMCRAM1_1:org = 0x00300000 len = 0x00040000 // OCMC RAM1_1*/
    OCMCRAM1_2:org = 0x00340000 len = 0x00010000 // OCMC RAM1_2*/
    OCMCRAM1_3:org = 0x00350000 len = 0x00030000 // OCMC RAM1_3*/
    对于 EVE,/*SBL 将使用地址0x8000000中的1KB 空间*/
    DDR3_A8:org = 0x80000400 len =(0x02000000 - 0x400)/* 32 MB *
    DDR3_DSP:org = 0x82000000 len = 0x02000000 // 32 MB */
    DDR3_M4:org = 0x84000000 len = 0x02000000 // 32 MB */
    DDR3_SR0:org = 0x86000000 len = 0x01000000 // 16 MB */
    DDR3_M3VPSS:org = 0x87000000 len = 0x01000000 // 16 MB */

    /*指定段分配到内存中*/

    部分

    .intvecs:load > IRAM_MEM
    .intc_text:load > IRAM_MEM
    .TI.noinit:load > IRAM_IPU_VTBL

    init:load > OCMCRAM1_3

    .text:load > OCMCRAM1_3 /* code */
    .data:load > OCMCRAM1_3 /*已初始化全局和静态变量。 *
    .bss:load > OCMCRAM1_3 //未初始化或零初始化*/
    /*全局和静态变量。 *
    RUN_START (BSS_START)
    RUN_END (BSS_END)
    .const:load > OCMCRAM1_3 /*全局常量*/
    .cinit:LOAD > OCMCRAM1_3
    .stack:load > OCMCRAM1_2 /*软件系统堆栈*/
    plt:LOAD > OCMCRAM1_3
    .sysmem:load > OCMCRAM1_3
    my_sect_DDR:负载> OCMCRAM1_3

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

    您好!

    是否在 GEL 中映射了完整的 OCMC 内存

    GEL_MapAddStr (0x40300000、0、0x00080000、"R|W|AS4"、0);

    此致、

    Rishabh

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

    您好!  

    此映射已在 TDA3xx_cortexM4_common.gel 文件中完成、  

    GEL_MapAddStr (0x40300000、0、0x00080000、"R|W|AS4"、0);    /* OCMRAM1 - */,映射内存已显示在 code composer studio 的内存映射工具中。

    此致

    Prakash  

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

    您好!

    您是否更改了 Ammu 映射? 您是否能够从 CCS 中的存储器浏览器访问 OCMC?

    您能否指定您正在使用的确切 SoC?

    此致、

    Rishabh

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

    您好!

    我没有听到您的反馈、我假设您能够解决您的问题。
    如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。

    此致、
    Rishabh