查看 TMDSEVM572X EVM 附带的示例代码、我注意到所有 DSP 执行都是从 L3存储器执行的。 L2 未加载程序。
您是否有构建 DSP 代码的示例或至少指导、这些代码将被加载到本地存储器中、然后在启动时加载、尤其是在 ARM Linux 环境中?
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 EVM 附带的示例代码、我注意到所有 DSP 执行都是从 L3存储器执行的。 L2 未加载程序。
您是否有构建 DSP 代码的示例或至少指导、这些代码将被加载到本地存储器中、然后在启动时加载、尤其是在 ARM Linux 环境中?
感谢您的快速回复。
实际上、我一直在使用您提到的许多示例、我注意到、根据可用的 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