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.

[参考译文] CC3220S-LAUNCHXL:构建云 OTA 示例时出现问题

Guru**** 2579675 points
Other Parts Discussed in Thread: CC3220S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/653945/cc3220s-launchxl-issues-building-cloud-ota-example

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

我按照  http://dev.ti.com/tirex/content/simplelink_academy_cc32xxsdk_1_13_00_29/modules/wifi_ota/wifi_ota.html 上的说明操作 、并使用适当的 GitHub 凭据修改了 otauser.h。

但是、这些指令没有任何意义:

3.在 CCS 中、转到  OTA/CdnVendors/下的每个文件 并更新其位置。

  • 打开文件的 Properties (属性)并转至 Resources (资源)
  • 按下 编辑 按钮并将项目变量  PROJECT_LOC 替换 为  ORIGINAL_PROJECT_ROOT
  • 每个文件旁边的警告符号应该会消失、您将能够编译库

我在该位置没有看到它、但我在 C:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/source/CdnVendors 中看到它、但无法打开文件的属性。

我提出这一问题是因为我无法通过这个构建错误:

Makefile:163:目标'cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out'的配方失败
C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:找不到-l:ota.a
collect2.exe:错误:LD 返回1退出状态
gmaked[1]:***[cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out]错误1.
gmake[1]:目标"辅助输出"不会由于错误而重新生成。
gmake:***[全部]错误2.
Makefile:156:目标“全部”的配方失败

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

    因此、一个问题是没有将"OTA"库工程导入到 CCS 中。  现在我已经知道了、但是它不会构建、我在这里看不到有关如何解决这个问题的任何说明:  http://dev.ti.com/tirex/content/simplelink_cc32xx_sdk_1_50_00_06/docs/simplelink_mcu_sdk/Over_The_Air_Update_Guide.html#updating-ota-definitions

    编译器提供以下输出:

    "C:\\ti\\ccsv7\\utils\\bin\\gmake"-k all
    gmake:***没有规则使目标'CdnVendors/CdnDropboxV2.obj'需要'CdnV:/Users/Andrew/workspace_v7/source/CdnVendors/CdnDropboxV2.c。
    gmake:***没有规则使目标'CdnVendors/CdnGithub.obj'需要'CdnVendors/CdnGithub.obj'生成目标'C:/Users/Andrew/workspace_v7/source/CdnVendors/CdnGithub.c。
    gmake:目标"全部"不会由于错误而重新生成。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过删除工程并重新导入该工程、而不是选中"复制"工程到工作区、来构建 OTA 库。 这仍然无法解决下面的 OTA.A 错误:

    Makefile:164:目标'cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out'的配方失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:找不到-l:ota.a
    collect2.exe:错误:LD 返回1退出状态
    gmaked[1]:***[cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out]错误1.
    gmake[1]:目标"辅助输出"不会由于错误而重新生成。
    Makefile:156:目标“全部”的配方失败
    gmake:***[全部]错误2.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试在 cloud_ota 工程中更新 OTA.A 的路径、但仍会出现相同的错误:

    Makefile:163:目标'cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out'的配方失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:找不到-l:C:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release/ota.a
    collect2.exe:错误:LD 返回1退出状态
    gmaked[1]:***[cloud_ota_CC3220S_LAUNCHXL_tirtos_gcc.out]错误1.
    gmake[1]:目标"辅助输出"不会由于错误而重新生成。
    gmake:***[全部]错误2.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    似乎有一些问题。 首先、没有适用于 OTA 的 GCC 工程、但库搜索路径如下所示:

    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}/source/ti/net/ota/gcc/Release

    如果我将其更改为:

    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}/source/ti/net/ota/ccs/Release

    它现在会构建、但会出现几个警告:
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (OtaLib.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;在对象之间使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:C:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (CdnClient.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (OtaArchive.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (OtaHttpClient.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (OtaJson.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (CdnGithub.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败

    能否请 TI 的某个人验证我所做的事情是正确的。 我对所有警告都有点担心。  是否可以获取 GCC OTA 工程?

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

    我将查看此问题、并尽快向您提供更新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    您能否尝试以下操作:

    -(右键单击 Project -> Properties -> Resource -> Linked Resources -> Linked Resources 选项卡)

    -然后将所有 CdnVendors 位置从"project_LOC"更改为"original_project_root"

    链接的资源应如下所示、并且不应在构建后看到所述的警告:

    希望这对您有所帮助、

    Kevin

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

    尊敬的 Kevin:

    当我这么做时、它会说这些是无效的位置。

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

    我刚刚在"C:\ti\simplelink_cc32xx_sdk_1_50_00_06\source\ti\net\ota"中使用 OTA 进行了此操作、没有任何问题。

    我建议使用未更改版本的 OTA 重试 SimpleLink Academy 中的步骤1、2和3。 如果您对文件进行了更改、则可能需要重新安装 SDK。 在执行其他步骤之前、请确保 OTA 库工程编译时不会出现任何错误/警告。

    导入工程时、将工程复制到工作区将允许您在不更改源代码的情况下进行更改。

    最棒的
    Kevin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我在将"ota"库导入到 CCS 中时选择复制该库、这是否仅是必要的? 我想这就是为什么它对我不起作用的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Andrew、

    是的、但我认为您是与 SimpleLink Academy 一起关注的。 您现在是否能够构建 OTA 库而不会出现任何问题?

    您好像导入了 cloud_ota 工程的 gcc 版本。 您是否打算使用 gcc 而不是 CCS 版本?

    如果您的库项目构建正常、下一步将是将库链接到您的项目。 (SimpleLink Academy 指南的第4步)

    最棒的
    Kevin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊,还可以! 我们现在位于同一页上。 无论如何感谢大家的评论,因为今天早些时候,我的一些困惑确实消除了。 是的、我可以构建 OTA 库、但一切正常。 问题是 OTA 库没有 GCC 工程。 我必须使用 CCS 版本、然后在云 OTA 工程中进行更改:

    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}/source/ti/net/ota/gcc/Release

    如果我将其更改为:

    ${COM_TI_SIMPLELINK_CC32XX_SDK_INSTALL_DIR}/source/ti/net/ota/ccs/Release


    我认为这会引起警告:

    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (OtaLib.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;在对象之间使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:C:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (CdnClient.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (OtaArchive.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release \ota.a (OtaHttpClient.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (OtaJson.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
    C:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe:警告:c:/ti/simplelink_cc32xx_sdk_1_50_00_06/source/ti/net/ota/ccs/Release ota.a (CdnGithub.obj)使用2字节 wchar_t、但输出使用4字节 wchar_t;跨对象使用 wchar_t 值可能会失败
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andrew:

    您是否正在尝试将 GCC OTA_CLOUD 示例程序与 CCS OTA 库一起使用? 如果是、我认为这不起作用、因为他们使用两种不同的编译器。

    为什么不像 SimpleLink Academy 所建议的那样将 CCS OTA_CLOUD 示例与 CCS OTA 库一起使用? 这样、示例程序和链接库都使用相同的编译器。

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

    [引用用户="Kevin Allen18"]

    您是否正在尝试将 GCC OTA_CLOUD 示例程序与 CCS OTA 库一起使用?

    [/报价]

    是的、我最初选择 GCC 是因为我需要将 OTA_CLOUD 示例整合到可能的主项目中、即 GCCC、因此我们提供了某种更新程序功能。  为什么没有 GCC OTA 库?

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

    尊敬的 Andrew:

    我能够重新创建您收到的警告。 出现这些警告是因为库文件是使用 TI 的编译器而非 GCC 构建的。 您需要在启用 GCC 编译器的情况下构建该库。

    您可以在如下所示的属性中切换编译器。 但是、您必须更改其他设置/依赖项才能构建库、而不会出现错误。 我还没有弄清楚这些必要的改变是什么、正确地构建 GCC 库将需要进一步调查。

    最棒的

    Kevin

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

    有关编译 GCC 项目的信息、请参阅 SWRU464的第5.1.3节"开发环境–开源[GCC/GDB]"。 这将有助于您使用 GCC 正确构建库。

    https://www.ti.com/lit/swru464

    最棒的
    Kevin