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:CCS10调试应用程序:GEL 文件- DDR 配置-连接目标 A15期间的地址读取失败

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/922829/ccs-ccs10-debugging-application-gel-files---ddr-config---address-read-failure-during-connecting-target-a15

工具/软件:Code Composer Studio


Code Composer 版本:10.0.00010
当前硬件的电路板启动已完成。 电路板已启动并正在运行。
要求是从应用源代码到驱动程序层进行调试。

在 TDA2Pxx (运行 TI RTOS)上进行调试时、使用 Code Composer Studio 并使用可用的 CCS TDA2Px GEL 文件的多处理器(M4和 A15)环境。

我们可以通过在以下 GEL 文件中注释 TDA2Px_DDR3_666MHz_Config ()函数调用、在处理器之间进行调试。 我们正在努力了解问题的根本原因。
下面是详细说明的问题:

-为了在多处理器 M4和 A15上进行调试、我们在 GEL 文件中进行了以下调整:TDA2Px_startup_common.gel

在下面的函数中,OnTargetConnect()- TDA2Px_EVM 在我们的案例中为 true -
我们的理解是、可以禁用/注释所有 PRCM 配置、PAD 配置和 DDR 配置 functon 调用。 由于时钟、DDR 和焊盘配置已在引导加载程序期间完成。
但是、启用 PRCM 配置、PAD 配置和 DDR 配置 functon 调用应该重新配置、而不会导致任何问题。 但在我们的案例中、TDA2Px_DDR3_666MHz_Config()函数调用终止为读取错误。
在 CCS 上连接 A15目标时、我们面临以下错误。

CortexA15_0:GEL 输出:DDR DPLL 已锁定、现在正在解锁...
CortexA15_0:GEL 输出:666MHz 的 DDR DPLL 时钟配置已完成!
CortexA15_0:GEL:执行 OnTargetConnect()时出错:目标无法读取0x4C000060
在 IODFT_TLGC=*((unsigned int *)(base_addr+0x60U)[TDA2Px_DDR_config.gel:255]
在 TDA2Px_RESET_EMIF_params_DDR3_666 (0x4c000000U)[TDA2Px_DDR_CONFIG.gel:1382]
在 TDA2Px_DDR3_666MHz_Config ()[TDA2Px_STARTUP_common.gel:43]
在 OnTargetConnect()

无法读取地址0x4C000060的原因是什么? 当通过引导加载程序引导时正确执行相同的函数(TDA2Px_RESET_EMIF_params_DDR3_666)时。
2.是否需要在'if (TDA2Px_EVM = true)'条件下执行代码块? 是否可以通过注释忽略它



文件:TDA2Px_startup_common.gel

OnTargetConnect()
{
GEL_TextOut ("--> TDA2Px 目标连接序列开始... <<-\n");

TDA2Px_target_connect_sequence();

IF (TDA2Px_EVM)
{
/* EVM 选项*/

/*根据器件和 OPP 进行选择*/
TDA2Px_PRCM_Clock_Config_OPPNOM_ADAS ();
TDA2Px_PRCM_Clock_Config_OPPOD_ADAS ();
TDA2Px_PRCM_Clock_Config_OPPHIGH_ADAS ();

TDA2Px_PRCM_Module_AllEnable_Config ();

//TDA2Px_DDR3_666MHz_Config ();
//TDA2Px_DDR3_400MHz 配置();
//TDA2Px_DDR2_400MHz 配置();

TDA2Px_PAD_VisionAll_Config ();
TDA2Px_PAD_PAB_MII_Config ();
TDA2Px_PAD_PAB_RMII_Config ();
}
其他
{
/* PAB 选项*/
TDA2Px_PRCM_Clock_Config_OPPNOM_TDA2x_generic ();

TDA2Px_PRCM_Module_AllEnable_Config ();

TDA2Px_DDR3_666MHz_Config ();
//TDA2Px_DDR3_400MHz 配置();
//TDA2Px_DDR2_400MHz 配置();

//TDA2Px_EMIF1_EMIF2_Interleave_128byte ();

TDA2Px_PAD_VisionAll_Config ();
//TDA2Px_PAD_PAB_MII_Config ();
//TDA2Px_PAD_PAB_RMII_Config ();
}

GEL_TextOut ("--> TDA2Px 目标连接序列完成!!!! <<-\n");
}

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

    您好!

    请参阅以下文档中提到的步骤。

    文件路径:VISION_SDK/docs/UserGuides/VisionSDK_UserGuide_TDA2px.pdf (第3.7章使用 CCS 加载)

    谢谢

    加维拉尤

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

    Gavirju 您好!

    感谢您的回复。

    错过了这个细节-我们在这里使用一个定制电路板。

    在这种情况下,以下行是否适用于我们?

    如下所示、更改 VISION SDK 的以下 GEL 文件- TDA2xx_multicore_reset.gel o 将 VISION_SDK_config 设置为1 o 将 VISION_SDK_CONFIG_OLD 设置为0  对于 VisionSDK 的旧版本(2.08和旧版本)、应设置为1 o 将 EVE_SW_CONFIG 设置为0  

    VISION SDK 已移植 、定制板工作正常、即启动良好。 我们目前正在修改 GEL 文件、以便能够在 M4和 A15上进行调试。

    请回答 以下问题:  

    无法读取地址0x4C000060的原因是什么? 当通过引导加载程序引导时正确执行相同的函数(TDA2Px_RESET_EMIF_params_DDR3_666)时。
    2.是否需要在'if (TDA2Px_EVM = true)'条件下执行代码块? 是否可以通过注释忽略它

    谢谢、

    Pramod  

    谢谢、

    Pramod

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

    您好!

    我知道引导模式吗? (SD 引导、CCS 引导或 QSPI 引导)

    谢谢

    加维拉尤

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

    请忽略我在上一帖子中建议的步骤(即 EVM 板)

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

    Gavirju、您好!

    引导模式为 QSPI 引导。

    谢谢

    Pramod

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

    您好!

    请在连接到 SD 引导模式和 QSPI 引导模式的目标之前删除 GEL 文件。

    用于对时钟、DDR 等进行某种初始化的 GEL 文件 SD 和 QSPI 引导不需要此操作、因为此初始化将由目标中的映像完成。 仅当我们从 CCS 引导时才需要 GEL 文件。

    谢谢

    加维拉尤

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

    Gavirju、您好!

    感谢您的回复。  

    仅删除 TDA2Px_startup_common.gel 就足够了?

    请查看以下错误的任何原因-

    无法读取地址0x4C000060的原因是什么? 当通过引导加载程序引导时正确执行相同的函数(TDA2Px_RESET_EMIF_params_DDR3_666)时。

    谢谢

    Pramod

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

    您好!

    启动目标配置后、在连接到目标之前、对每个内核执行以下步骤。

    谢谢

    加维拉尤

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

    感谢您的回复。