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.

[参考译文] CC2650MODA:BTool v1.41.17能否通过 OAD 发送 CC2650应用程序+堆栈映像?

Guru**** 2562120 points
Other Parts Discussed in Thread: CC2650MODA, CC2640

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/977774/cc2650moda-can-btool-v1-41-17-send-cc2650-app-stack-images-by-oad

器件型号:CC2650MODA
主题中讨论的其他器件: CC2640

您好!

我的任务是接管使用 BLE SDK v2.02.25的传统 CC2650MODA 项目。  相关的 Code Composer Studio v9.3.0项目早已配置为生成纯应用和应用+堆栈 OAD 十六进制文件。   仅应用程序进程使用执行 OAD_IMAGE_TOOL.exe 的编译后步骤。  应用程序+堆栈 OAD 文件由驱动 OAD_IMAGE_TOOL.py 的批处理文件创建。  我要强调的是、这两个文件都已被我们的自定义手机应用程序成功使用几年来执行 OAD、并且零故障。

我的问题特定于如何将 BTool v1.41.17与这些文件(或用于此类应用的 BLE Device Monitor)配合使用。  BTool 解析并接受纯应用程序文件的元数据、并且可以使用 OAD 完全不会出现问题。  BTool 和 BLE Device Monitor 都不接受合并的 App + Stack 映像的文件格式和元数据。  它显示在表面上、两个程序只能解析具有完整 Intel 十六进制格式的 OAD 十六进制文件。  仅应用程序文件具有此功能、但映像工具执行的合并过程不会保留完整格式。

仅应用程序文件示例、所有元数据均已就绪:

应用程序+堆栈文件示例、所有元数据均已就绪、但已删除完整的 Intel 格式:

我想使用 BTool 发送两个文件、以支持详细的 BLE 堆栈分析。  使用 OAD_IMAGE_TOOL 时,我已经对所有应用的交换机进行了审查和试验,但无法生成保留完整 Intel 十六进制格式的 Combine App + Stack 十六进制文件。  BTool 的结果如下所示。

仅应用程序 OAD 文件:

APP +堆栈 OAD 文件:

BTool 或 BLE Device Monitor 能否发送 App +Stack OAD 文件?  如果是、在使用 OAD_IMAGE_TOOL 创建合并的应用程序+堆栈文件时、有什么提示说明如何保持完整的 Intel 十六进制格式?  还是这个问题?

谢谢、

Gerry

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

    嗨、Gerry、

    我认为 BTool 方面没有任何特定的限制。 如何合并这两个图像?

    以下内容可能会有所帮助: https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/858212?CCS-CC2650-Combining-Project-Zero-Stack-and-APP-projects- 

    它指向 SDK 安装目录内 docs 文件夹中的 BLE OAD 用户指南、特别是第7.3节构建生产映像以及显示示例的相应子章节。

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

    尊敬的 Ammar:

    我在第一个帖子中没有包含所有相关背景、但我现在已经阅读了 SDK 的 OAD 用户指南封面几次了 。

    详细地说、我意识到只有 OAD 十六进制文件 BTool 可以接受、这些文件都是使用 OAD_IMAGE_TOOL.exe 创建的。  我一直在使用 oad_image_tool.py、如 CC2640 BLE OAD 用户指南中所述。  

    我对脚本的使用是:

    -o -t offchip -i app --imgVer 0 -m 0x1000 --r 0x1000 --usrId liar

    我使用相同的参数进行了 OAD 文件生成试用、但使用 了 OAD_IMAGE_TOOL.exe:

    -o -t offchip -i app --imgVer 0 -m 0x1000 --r 0x1000 --usrId liar

    这将生成一个带有完整 Intel 格式的 OAD 十六进制文件。  BTool 对该文件很满意、并成功将固件下载到我们的定制硬件。

    如果我理解正确、 oad_image_tool.exe 只是 OAD_IMAGE_TOOL.py 的编译版本。  如果正确、 我想知道为什么编译的脚本会产生与在 Python 下执行时脚本不同的输出。  除了完整的 Intel 格式和元数据标头信息的编码方式之外、这两种方法生成的文件基本上是相同的。  文件头条目不同、如下所示。

    生成的文件  -o -t offchip -i app --imgVer 0 -m 0x1000 --r 0x1000 --usrId liar:

    生成的文件  -o -t offchip -i app --imgVer 0 -m 0x1000 --r 0x1000 --usrId liar:

    也许我对 oad_image_tool.exe 的理解是不正确的。  您能不能简单地说明这两个文件为什么具有不同的格式?  CC2640 BLE OAD 用户指南列出了 Python 2.7.10+、我将使用 Python 2.7.18、并根据需要安装 crcmod、intelhex 等。  《用户指南》的第7.2节重点介绍 oad_image_tool.py、没有提到 OAD_IMAGE_TOOL.exe。  但 oad_image_tool.exe 会生成 BTool 和 BLE Device Monitor 将接受的唯一格式。  我想知道这是怎么回事?

    作为参考、我已包括了两种方法的输出:

    OAD_IMAGE_TOON.py:

    OAD_IMAGE_TOOL.exe:

    谢谢、

    Gerry

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

    嗨、Gerry、

    我无法再现您描述的结果。 python 端必须存在一些可能具有相关性的问题。 是否安装了 intelhex 模块(我希望这样,您不会收到任何显示“无法加载模块 IntelHex”的输出。)?

    如果您安装了多个 python 版本、请确保您使用的是正确的版本。 根据我的理解、.py 文件和可执行文件之间应该没有区别。 唯一的区别是可执行文件应该可以工作、而不管安装的依赖项如何、这就是运行.exe 时看到正确输出的原因。

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

    尊敬的 Ammar:

    很抱歉耽误您的时间、上周我们在德克萨斯州遇到了电问题。 似乎我的 Python 配置不完整。 PIP 仅显示 BLE OAD 用户指南第7.1段所示相关性列表中的 intelhex 和 crcmod。 代码审查还确认原始开发人员基于他们使用不完整格式构建的文件进行 OAD 解析。 由于该分析在生产固件和电话应用程序中都已发布,因此我很喜欢它。 因此、至少从我的观点来看、我将把这标记为已解决。

    感谢您的帮助、

    Gerry