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.

[参考译文] 编译器/TDA2EVM5777:如何使用 Remoteproc 在 TDA2外部 SDK 上启动 C6xx

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639885/compiler-tda2evm5777-how-to-bring-up-c6xx-on-tda2-outside-sdk-using-remoteproc

器件型号:TDA2EVM5777
主题中讨论的其他器件:TDA2

工具/软件:TI C/C++编译器

您好*!

我需要在 SDK 外部使用 Linux (Remoteproc)固件机制启动 TDA2的 DSP、而无需使用 CCS 和 SYS/BIOS/RTOS。  

我需要什么以及在 TI 提供的 visual SDK 中的什么位置可以找到它?  

(当然,需要使用 cl6x 来构建 ELF,这是一个用于 Remoteproc 的自定义映射表,类似于设置 IRQ-vector-table 并跳转到 C 代码的"main..."。)

是否有可用的示例?

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

    我已将您的问题转交给一位专家征求意见。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在此处找到有关 Remoteproc 的信息:
    lwn.net/.../

    该映像需要具有用于 Remoteproc 的资源表才能加载 DSP ELF 映像。 例如、使用 SYS/BIOS 并加载 Remoteproc 的映像、您可以检查 IPC3.x 代码:

    gitorious.ti.com/.../ipcdev
    processors.wiki.ti.com/.../IPC_Users_Guide

    您可能会发现此其他类似的 e2e 查询对 e2e.ti.com/.../948787也很有用

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

    感谢您提供的链接、但这并不是我开始使用时所需要的。

    几周前、我做了我认为需要启动 DSP 的事情:
    资源表几乎已经链接到 ELF 文件中、我将"interrupt.c"和"intvecs.asm"作为类似于"启动代码"的内容、并编写了一个包含计数无穷大循环的非常简单的"main.c"。。。。

    首先、没有理由不起作用、但我只得到 DSP MMU 的一个" MMU 故障"。 我认为、分割存储器的 L3准备工作正常、但我从"visual SDK"中取出的内容未正确调整、直到现在我尝试找出我的错误。

    因此我需要帮助、但我在论坛或 TI 的 FAE 中得到的只是"IPCxxx"的链接、我不能相信没有非常简单的可用示例、这些示例不使用 SYS/BIOS、RTOS 片段... 复杂的构建环境、可在 XDC 上使用数十个 SOC ... 大多数代码设计为在没有 MMU 的情况下运行... 当然、CL6X 工具链非常强大、有很多可能性... 再说一次:不知道发生了什么错误。

    因此、我需要帮助才能启动 DSP 真正裸机、只使用 TI 工具链和 Remoteproc。

    意图:

    我的用例要求嵌入在非常安全的代码需求中(DSP、IPU 和 EVE - Linux 仅使用舒适的网关...)。

    因此、我必须仅实施真正需要的代码。 禁止在 DSP 和子内核中使用通用 BIOS 或引导加载程序。

    我为 IPU 成功完成了这项工作、但现在我使用 DSP 实现了同样的目标...
    所以我需要帮助... 紧急。

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

    您还可以查看此 E2E 主题、了解有关类似主题的讨论:
    e2e.ti.com/.../640064

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

    * LOL*
    这有点有趣:
    Needhu 是我在 TI 的"直接"联系人;-)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题已解决:

    在查看整个代码而没有发现任何错误后、我查看了 CL6X 及其链接器选项的调用:

    我使用 readelf -A 读取 ELF、并看到入口点指向毫无意义的符号。
    我想知道 CL6X 设置该地址的决定... 我再次阅读本手册:

    downloads.ti.com/.../linker_description.html

    我可以手动设置入口点:
    --entry_point=...

    我从 SDK 中取出的代码、DSP 必须跳转到"_vector0"以进行引导。

    这解决了问题、即 DSP 启动。