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.

[参考译文] DRA829J:当 make 中不包含 ti.csl.init.aer5f 时、mcu3_1 (main-r5F1_1)无法引导

Guru**** 2465890 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468081/dra829j-mcu3_1-main-r5f1_1-not-booting-when-ti-csl-init-aer5f-is-not-included-in-make

器件型号:DRA829J

工具与软件:

您好、TI 团队:

我在为 MCU3_1生成库时遇到问题。 但首先、我想提供一些背景信息:  

  • 我将使用 sdk9为这些内核生成应用:MCU1_0、MCU2_0、MCU2_1、MCU3_0和 MCU3_1。
  • 我的编译系统仅基于生成所选内核所需的依赖项。 例如、如果我键入  make -C $SDK_RTOS_J721E_PATH/ti-processor-sdk-rtos-j721e-evm-09_02_00_05/pdk_jacinto_09_02_00_30/packages/ti/build -s pdk_libs board=j721e_evm core=mcu3_1 它将仅为 MCU3_1生成这些依赖项。
  • 依赖关系生成后、我会调用目标来编译主应用程序、在 SDK 中生成的库会链接到主应用程序。 对于每个内核、我将遵循该过程。
  • 我的环境旨在以隔离的方式生成应用程序、避免与其他内核的任何依赖关系。 对于干净的编译、我执行以下操作:清理 SDK、针对所选内核编译 SDK、清理应用程序和编译应用程序。

问题是、对于 MCU3_1内核、没有生成一个库、我认为这是我问题的根本原因。  ti.csl.init.aer5f 库丢失。 在针对 MCU3_0而不是 MCU3_1编译 SDK 时、会生成这个函数。 我的问题是:

  • 这是 MCU3_1的 SDK 构建系统中的错误吗?
  • 为什么需要这个库处于链接过程中? 最初、我的应用程序不包含该函数、但编译成功了、只有在添加库后才会运行。 我不知道应用程序是如何工作的、即使没有对它进行显式调用(在代码中)、也只能通过添加行来包含 LIB? 我的观点是、每当你使用一个特定库中的某些接口时、必须将这个库包含在链接过程中、为什么这里不同呢? 如果不包含库并使用其接口、应该会产生错误。 下面是该更改的屏幕截图:

       

在这两种情况下、应用程序都已成功编译、但左侧的应用程序会运行、右侧的应用程序则不会运行。

我知道此依赖关系用于初始化、我不理解的是仅将输出包含在链接过程中是如何变化的。

此致、

Jos é Ambrocio

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

    尊敬的 Jose:

    我在 SDK 上检查一下。 最可能的情况是、它应该是生成的、如果不是、则可以通过简单的更改包含它。

    此致、

    Brijesh

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

    有任何相关更新? 我在 csl_component.mk 中手动添加了目标以解决我的问题。 dafult 列表不包含 core3_1。

    该库的集成情况如何? 为什么仅仅通过将库添加到链接过程来使应用正常运行? 我发布的图片显示了使该应用正常工作所需的更改。 没有代码更改、只有链接过程。

    此致、

    Jos é Ambrocio

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

    再过一周没有任何反馈、如果您能更新是否正在调查、将会更好、因此我可以自行继续工作。

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

    尊敬的  Jos é:

    是的、这似乎是一个错误。 此库包含 mcu3_1所需的重要初始化代码、因此需要包含该库。 但是、我们不会看到此问题、因为此库对于 CSL/lib/j721s2/r5f/release/ti.csl.init.aer5f 中的所有 R5F 似乎都是通用的。 然而、由于您只为 mcu3_1生成、所以您会看到这个问题。  

    您能否在 CSL_component.mk 文件中包含此简单更改?  

    ifeq ($(soc)、$(filter $(soc)、j721e j721s2 j784s4 j742s2 j7200))
    CSL_INIT_$(SOC)_CORELIST = mpu1_0 mcu1_0 mcu1_1 MCU2_0 MCU2_1 mcu3_0 mcu3_1 c7x_1 c7x-Hostemu
    字节序

    此致、

    Brijesh