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.

[参考译文] TMDSEVM572X:DSP 程序从本地存储器加载并运行

Guru**** 2612355 points
Other Parts Discussed in Thread: TMDSEVM572X

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/655672/tmdsevm572x-dsp-program-loaded-and-run-from-local-memory

器件型号:TMDSEVM572X

查看 TMDSEVM572X EVM 附带的示例代码、我注意到所有 DSP 执行都是从 L3存储器执行的。 L2 未加载程序。

您是否有构建 DSP 代码的示例或至少指导、这些代码将被加载到本地存储器中、然后在启动时加载、尤其是在 ARM Linux 环境中?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Richard、

    请参阅以下文档:
    RTOS 软件开发人员指南、
    processors.wiki.ti.com/.../Processor_SDK_RTOS_Software_Developer_Guide
    IPC 用户指南、
    processors.wiki.ti.com/.../IPC_Users_Guide

    对于 Linux 环境下的 IPC:
    处理器 SDK Linux IPC:HTTP、
    processors.wiki.ti.com/.../Processor_SDK_Linux_IPC
    AM57xx 上的 Linux IPC、
    processors.wiki.ti.com/.../Linux_IPC_on_AM57xx
    在 DRA7xx/AM572x 上运行 IPC 示例、
    processors.wiki.ti.com/.../AM572x。

    希望这些文档对您有所帮助。

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

    感谢您的快速回复。

    实际上、我一直在使用您提到的许多示例、我注意到、根据可用的 cmd 文件和链接生成的*。map 文件、您正在从第3层存储器运行 DSP 代码。 嘿、会出现什么问题?

    因此、我已经深入研究了一些东西、找不到示例代码实际将代码加载到 DSP 私有 L2存储器中的实例。 是这样吗? 在这方面、您有没有很好的理由这么做?

    我想您的示例开发人员没有尝试过 AM572x 设置、但我希望我错了。

    我想加载的内容远不止简单地从 L3转移到 L2、这是通过复位 DSP 和一系列 memoves 启动的、但当然、运行时的链接地址也会有很大的不同。 TI 工具很好地区分加载地址和运行时地址、这必须在某个地方完成、但在哪里? 我有的 makefile 链接到同一位置加载和执行、位于第3层。 不适合执行速度、这是我项目的关键要求。

    当我~您的文件 k Ω/pdk_am57xx_1_0_8/packages/ti/CSL/SoC/am572x/src/hw_ctrl_core.h 时、我会发现这一点

    #define CTRL_CORE_CONTROL_DSP1_RST_VECT                                                                    (0x45cU)
    #define CTRL_CORE_CONTROL_DSP2_RST_VECT                                                                    (0x460U)

    但是、当我查看技术参考、AM572x Sitara 技术参考手册时、我会看到这一点

    CTRL_CORE_CONTROL_DSP1_RST_VECT RW 32 0x0000 055C 0x4A00 255C
    CTRL_CORE_CONTROL_DSP2_RST_VECT RW 32 0x0000 0560 0x4A00 2560

    好消息是、我没有看到任何"C"模块中使用了这个宏。 但是、在我看到有人在我使用的目标中实际执行此操作的示例之前、您可以理解我不愿意编写引导加载程序。

    因此,我再次要求对我的问题有一个更具体的答案,您是否有任何 AM572x 示例,其中 DSP L2存储器在执行之前加载了代码和.cinit?

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

    您好 Richard、

    我不确定我们的示例为什么不会从 L2运行代码。 我想这是因为尺寸限制、我们的许多示例可能不适合 L2。

    如果要将代码移动到 L2、则需要在项目中更改配置文件。 我附加了我们的 I2C 示例之一、并对其进行了修改、以耗尽 L2以供参考。 如果 L2中的空间不足、则可以使用 OCMC、这比使用外部存储器的速度要快。

    e2e.ti.com/.../I2C_5F00_BasicExample_5F00_evmAM572x_5F00_c66xExampleProject.zip

    您是否正在使用 IPC? 如果是这样、您将需要在项目的 config.%ld 文件中对 codeMemory/dataMemory 进行类似的更改。

    我希望这能回答你的问题。 如果没有、请告知我们。  

    此致、

    Sahin