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.

[参考译文] LAUNCHXL-F280049C:CCS9.3 &CCS12.4符号未定义、但在编辑器中解析

Guru**** 2556210 points
Other Parts Discussed in Thread: C2000WARE, UNIFLASH, SYSCONFIG, SFRA

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1252838/launchxl-f280049c-ccs9-3-ccs12-4-symbol-not-defined-though-it-resolves-in-editor

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:C2000WAREUNIFLASHSysConfigSFRA

大家好!

IDE 是如何解析结构句柄和编辑器的 extern 指针名称的符号的?将鼠标悬停 Ctrl+单击会遍历到另一个 H 文件中的定义、但链接器无法通过调用的 C 文件中引用的 include 找到该符号的?

我已经尝试在文件树中上下移动函数调用方文件夹对下面外部符号的引用、每次都重新编译索引。 订购但向 C 文件添加包含路径会从#include 文件名链接定义的符号。

将文件路径添加到库选项卡会产生"无法打开"文件错误。 因此、TI 指向#10234-D 的链接建议将路径添加到库选项卡 est.h、它不是*。lib 文件。 这些更新的 MCSDK 工程不会链接从 est.h 的 extern top 调用 est.h 中的另一个 C 文件调用函数所命名的符号或添加的 include。 将 extern 移动到其他位置会产生相同的编译错误消息。 在 CCS 编辑器中设置链接器本地工程并设置索引以搜索打开的文件不会解决符号链接故障问题。 以前版本的<7.0 CCS 如果在编辑器中解析符号名称、则链接器在查找该符号时没有问题。

如何修复以下错误消息奇怪地不发生在 SDK v4.0非常相同的 C 文件命令.c 中?

示例: EST_setFlag_enableRsOnLine (estHandle、false);

//! \Brief 定义估算器(EST)句柄
//!
typedef 结构_EST_Obj_* EST_Handle;

extern EST_Handle estHandle;

类型描述资源路径位置
C/C++问题未解析符号 estHandle、首先在./src_control/fexton/commands.obj is15_uvmcsdk_f28004x 中引用
C/C++问题 #10234-D 未解析符号仍为 is15_uvmcsdk_f28004x
C/C++问题#10010链接过程中遇到错误;"is15_uvmcsdk_f28004x.out"未编译 is15_uvmcsdk_f28004x
C/C++ problem gmake[1]:***[is15_uvmcsdk_f28004x.out]错误1 is15_uvmcsdk_f28004x
C/C++ problem gmake:***[all]错误2 is15_uvmcsdk_f28004x

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

    您好!

    但链接器无法通过调用 C 文件中的引用 include 找到符号?

    您能告诉我您看到的错误吗?

    提示:在将库路径添加到已定义的 extern 符号的符号文件属性选项卡后、将出现一条新的错误消息"无法打开文件权限被拒绝"

    新错误似乎是由 Windows 10文件安全性导致的、该安全性指示 CCS 在 CCS 设置期间未向用户组添加名称、或未通过 REX 将工程导入到正在创建的新文件夹中。

    #6001无法打开文件"C:/ti/c2000/C2000Ware_MotorControl_SDK_4_00_00_00/libraries/observers/est_lib ": 权限被拒绝

    [/报价]

    确保您 对中下载的文件目录 CCS 和 C2000Ware 具有适当的权限、并且对 CCS 没有防火墙限制(或 CCS 被排除在任何此类安全限制之外)。

    此致、

    阿米尔·奥马尔

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

    您好、Omer:

    我把第二个问题编辑出来,奇怪的是,你仍然在看它。

    链接期间符号(estHandle)无法解析。 似乎原始工程没有(estHandle)的全局导出功能、添加的 C 文件调用方(commands.c)无法使用函数。 内联通用 MCSDK FAST 估算器中的电机控制需要函数。 奇怪的是、外部符号指针可以正常工作、但 SDK 在链接期间尚未解析 MCSDK。 将 extern 符号(estHandle)转换为(est.h)内联函数的调用方是两个工程的相同调用。

    下面是由调用方转换的每个内联函数(est.h)的导出结构体句柄指针。 typedef 结构体(bool)中定义的布尔标志变量不链接添加到 MCSDK 示例工程中的自定义模块的状态更改、仍存在问题。 然而、相同的 bool 逻辑标志(userParams.h)在从(commands.c) SDK 示例项目切换为 true/false 时会更改状态。 我们必须围绕现有示例模块开发定制应用、因为这些示例模块是针对 FAST 估算器控制(est.h)的专用 TI 专有库调用。

    commands.c:EST_setFlag_enableRsRecalc (estHandle、false);

    EST.h://! \Brief 定义估算器(EST)句柄
         typedef 结构_EST_Obj_* EST_Handle;

         extern EST_Handle estHandle;

    类型描述资源路径位置
    C/C++问题未解析符号 estHandle、首先在./src_control/fexton/commands.obj is15_uvmcsdk_f28004x 中引用
    C/C++问题 #10234-D 未解析符号仍为 is15_uvmcsdk_f28004x
    C/C++问题#10010链接过程中遇到错误;"is15_uvmcsdk_f28004x.out"未编译 is15_uvmcsdk_f28004x
    C/C++ problem gmake[1]:***[is15_uvmcsdk_f28004x.out]错误1 is15_uvmcsdk_f28004x
    C/C++ problem gmake:***[all]错误2 is15_uvmcsdk_f28004x

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

    您好!

    我看到您有 extern 声明 estHandle、但您还有定义它的位置吗? extern 只说明 变量/指针存在、但它尚未在另一个文件中进行解析/定义(我将在我身边复制这一点、因此如果您可以提供它、我将尝试进一步调试)。

    此致、

    阿米尔·奥马尔

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

    是的、句柄定义为上述 POST 的 typedef 结构体。

    我发现 WA 的一项处理方法是删除函数(est.h)中的 extern 别名指针(estHandle)。 要求还删除调用方 MCSDK 项目中共享内联函数 est.h 的(obj->estHandle)指针。 则由于未使用该符号、链接器没有问题。 虽然吸引我眼球的是外部符号和函数都含有关键字(extern)。 此 WA 不会影响 SDK 工程、因为它使用不同的文件夹路径 est_lib。

    示例:(EST.h): extern void EST_setFlag_enableRsRecalc (const bool state);//删除{EST_handle、}

    调用方共享同一函数(motor1_drive.c): EST_setFlag_enableRsRecalc (obj->flagEnableRsRecalc);//remove{obj->estHandle、}

    /cfs-file/__key/communityserver-discussions-components-files/171/est.zip

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

    您好!

    我很抱歉,我不明白你的帖子。 我能够重新创建我认为大家面临的情况、并且顺利构建了主代码。

    main.c:

    #include "temp.h"
    
    int funcCaller(newStruct thing, bool val);
    
    //
    // Main
    //
    void main(void)
    {
        newStruct estHandle;
        int newNum;
        while(1)
        {
            newNum = funcCaller(estHandle, false);
        }
    }
    
    int funcCaller(newStruct thing, bool val)
    {
        int a = 0;
        thing->t = 0;
        thing->y = 1;
        if(val)
        {
            a = 1;
        }
        else
        {
            a = 2;
        }
        return a;
    }

    temp.h:

    struct _newStruct_{
        int t;
        int y;
    };
    typedef struct _newStruct_ *newStruct;
    extern newStruct estHandle;

    您没有 向我展示您是如何定义结构或 estHandle 的、因此我在最后就完成了该操作、并且构建了该项目、没有出现任何问题。

    此致、

    阿米尔·奥马尔

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

    typedef 结构体是用于通过使用指针(estHandle)转换到 est.h 函数中的句柄。 zip 文件 est.h 在上面发布。 链接器与这些函数的关键字 extern 不同、estHandle 指针似乎构成了双减速条件。 当没有返回 typedef 结构体(* EST_Handle)的 extern estHandle 指针时、即使在添加了#include 路径以将 extern 符号定义到 est.h 顶部的位置、该指针也不会在添加到工程中的自定义模块中进行解析。 似乎编辑器不再像以前在早期版本的 CCS 中那样、将#Includes Top of C 文件解析为索引中的符号。 该索引似乎扫描打开的 C 模块编辑器预编译语法、并在链接期间忽略#include。  

    EST.h://! \Brief 定义估算器(EST)句柄
         typedef 结构_EST_Obj_* EST_Handle;

    extern 句柄 estHandle ;  

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

    您随附的头文件是一个我不熟悉的文件、并且它是7000多行代码。 您需要告诉我 estHandle 和_EST_Obj_在哪里 已定义 ,没有声明,否则我将无法提供任何帮助。 你向我展示了它的声明方式、即告诉编译器变量存在。 我需要了解的是它是如何定义的、即它具有哪些值/参数/属性。 如果编译器指示某个符号未解析、则表示您已对其进行声明(即使用 extern)、未定义该符号(在您的情况下、由于 extern、需要对其进行全局定义)。 我在代码中向您展示了_newStrut_和 estHandle 是如何定义的、这不会导致未解析的符号错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要告诉我 estHandle 和_EST_Obj_位于何处 已定义 ,未声明

    下面的结构定义(estHandle)无法链接或转换到 est.h 的内联函数。 如果除 bool 标志状态之外不会引起任何问题的 EST_Handle define 位于 typedef 结构体下方、则不会在调试模式下链接到所添加的模块。 奇怪的是、虽然3个函数在没有将句柄投射到函数中的情况下无法正常运行、但我的上面的 WA 编译时没有出现任何错误。 这两个 bool 标志无法将运行时布尔状态更改链接到客户添加的模块的条件语句中、但它们在客户模块中编译时没有任何错误。

    什么存储器段(M0-1、LS0-7、GS0、GS1等)都没关系 typedef 定义是加载的、estHandle 符号不起作用。 bool 标志不会将链接状态更改执行到其他模块中、它们存在于调试之外的编码示例中。 bool 标志和 estHandle 仅在 CCS 调试中有效。 UniFlash 的"似乎是"二进制文件转换删除了一些符号。 只是似乎从 MCSDK 项目中删除了符号、因为 SDK 项目所有 bool 标志通过客户声明并传递状态更改退出调试模式的模块。  

    同时 尝试创建* bin 可执行文件来启用 c2000 hex 实用程序。 图像*。bin 文件无法正常工作、加载0x00080000 (CODE_START)是非常复杂的设置、并带有* bin 文件的复选框。 可执行的* bin 文件加载警告消息"尝试写入受保护的内存段的段被忽略。" 似乎有两个问题、而不仅仅是链接期间出现符号未找到错误。

    关于如何设置 C2000十六进制实用程序以生成非 OS 二进制文件、已经存在相关指南?

    项目中的订购器件没有指向下面定义的 EST_Handle 的 extern estHandle。 我在上面创建了 extern、试图修复链接期间缺少的符号错误。 编译器不允许将 extern 放置在该结构以下。   

    定义的 motor_common.h:

    //*****
    // typedef
    typedef 结构_motor_Vars_t_
    {
     //估算器的句柄
     EST_Handle estHandle;

     bool flagEnableRunAndIdentify;
     bool flagRunIdentAndOnLine;

    } motor_Vars_t;

    //! \brief 定义 motor_Vars_t 句柄
    //!
    typedef 结构_motor_Vars_t_* motor_handle;

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

    您好!

    您的答复中包含许多无关的信息、因此很难通读和理解您的问题。 我将只解决当前出现的 有助于加快解决方案速度的主要问题。

    您上面为_motor_Vars_t_包含的代码显示在结构中使用 EST_handle、但定义了_motor_Vars_t_的位置? 这只是一个声明、即使 estHandle 位于结构中、它尚未被使用或定义。

    此致、

    阿米尔·奥马尔

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

    这是 typedef 结构体中定义的符号、没有#define IS this project for EST_Handle、并且 正如我所知、_motor_Vars_t_被视为结构体的标签名称。

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

    您好!

    我来纠正一下我说的、MOTOR_Handle 定义在哪里? typedef 声明 MOTOR_Handle 是一个类型、但我没有看到定义 为此类型的 MOTOR_Handle 变量。 (#define 不定义变量、这会创建宏)。

    此致、

    阿米尔·奥马尔

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

    您好,Omer Amir,

    typedef 声明 motor_handle 是一个类型,但我没有看到 为此类型定义的任何 MOTOR_Handle 变量。 [/报价]

    句柄名称(* motor_handle)前面的(*)指向 存在成员符号的_MOTOR_Vars_t_结构。 它不是一个变量、而是看起来像一个指向它上面另一个结构的结构指针。 我无论如何会忽略所有此处理、因为链接器未解析符号名称(estHandle)的原因。 尽管 CCS 编辑器副线代码分析和索引器确实会解析(estHandle)、但人们认为链接器也应该解析(estHandle)。

    我没有编写这段代码、是 TI 工程人员编写的。 您可以 通过 REX SDK4.0将此工程加载到 CCS 中、通用 MCCSDK 4.0会共享 SDK 文件夹中的一些文件。 较新版本的通用 MCSDK 工程 v4.02.01甚至添加了更多新符号。  

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

    您好!

    我拥有最新的 C2000Ware_MotorControl_SDK_4_02_01_00、并尝试构建通用电机控制解决方案(SysConfig 和非 SysConfig 版本)。 该工程构建时根本没有错误或警告。 我建议导入其中一个工程、并将您的程序代码复制到示例中以供使用。 我不知道如何进一步帮助你,因为我不能重复你正在得到的错误。 我建议使用通用 MCSDK 工程的 SysConfig 版本、以便轻松迁移到 F28004x 器件(我在用于通用实验室的 SDK 解决方案中没有看到此器件)。

    此致、

    阿米尔·奥马尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有最新的 C2000Ware_MotorControl_SDK_4_02_01_00并尝试构建通用电机控制解决方案(SysConfig 和非 SysConfig 版本)。 [/报价]

    这不是这个帖子的问题! 如上所述、将任何自定义模块添加到现有工程调用函数(est.h)会导致 symbol not found 链接错误。 虽然如果没有与客户快速产品开发和部署的目的相悖的 CCS 调试环境、那么一般项目编译时不会出现错误、但它无法正常工作。 编译器的行为不正确、尽管在海关函数标头中如何设计通过(estHandle)的符号链接(bool 控制标志失败)无关紧要。

    访问(fast_full_lib_eabi.lib)中隐藏函数的 TI 库调用无法链接已解析的 IDE C 编辑器符号。 编译器 v22.6.0.LTS 可能需要在工程属性中设置某些内容、以便链接器在编译自定义模块期间可以找到(estHandle)符号? 我将看到 CCS v7.0是否可以编译工程、因为 CCS12.4未实现预期行为。

    测试:将文件夹添加到 UMCSDK 工程路径、创建指向定制 C 文件的链接、然后尝试调用(est.h)链接中指向 fast_full_lib_eabi.lib 函数的任何函数。 这就是此帖子的主题、而不是如何迁移到下一个版本的 MCSDK、后者可能会出现更多问题。

    我建议使用 SysConfig 版本的通用 MCSDK 项目,以便您可以轻松迁移到 F28004x 器件(我没有在通用实验室的 SDK 解决方案中看到此器件列出)。

    SDK 4.0工程已迁移到 x49c UMCSDK 电机控制驱动程序、需要迁移 hal.c/h 文件。 我看不出目的是跳进什么可能是另一个火环 ...

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

    您好!

    我尝试了使用 universal_motorcontrol_lab_f28003x 示例、并在 main 的最顶部插入以下代码:

    #include "est.h"
    
    void main(void)
    {
        EST_Handle var;
        float32_t temp = EST_computeTorque_Nm(var);
        ...
    }

    没有出现任何错误、唯一的警告是我在初始化 var 之前正在使用它。

    尝试调用(est.h)链接中指向 fast_full_lib_eabi.lib 函数的任何函数

    如果您希望我在侧面使用一个特定函数、请告诉我(我以前未使用过通用电机控制实验、因此我不熟悉 est.h 文件中的许多函数)。

    向 UMCSDK 项目路径添加文件夹

    如果您使用的是通用电机控制项目、为什么需要添加文件夹路径? 通过查看项目属性、我们可以了解到已经有多个文件路径(包括 est.h 文件):

    我明白这是一个令人沮丧的问题、但我没有听说任何其他客户在通用电机控制实验室遇到此类问题。 您是否向项目添加了任何其他自定义修改、例如在超出您所说的范围的情况下修改项目属性? 您所拥有的项目是基于您试图在当前版本的 MCSDK 中使用的旧版本通用实验、还是这是适用于4.02.01.00 MCSDK 的全新项目?

    此致、

    阿米尔·奥马尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试使用 universal_motorcontrol_lab_f28003x 示例,并在 main 的最顶部插入了以下代码:

    我的自定义模块存在于添加到 SDK 和通用 MCSDK v4.0工程构建的工程路径选项卡中的文件夹、如下所示。

    因此、对 est.h 的调用来自包含路径选项卡、我的 C 模块在该选项卡中存在、并且在调用函数的位置顶部有#include "est.h"。  我的文件夹中有4个 C 模块、用于控制 SDK 和 MCSDK bool 标志、在不进行 CCS 调试的情况下启动时或启动时监测变量。 SDK4.0电机控制会通过我的 C 文件文件夹路径编译和控制 est.h 的相同功能。

    但是、符号正确执行的 C 文件最靠近 SDK 工程树的顶部(磁盘上)、显示在文件夹路径下。 因为在 UCSD 中更改了结构的符号名称、所以必须重写我添加的文件夹 C 文件。 因此,需要在磁盘树的两个位置存在相同的文件夹。 怀疑这可能是链接器仅在链接期间当我的 C 代码调用任何函数 est.h UMCSDK 时无法解析较低符号的原因。

    否则、在未调用 est.h 时、这两个项目编译时都没有任何链接错误、此调用也存在于驱动器树的两个位置(\est 和\est_lib)。 看起来链接器在硬盘树下的搜索路径是这样的、并且会以某种方式找到第一个文件夹(Exton\commands.c)、在这里、同样的文件名也存在于更靠近 C 驱动器树顶部的位置。 然而、IDE 正确编译了第二个 MCSDK 文件夹文件(\Exton\command_c)。 似乎这是链接器路径问题、而不是编译器路径问题、因为编译器使用了工程包含选项卡来查找链接器可以执行相同操作的符号。

    SDK: C:\ti\cc2000\C2000Ware_MotorControl_SDK_4_00_00_00\libraries\Exton\commands.c

    UMCSDK: C:\ti\c2000\C2000Ware_MotorControl_SDK_4_00_00_00\solutions\universal_motorcontrol_lab\f28004x\drivers\Exton\commands.c

    BTW:此问题未解决、感谢 Omer 的持续帮助  

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

    您好!

    测试:将文件夹添加到 UMCSDK 项目路径,创建指向自定义 C 文件的链接,然后尝试调用(est.h)中的任何函数指向 fast_FULL_lib_eabi.lib 函数的链接。[/引号]

    你说的"创建一个到定制 C 文件的链接"是什么意思? est.h 文件链接到以下文件夹、并从${SDK_ROOT}/libraries/observers/est_lib/include 中提取

    您能通过 CCS 工作区提供错误截屏吗? 我不清楚您现在正在体验什么。

    此致!

    凯文

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

    尊敬的 Kevin:

    您说的"创建自定义 C 文件的链接"是什么意思? est.h 文件链接到下面的文件夹、并从${SDK_ROOT}/libraries/observers/est_lib/include 转储

    在 MCSDK 工程下、导入一个指向已添加的自定义 C 文件文件夹路径的虚拟链接、以便控制现有工程标志名称的状态更改或调用嵌入式工程 TI 函数。 即使将*obj 指针添加到 customers 函数标头、链接器仍然仅在编译期间无法解析 estHandle。 此外、还重命名了上方路径同名的文件夹(Exton)、甚至将其移到 SDK 工程的 libraries 文件夹下对链接器解析符号 estHandle 没有影响。 因此、布尔标志会进行编译和链接、但如果没有处于独立模式的 XDS110仿真器、则无法工作。 下面仅显示一个错误、指示 MCSDK 工程未正确链接所有模块。 许多工程句柄似乎对链接器提出了质疑、即使进行递归库符号检查、但忽略了重要的链接指令 XDS110调试模式掩盖了这一点。 SDK 工程不存在任何这些问题、它是 MCSDK 实验的控件。

    您能否从 CCS 工作区提供错误的屏幕截图?

    类型描述资源路径位置
    C/C++ 问题未解析符号 estHandle、首先在./src_control/fexton/commands.obj is15_uvmcsdk_f28004x 中引用
    C/C++问题 #10234-D 未解析符号仍为 is15_uvmcsdk_f28004x
    C/C++问题#10010链接过程中遇到错误;"is15_uvmcsdk_f28004x.out"未编译 is15_uvmcsdk_f28004x
    C/C++ problem gmake[1]:***[is15_uvmcsdk_f28004x.out]错误1 is15_uvmcsdk_f28004x
    C/C++ problem gmake:***[all]错误2 is15_uvmcsdk_f28004x

    如您在下面所示、在键入选定的工程属性时、通过检查语法在索引和编辑器代码分析中解析的指针符号。 此外、在链接器库路径选项卡中添加了 est.h 文件的路径、链接器仍然找不到符号 estHandle。 最糟糕的是、 当任何 MCSDK 模块中的标志状态发生变化时、任何客户提供的函数中都没有布尔标志(_MOTOR_Vars_t_)结构执行或指示状态变化。 这些问题似乎是链接器故障、因为客户模块和 TI 专有模块之间没有起作用的布尔控制链接。

    MCSDK bool 标志仅在调试模式下工作、而不是在客户添加的函数中工作、即使在调试或独立运行也是如此。 看似 XDS110 Simulator *。out 文件代码转换可解决调试模式中缺少的链接器问题。 Uniflash 会去除一些符号、这些符号 会在未连接 XDS110时使工程大部分功能不正常。 然而、同一客户向 SDK4.0添加的模块可以在无 XDS110控制状态的 CCS 调试模式或独立模式下以及在 Uniflash 固件加载到 Launch Pad 后运行。

     BTW:通信、Sfra 从项目构建中排除

    符号:MOTOR1_DSCLINKSS_N、TEST_ENABLE_N、MOTOR1_FAST、MOTOR1_eSMO。

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

    奇怪的是、今天添加到函数声明的 obj->指针正在解析符号链接、尽管清理了工程、但昨天多次重新编译索引。  过去针对 在自定义函数中检查布尔标志(_MOTOR_Vars_t_)的函数尝试了相同的方法(obj->)、但没有帮助。 然而(estHandle)无法解析上述代码剪贴。  

    motor_Vars_t * obj =(MOTOR_Vars_t *) motorHandle_M1;

    /*检查电机是否在线运行*/
    if ((obj->flagEnableRunAndIdentify == true)&&(obj->flagRunIdentAndOnLine == true))