工具与软件:
您好、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