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-CC1352R1:将 Project Zero BLE 示例转换为静态库–构建错误

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1495146/launchxl-cc1352r1-converting-project-zero-ble-example-to-a-static-library-build-errors

器件型号:LAUNCHXL-CC1352R1

工具/软件:

我正在尝试转换 Project Zero BLE 示例 从 SimpleLink CC13x2 SDK 到的 静态库 因此我可以在多个工程之间重复使用。 然而,我面临着 编译错误 删除特定于硬件的文件后ble_user_config.c、如。

以下是目前为止我所做的工作:

  1. 已删除 OAD (无线下载) 因为我不需要它。

  2. ble_user_config.c从静态库中排除、因为它包含 取决于硬件的配置 这应该保留在主项目中。

  3. 定义为必需的 预处理器符号 工程中复制该库。

问题和错误

编译后、我遇到了以下错误:

Shell
CopyEdit
#1965 cannot open source file "xdc/std.h" #20 identifier "coexUseCaseConfig_t" is undefined #20 identifier "cteAntProp_t" is undefined #20 identifier "ECCParams_CurveParams" is undefined #20 identifier "rfOpCmd_cntBranch_t" is undefined #20 identifier "rfOpCmd_runImmedCmd_t" is undefined #20 identifier "rtosApiTblPtr_t" is undefined

这些错误似乎与中缺少依赖项有关ble_user_config.c

问题:

  1. ble_user_config.c将 BLE 工程转换为静态库时、建议使用什么方法进行处理?

    • 我是否应该coexUseCaseConfig_tcteAntProp_t在中手动定义缺失的结构(、等)main.c

    • 或者我是否应该在ble_user_config.c库中包含最低版本的内容?

  2. xdc/std.h在构建静态库时、如何正确处理对和 TI-RTOS 标头的依赖关系?

    • xdc/std.h即使我包含 TI-RTOS 路径、该库似乎无法识别。

  3. 在 Code Composer Studio 中、是否有任何将 BLE 项目结构化为静态库的最佳实践?

任何见解都将非常感谢!

系统详细信息:

  • 平台: TI LaunchPad CC1352R1

  • SDK 版本: simplelink_cc13x2_26x2_SDK_5_20_00_52

  • 编译器: TI Clang/TI ARM 编译器

谢谢!

e2e.ti.com/.../5140.project_5F00_zero.ce2e.ti.com/.../5140.project_5F00_zero.h

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

    您好!

    将 Project Zero BLE 示例更改为静态库听起来任务相当复杂、因为在 CCS 中无法将工程从可执行目标切换到静态库目标。 创建静态库的唯一方法是创建新工程并尝试将文件、链接器配置和编译器配置修补在一起。 您能解释一下在删除 OAD 之前执行了什么操作(复制文件、更改某些工程设置等)吗? 所以我可以尝试重现你的情况,并帮助你更好?

    要回答您的问题:
    1.在我的项目中,coexUseCaseConfig_tcteAntProp_ticall_user_config.h文件中定义。 您可能已意外删除此文件吗?
    2.  xdc/std.h位于{您的 SDK 安装路径}/kernel/tirtos7/packages/.中 您可以转到 Project > Optimies > Build > Arm Linker > File Search Path 并检查是否正确包含此路径${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/kernel/tirtos7/packages、从而检查此路径是否包含在文件搜索路径中。

    3.我找不到关于将 BLE 项目结构为静态库的最佳实践的任何信息。

    希望这些答案能帮助您解决编译问题。

    此致、
    Maxence

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

    您好、Maxence、

    因此、我不想更改示例、因为它显然是可执行的、而是创建了一个静态库工程、并尝试将所有与硬件相关的部分移动到主代码、从而使主代码不受约束。 由于示例工程的不同文件夹中有多个链接文件、因此我删除了需要 syscfg 配置或其他一些用户配置 的文件、然后使用库中的 palceholder 将这些文件移动到主代码中。 我附加了原始工程零应用文件、以便将其与我之前发送的文件(我的静态库工程中的文件)进行比较。

    1.我没有意外地删除  icall_user_config.h 因为我链接了我正在使用的文件,而不是在项目中有副本。

    2.我以前没有 XDC/STH 的问题,所以我很惊讶它出现了,因为我已经有 XDC 链接在产品设置(图片附加)

    3.我想找出的是,如果 在我的个人资料或链接文件中调用 icall_user_config.h 导致了错误。

    4.我在下面附上了我包含的路径。 如果可能的话,我希望你在静态图书馆开裂。

    此致、

    奥古斯丁  

    包含的路径:

    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INCLUDE_PATH}
    C:\ti\simplelink_cc13x2_26x2_SDK_5_20_00_52
    C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/kernel/tirtos/packages
    C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/source
    ${PROJECT_ROOT}
    ${CG_TOOL_ROOT}/包含
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/common/cc26xx
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/boards/CC1352R1_LAUNCHXL
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/common/..
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/kernel/tirtos/packages
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/controller/cc26xx/inc
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/inc
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/rom
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/common/cc26xx
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/icall/inc
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/hal、src、target/_common
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/hal src /target/_common/cc26xx
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/hal src
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/heapmgr
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/profiles/dev_info
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/icall src
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/osal src
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/services src
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/ble5stack/services src
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/common/nv
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/common/cc26xx
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/devices/cc13x2_cc26x2
    ${COM_TI_SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR}/source/ti/posix/ccs

      e2e.ti.com/.../5415.project_5F00_zero.c

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

    您好、  

    非常抱歉的一个星期的延迟,我写了这个答复一个星期前,忘了按答复Sweat smile

    您能否通过 CCS 导出您的项目来发送该项目、以便我深入了解问题? 为此、您可以选择"文件">"导出"、然后选择"常规">"存档文件"、单击项目名称旁边的复选框、选择文件名并单击"完成"。

    此致、
    Maxence

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

    您好、Maxence、

    感谢您的答复。 到目前为止、我一直未能解决这个问题。 我在这里附加了存档文件。 希望您能让它正常运行。

    e2e.ti.com/.../Project_5F00_Zero_5F00_Library.zip

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

    您好!

    只需将您的 SDK 版本从 v5_20_00_52升级到 v8_30_01_01 (最新的 SDK 版本)、我就设法取得了大量进展。
    以下是我所做的主要更改:

    -当您的 include 路径使用COM_TI_SIMPLELINK_CC13XX_26XX_SDK_INSTALL_DIR符号时,我使用COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR符号。 这可能在两个 SDK 版本之间发生了变化、也可能是您键入了包含符号错误。
    -我添加了 CCS 编译器包含路径和源代码路径(${PROJECT_LOC}/src,${PROJECT_LOC}/Profiles${CG_TOOL_ROOT}/include)

    包括问题现在似乎已解决,我没有看到任何问题与 XDC 在我的身边 错误现在仅与项目0本身的源代码相关(未定义的变量、多实例标签等)。 但这是一个工作,你将不得不做你自己的大部分.

    你可以找到我在这里所做的更新代码: e2e.ti.com/.../pz_5F00_lib.zip

    此致、
    Maxence

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

    您好、Maxence、

    我已下载并尝试使用最新的 SDK、但仍收到与 XDC 相关的错误。 您能发送工程文件吗、我来试试吧?

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

    你(们)好

    项目文件在我发送的响应中:)|

    此致、
    Maxence