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.

[参考译文] CCS/CC2650EM-7ID-RD:编译失败-未定义符号"driverlib_release_0_47020"

Guru**** 2551110 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/577866/ccs-cc2650em-7id-rd-compilation-failure---undefined-symbol-driverlib_release_0_47020

器件型号:CC2650EM-7ID-RD
Thread 中讨论的其他器件:CC2650

工具/软件:Code Composer Studio

在示例项目"SimpleBLEcentral "和"SimpleBLEObserver "中 、我有以下错误:

未定义的首次引用

符号

------ --------

driverlib_release_0_47020

错误#10234-D:未解析的符号仍然存在

错误#10010:链接期间遇到错误;未构建"SimpleBLECentral.out"

项目搜索结果:

Driver_release.h:

/*********
*文件名: driverlib_release.h
*已修订: $Date:2015-07-16 12:12:04 +0200 (Thu、2015年7月16日)$
*修订版: $Revision:44151 $
*
Description:提供宏以确保
*的特别发布 使用 DriverLib。
*
*版权所有(c) 2015 - 2016、德州仪器(TI)公司
*保留所有权利。
*
*
只要符合以下条件、就允许以源代码和二进制形式重新分发和使用(无论是否进行*修改):
*
* 1)源代码的重新分发必须保留上述版权声明
、* 此条件列表和以下免责声明。
*
* 2)二进制形式的再发行必须复制上述版权声明
* 本条件列表和文档中的以下免责声明
* 和/或随分发提供的其他材料。
*
* 3)本组织的名称及其捐助者的名称均不得
* 用于认可或推广从本软件衍生的产品、但不
含* 特定的事先书面许可。
*
本软件由版权所有者和贡献者"按原样"提供
*、

不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权持有人或贡献者
都不对任何直接、间接、偶然、特殊、模范、 或
*相应的损害(包括但不限于采购
*替代产品或服务;丧失使用、数据或利润; 或业务
*中断)、但出于

任何责任理论、无论是在*合同中、严格责任还是在使用本软件时以任何方式产生的侵权行为(包括疏忽或其他原因)*、即使已告知
*可能会发生此类损坏。
*
* /

//*********************
//
//! \addtogroup system_control_group
//! @{
//! \addtogroup driverlib_release_API
//! @{
//
//*********

#ifndef __DRIVERLIB_RELEASE_H__
#define __DRIVERLIB_RELEASE_H_


#ifdef __cplusplus
extern "C"
{
#endif

#include 




//DriverLib 发布组编号
#define DRIVERLIB_RELEASE_GROUP 0
// DriverLib 发布版本编号
#define DRIVERLIB_RELEASE_BUILD 47020




//*********
//
//! 此宏在内部从 DriverLib 中调用、以声明
//! DriverLib 释放锁定对象:
//! \param 组是 DriverLib 发行组编号。
//! \param build 是 DriverLib 发行版的内部版本号。
//!
//! 除非目的是
//! 绕过释放锁定(自行承担风险)。
////
*****************
#define DRIVERLIB_RELEASE_RELEASE (group、build)\
const volatile uint8_t driverlib_release_##group##_##build

// DriverLib 释放锁定对象
extern DRIVERLIB_RELEASE_RELEASE (0、47020)的外部声明;




//*********
//
//! 此宏应从预编译
//!函数中调用一次! 可交付软件、将可交付结果锁定到特定 DriverLib
//! 版本。 必须使用不是
//的代码进行调用! 优化的距离。
//!
//! 此宏锁定到特定的 DriverLib 版本:
//! \param 组是 DriverLib 发行组编号。
//! \param build 是 DriverLib 发行版的内部版本号。
//!
//! 如果尝试将预编译的可交付结果与其他版本一起使用
//! 将生成链接器错误、表明
//! "driverlib_release_xx_yyyyy 未定义"或类似。
//!
//! 要覆盖该检查、例如升级 DriverLib 但不升级
//! 预编译的可交付结果、或在混合预编译的可交付结果时、
//! 应用程序开发人员可能会(自行承担风险)声明缺少 DriverLib
//! 使用\ref DRIVERLIB_RELEASE_RELEASGE()宏释放。
////
*****************
#define DRIVERLIB_ASSERT_RELEASE (组、构建)\
(driverlib_release_##group##_##build)




//*********
//
//! 此宏应从预编译
//!函数中调用一次! 可交付软件、将可交付结果锁定到特定 DriverLib
//! 版本。 必须使用不是
//的代码进行调用! 优化的距离。
//!
//! 此宏锁定到编译时使用的当前 DriverLib 版本。
//!
//! 如果尝试将预编译的可交付结果与其他版本一起使用
//! 将生成链接器错误、表明
//! "driverlib_release_xx_yyyyy 未定义"或类似。
//!
//! 要覆盖该检查、例如升级 DriverLib 但不升级
//! 预编译的可交付结果、或在混合预编译的可交付结果时、
//! 应用程序开发人员可能会(自行承担风险)声明缺少 DriverLib
//! 使用\ref DRIVERLIB_RELEASE_RELEASGE()宏释放。
////
*****************
#define DRIVERLIB_ASSERT_CURR_RELEASE ()\
DRIVERLIB_ASSERT_RELEASE (0、47020)




#ifdef __cplusplus
}
#endif

#endif //__DRIVERLIB_RELEASE_H_//


*********
//
//! 关闭 Doxygen 组。
//! @}
//! @}
//
//********* 


我不是很理解这个错误消息、因为我的项目中没有使用这个变量。


尊重 Garcia

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

    您好、Luis、

    听起来您的项目中可能存在一些冲突的编译设置。 您使用的是哪个版本的 BLE 堆栈? 哪个版本的 TI-RTOS?

    您是否有重现问题所需的步骤列表?

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

    您好 Sean、

    我使用的是 TI-RTOS v2.20.1.08、Stack v2.2.1 (SDK 2.02.18)和 TI_ARM 编译器5.2.9。 (TI v15.12.3.LTS 顺便说一句、也有同样的问题)。
    CCS v6.2.0.00050

    我所做的工作:

    Step1:~10天前从 TI Resource Explorer 下载了示例项目。
    Step2:已安装 TI-ARM v5.2.9。
    Step3:将依赖项复制到工作区(组件等)。
    步骤4:将现有工程导入到工作区(中央堆栈和应用程序)。
    步骤5:修复了工程属性中的链接资源。
    步骤6:将遗漏的 LCDDOGM1286.x 添加到工作区并在工程中链接它们。
    步骤7:在"Project Properties"->"CCS General_"中、我选择了具有 XDS100v3的电路板(CC2650 (EM_7ID))。
    步骤8:在预定义中定义了我的电路板。
    步骤9:构建堆栈。 -工作
    步骤10:尝试构建应用程序-不起作用...

    我希望这将有助于重现我的情况。

    注意:我之前在 BLEObserver 上工作、但我放弃了这个示例。 确实存在相同的误差。

    此致、


    Luis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该使用 TI ARM 编译器5.2.6版在 BLE Stack 2.2.1中构建示例
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yikai、

    感谢你的答复。 我得到了相同的误差、但找到了一个解决方案。 我在 driverlib_release.h 中替换了以下行:

    #define DRIVERLIB_RELEASE_BUILD 47020
    extern DRIVERLIB_RELEASE_RELEASE (0、47020);
    DRIVERLIB_ASSERT_RELEASE (0、47020)
    
    //替换为
    
    #define DRIVERLIB_RELEASE_BUILD 46593
    extern DRIVERLIB_RELEASE_RELEASE (0、46593
    );DRIVERLIB_RELEASE_RELEASE (0、DRV46593 (0、DRVERLIB_RELE 

    我不确定这是否能真正解决我的问题、但至少没有更多错误。 这是否起作用?

    此致

    Luis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道这是否会影响任何东西。 无论如何、您可以尝试将构建结果下载到 CC2650EM 以查看其是否正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调试正在工作、但显示不工作、并且未定义"disable_display"。 有什么建议吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您测试了哪个示例? 您是否通过 TI ARM 编译器5.2.6来构建它?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它是您推荐的 SimpleBLECentral 和编译器 TI-ARM 5.2.6。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否还将堆栈项目下载到 CC2650?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我是这样做的。

    正如我说的"Step9:构建堆栈。 -工作"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您下载预编译的 cc2650em_simple_central_rel.hex (在 C:\ti\simplelink\ble_sdk_2_02_01_18\examples\hex 下)、您可以在 LCD 上看到任何内容吗?