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.

[参考译文] TMS320F28379D:CCS 12.1.0.00007:生成变量设置不提供预期结果

Guru**** 1079370 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28379D, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1315516/tms320f28379d-ccs-12-1-0-00007-build-variable-setting-doesn-t-give-expected-results

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARESysConfigTMS320F28388D

  使用现有编译变量定义另一个编译变量时、我收到下面的 gmake 错误、如下所示。

但是、如果我使用的是确切的路径、则不会有任何问题。

我做错了什么?

gmake:***无规则设定'C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib '为'All'所需的目标。

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

    您好,Stephen:

    您针对 driverlib 的路径在 Project Properties 中的某个位置似乎不正确(您可以通过将路径输入到文件资源管理器中来检查这一点、但不包括位于末尾的 driverlib 文件)。 请在编译器设置中的包含选项和链接器设置中的文件搜索路径选项中验证这一点。 您也可以尝试查看以下帖子。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/912806/ccs-tms320f28379d-error-no-rule-to-make-target-c-ti-c2000ware_3_02_00_00_software-driverlib-f2837xd-driverlib-ccs-debug-driverlib-lib-needed-by-all

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

    driverlib.lib 位于${project_root}/driverlib/f2837xd/driverlib 中  

    为什么 C2000WARE_DLIB_ROOT 被设置为等于 C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug?

    它应设置为等于${PROJECT_ROOT}/driverlib/f2837xd/driverlib/.

    如果我将 C2000WARE 设置为与实际 PROJECT_ROOT 目录相等、则不会发生该错误。 在这种情况下、编译器 使用 ./driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么 C2000WARE_DLIB_ROOT 被设置为等于 C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug?

    我不确定是从示例中导入的该项目吗? 你能否告诉我,我能否在我身边重复这个问题? 此外、您是否使用最新的 C2000Ware 或您为此项目使用的任何 SDK?

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

    我使用的是 C2000Ware_5_01_00_00。   

    我在创建项目时经历了几次迭代、因为没有任何 TMS320F28379 FreeRTOS 项目。  我最终使用 freertos_ex2_c28x_led_blinky_syscfg.projectspec 作为创建 TMS320F28379 projectspec 的参考文件(请参阅下文)。

    我还将以下目录复制到 CCS 工程目录中:
    device_support (仅限 TMS320F28379类型目录)、driverlib (仅限 TMS320F28379类型目录)和内核。


    <项目
    name="hmv_freertos_TMS320F28379D_syscfg"
    器件="TMS320F28379D"
    cgtVersion="22.6.0.LTS"
    products="sysconfig;c2000ware_software_package"
    outputFormat="ELF"
    启动向导="错误"
    linkerCommandFile=""
    enableSysConfigTool="true"
    sysConfigBuildOptions="--product ${C2000WARE_ROOT}/.metadata/sdk.json --设备 F2837xD --封装 F2837xD_176PTP --部件 F2837xD_176PTP"
    >
    "="" linkerbuildoptions="--entry_point code_start --stack_size=0x3F8 --heap_size=0x200 --define RAM">














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

    链接器输出如下所示。  链接器如何查找 ../driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib?  工程属性中的编译变量、链接器设置和路径 也如下所示。


    构建目标:"hmv3_freertos.out"
    调用:C2000链接器
    "c:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff /ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib --tdiag=cpu1=flash /ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include - define=debug --define_sections=10063 --suppress_warning=225 xml_link_info="hmv3_freertos_linkInfo.xml"--entry_point=code_start --rom_model -o "hmv3_freertos.out"./syscfg/board.obj /kernel/FreeRTOS/Source/queue.obj /kernel/FreeRTOS/Source/event_groups.obj /kernel/FreeRTOS/Source/portable/CCS/C2000_c28x/portasm.obj /device/device.obj ".cd"/kernel/FreeRTOS/Source/stream_buffer.obj /kernel/FreeRTOS/Source/portable/MemMang/heap_4.obj /driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib ".csm".csm"/kernel/FreeRTOS/Source/portable/CCS/C2000_c28x/port.obj /device/F2837xD_CodeStartBranch.obj ".csm".csm"/kernel/FreeRTOS/Source/timers.obj ".csm".csmv3_freertos.out"/kernel/FreeRTOS/Source/list.obj /kernel/FreeRTOS/Source/tasks.obj ".lib.k"/syscfg/c2000_freertos.obj。

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

    您好!

    根据您对问题的描述和您的项目的来源、 问题是一种途径、但我不确定您为什么会遇到此错误。 我知道您正在使用提供了 FreeRTOS 示例的器件中的 projectspec、但最好先讲解已针对 F2837xD 验证的 driverlib 示例、然后再从其中添加 FreeRTOS 功能。 如果手动更改已编写的 projectspec、则可能会引入以前没有的错误。

    请尝试从 driverlib 中的 empty_project 示例这样的示例开始、然后构建它、而不是将一个 driverlib 项目从一个器件迁移到另一个器件、并告诉我是否仍然有问题。

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

    好的、我可以尝试一下、但我想先了解链接器过程。

    C2000WARE_DLIB_ROOT 当前等于 ${C2000WARE_ROOT}/driverlib/f2837xd/driverlib.  更改 C2000WARE_ROOT = C:/ti/c2000/C2000Ware_5_01_00_00后、链接器输出如下所示。

    链接器命令行模式为 ${command}${flags}${output_FLAG}${output}${inputs}、这意味着输入是  

    ".timers.obj"/syscfg/board.obj ".event_groups.obj""./tases.obj""./queue.obj""./list.obj""./timers.obj""./event_groups.obj""./sream_buffer.obj""./portasm.obj""./heap_4.obj""./global_40.obj""./global_block.obj"/device/F2837xD_CodeStartBranch.obj /ti/c2000/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib "/syscfg/c2000_freertos.obj:sluk.c_link.c"/syscfg/c2000ware_libraries.obj /device/device.obj。

    链接器如何知道使用位于 C2000WARE_DLIB_ROOT (即 C:/ti/c2000/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib)的 driverlib.lib

    调用:C2000链接器
    "c:/ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -Ooff /ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib --define=cpu1=flash /ti/ccs1210/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include --define=debug --tmu_sections=10063 --suppress_warning=225 entry_point=code_start --rom_model -o "hmv3_freertos.out"./syscfg/board.obj /syscfg/c2000ware_libraries.obj /device/F2837xD_CodeStartBranch.obj ".data"./tasks.obj"./queue.obj"./list.obj"./list.obj"./timers.obj"./event_groups.obj"./stream_buffer.obj"."/"./port.c.obj"/device/device.obj /ti/c2000/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib "./port.c/slave.obj"/syscfg/c2000_freertos.obj。

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

    我认为这与 ${COM_TI_C2000WARE_software_package_libraries}有关、基于您之前的"Project Properties (项目属性)"屏幕截图中的"文件搜索路径"选项。 我找不到它的确切链接方式、因此我会将此文章转发给 CCS 专家、看看他们是否对该过程的工作原理有更多了解。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    链接器如何知道使用位于 C2000WARE_DLIB_ROOT 的 driverlib.lib (即 C:/ti/c2000/C2000Ware_5_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib)

    当我将  freertos_ex2_c28x_led blinky_syscfg 导入工作区时、driverlib.lib 是指向工程的链接文件:

    是否也将 driverlib.lib 作为项目的链接文件?

    谢谢

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

    是的、这解决了大谜... 谢谢。

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

    Ki 您好、

    您知道为什么 当我将 C2000WARE_DLIB_ROOT 设置为等于 ${PROJECT_ROOT}/driverlib/f2837xd/driverlib/?时、C2000WARE_DLIB_ROOT 被设置为等于 C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug 吗?   

     

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

    它在  预编译步骤期间 I echo C2000WARE_DLIB_ROOT 时给出了正确的结果。   

    但是、编译器会生成此错误:
    gmake[1]:***无规则设定'C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib '为'main-build'所需的目标。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否知道 当我将 C2000WARE_DLIB_ROOT 设置为等于 C:/ti/ccs1210/ccs/PROJECT_ROOT/driverlib/f2837xd/driverlib/ccs/Debug 时、为什么 C2000WARE_DLIB_ROOT 等于 ${PROJECT_ROOT}/driverlib/f2837xd/driverlib/?   [/报价]

    我需要检查修改后的项目。 是否有可能向我提供该信息?

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

    项目如下:

    e2e.ti.com/.../Test_5F00_v3_5F00_FreeRTOS.zip

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

    谢谢。 我不知道问题在哪里。 您的项目可以为我顺利构建:

    e2e.ti.com/.../Test_5F00_v3_5F00_FreeRTOS.log