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.

[参考译文] CC1352P:rfDriverCallbackAntennaSwitching 链接器问题

Guru**** 2587345 points
Other Parts Discussed in Thread: CC1352P, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/969980/cc1352p-rfdrivercallbackantennaswitching-linker-issue

器件型号:CC1352P
Thread 中讨论的其他器件: SysConfig

使用 SysConfig 编辑器、我将板类型从 CC1352P LaunchPad 修改为定制板。 现在 ti_drivers_config.c 为 rfDriverCallback()和 rfDriverCallbackAntennaSwitch()函数生成__attribute__((weak)实现。 rfDriverCallbackAntennaSwitch()函数的弱定义版本调用 yo_mad_imple_rfDriverCallbackAntennaSwitching_se_generated_ti_drivers_config_c_in_debug_folder_or_sysconfig/preview(),以便开发人员注意需要严格定义的 rfDriverCallbackAntennSwitching()版本。

按照建议,我为 rfDriverCallback()和 rfDriverCallbackAntennenSwitch()创建了严格定义的实现。 这些函数会毫无问题地编译、但链接器抱怨您的 not_imple_rfDriverCallbackAntennaSwitching_se_generated_ti_drivers_config_c_in_debug_folder_OR_sysconfig/preview()有一个未解析的符号。 我只能猜测我的严格定义的函数调用不会"覆盖"ti_drivers_config.c 中弱定义的函数

我做了哪些错误的操作、或者需要调整哪些设置来满足链接器的要求?

环境详细信息:

  • CC Studio 版本= 10.1.0.00010
  • 编译器版本= TI v..c.1LTS
  • SimpleLink CC13x1 26x2 SDK 版本= 4.10.00.78
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steven、

    很抱歉、此版本的 SimpleLink SDK 中存在自定义电路板功能问题。 您能否使用最新版本和 CCS 10.2.0进行测试? (SimpleLink SDK 4.30。)

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

    根据 CCS 下载页面、CCS 的最新版本为10.1.1 (版本10.1.1.00004、日期为2020年9月21日)。 下面是我更新内容的摘要:

    Code Composer Studio = 10.1.1.00004 (从10.1.0.00010开始)
    TI 编译器= 20.2.4 LTS (从20.2.1 LTS 开始)
    SimpleLink SDK (继承自依赖 TI-RTOS 工程)= 4.30.0.54 (从4.20.1.04开始)
    XDCtools = 3.61.2.27 (从3.61.0.16开始)
    SysConfig = 1.6.0 (从1.5.0开始)

    我仍然看到与原始帖子中描述的相同问题:未解析的符号仍然存在。 我可以验证 rfDriverCallback()和 rfDriverCallbackAntennaSwitch()函数是否在 main.c 中进行了如下定义:

    void rfDriverCallback( rf_handle client、rf_GlobalEvent Events、void *arg )
    {
    //此处省略了定义以使其清晰*/
    }
    
    
    void rfDriverCallbackAntennaSwitching( RF_Handle 客户端、RF_GlobalEvent 事件、void *arg ){
    
    为清楚起见,此处省略了//定义
    

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

    您好 Steven、

    很抱歉耽误你的回答。

    我刚刚尝试重现您的问题、我遇到了相同的错误。 我已经联系过软件开发人员、并将与您联系。

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

    对于将来遇到此问题的人员:

    我发现的一种权变措施是完全删除现有工程、并手动导入源文件以及所有工程设置和配置。 这是一项耗时的工作,必须以艰苦的方式来确保不会复制任何设置。 这不是理想情况、因为 TI CCS 不应存在此问题、但它允许解除阻止的问题。

    当我对旧项目和新项目进行比较时、我仍然无法确定导致问题的设置。

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

    您好 Steven、

    我会假设.syscfg 文件中有一些会导致这种情况的东西、但我不确定。

    我还没有听到软件开发人员的反馈。 我会随时向您提供最新信息。

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

    您好 Steven、

    如错误消息所示、生成错误发生是因为没有 实现 rfDriverCallbackAntennaSwitching。 您可以找到有关如何在  ti_drivers_config.c 中实现的建议

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

    我在原来的帖子和后来的帖子中说,main.c 中强烈定义了以下函数:rfDriverCallback()和 rfDriverCallbackAntennaSwitch()。 唯一有效(并继续有效)的解决方案是我也发布的重新创建新项目变通办法。

    只需为 rfDriverCallbackAntennaSwitch()添加一个定义,就不能解决未定义的符号,但在一个新项目中完全相同的代码和设置确实解决了这个问题。

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

    您好 Steven、

    我不确定有何区别、您是否在 main.c 中对其进行了定义?

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

    是的。 代码是100%相同的;唯一的变化是项目文件。