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.

[参考译文] TMS320C6678:DDR 控制器:确定它是否已初始化的最佳方法

Guru**** 2560320 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610631/tms320c6678-ddr-controller-beast-way-to-to-determine-if-it-is-already-init-or-not

器件型号:TMS320C6678

您好!

是否有可靠的方法来确定 DDR 是否已初始化?

我的 bool 加载程序会对主 PLL 进行重新编程并初始化 DDR 控制器、然后加载应用。

由于我希望在从引导加载程序启动时以及在 CCS 调试不引导时使用相同的构建、因此我的应用程序应包含执行一些初始化的代码、这些初始化通常由引导加载程序执行:

  • 直接从 CCS 运行(调试):初始化 DDR
  • 从引导加载程序运行(操作):不要重新启动
  • 从不初始化 DDR 的较旧引导加载程序版本运行

到目前为止、我尝试使用一个非常简单的内存测试来确定 DDR 是否正常工作:我读取了两次同一位置。 如果读取的值始终相同、则会初始化 DDR、否则不会初始化。

这种方法是可靠的、还是会产生错误的结果(例如、在 CPU 复位之后、但不是 DDR 复位)?

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

    我已将此内容转发给引导加载程序初始化专家。 他们的反馈应发布在此处。

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

    阿尔贝托

    这不是一个好的解决方案。  如果未初始化、DDR 访问结果是不确定的。  您的是系统问题。  您可以在中间引导加载程序执行期间将信息放入内部存储器、以了解之前发生了什么。

    Tom

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

    我已经在内部存储器保留区中有信息、但我正在寻找另一种解决方案、因为我希望使引导加载程序/应用程序独立。 具体而言、应用程序我希望拥有一个对引导加载程序一无所知的应用程序。

    在 DDR 文档(请注意、我对 DDR 和 DDR 控制器一无所知)中、我不清楚是否可以始终使用"DDR3存储器控制器状态寄存器"中的 IFRDY 位。
    也就是说、如果 DDR 控制器尚未初始化、是否正确假设 IFRDY=0?
    嗯、我可能无法区分未配置的控制器和错误情况、但出于我的需要、我认为在出现错误时进行几秒钟重新配置是可以的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    阿尔贝托

    为什么不简单地再次重复 DDR 初始化?  这是一个强大的解决方案、因为您在开始运行应用程序时不关心 DDR 内容。

    Tom

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

    [引用用户="Tom Johnson 16214"]

    阿尔贝托

    为什么不简单地再次重复 DDR 初始化?  这是一个强大的解决方案、因为您在开始运行应用程序时不关心 DDR 内容。

    Tom

    [/报价]

    我想通过隔离引导加载程序中的差异、使应用独立于某些电路板特性、例如 DDR (我具有不同版本的电路板、具有不同的 DDR 和 DDR 配置参数)。 同时、我希望与 不初始化 DDR 的旧引导加载程序版本(仅安装在某些旧电路板上)兼容。

    嗯、我可以找到其他方法来解决我的问题。

    到目前为止,我的问题是: 不,没有可靠的方法来确定 DDR 控制器是否已经初始化。 正确吗?

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

    阿尔贝托

    这是一个异常请求。  我不知道还有人试图这样做。  因此、我不愿意提供"经验证"的解决方案。  检查 IFRDY 位应指示执行了初始化序列(即水平调整状态机成功完成)。  但是、这并不是 DDR 接口当前正常工作的可靠指示。  如果您愿意、欢迎您使用此解决方案。

    Tom