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.

[参考译文] CC2745R10-Q1:片上附加基础知识_Btool 和 Uniflash 问题

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1497324/cc2745r10-q1-oad-on-chip-fundamentals_btool-and-uniflash-issue

器件型号:CC2745R10-Q1
Thread 中讨论的其他器件:UNIFLASHSYSCONFIG

工具/软件:

您好;  

实际上、我们正在尝试使用 OAD 片上工程 来测试它并使用新映像刷写电路板。

因此、我们  在以下步骤中提到了 ">dev.ti.com/.../node

首先、我们构建了 OAD_ONCHIP 工程。

第二、我们选择我们的电路板 Uniflash 、然后按照下图所述选择图像。 正如、我们在前面的问题中已经给出了可以使用的提示  oad_onchip_sb.hex  而不是  mcuboot_oad_onchip.hex  添加到工程。  

对于 加载地址、 我们选择该地址是因为 .map 文件中提到的其他地址 不起作用、所以始终存在重叠问题。

我们成功地使用具有该加载地址的3个映像来刷写电路板  、如下图所示。

但这里的问题是、当我们尝试使用 BTOOL 来刷写新映像时(我们已将映像版本升级到2.0、并将新映像重命名为 oad_onchip_v2.bin)、

现在、我们点击"Send"、进入器件复位阶段、然后进入建立连接状态、然后下载 OAD 下载失败。

因此、请您在这个问题上帮助我们、因为我们面临这个问题已经有一段时间了、您是否还能告诉我们我们我们的步骤是否正确 、或者我们是否缺少步骤。

感谢您的答复。

谨致问候;

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

    您好:

    OAD 项目不再使用 MCUBoot、但它们确实使用 安全启动。 安全启动是 CC2745 ROM 的一部分。 下面我将说明安全启动和 OAD 项目的工作原理。

    1. 首先、打开  basic_persistent_LP_EM_CC2745R10_Q1 工程、然后打开  basic_persistent.syscfg  文件。 在 SysConfig 文件中、转到以下命令:  
    设备配置-->安全配置。 本节需要注意四个方面。

    a.图片类型:

    "主要应用 "意味着此应用旨在在 "主要"时隙中执行。 有两个时隙: 主时隙 和 辅助时隙。  

    b. 主插槽 地址空间:

    这意味着、因为  basic_persistent  适用于 主时隙 、因此需要将其刷写到0x0。 我们稍后将讨论这一点、但请注意这一点、以便将来的发展。

    C. 辅助插槽 地址空间:

     第二个插槽 最终将包含  basic_ble_oad_onchip。  0x31000将是我们刷写二进制映像的地址(稍后将对此进行介绍)。

    d. 更新模式

    更新模式决定了更新模式(您可以在 TRM 的安全启动部分中找到有关不同模式的更多信息)。  

    启用 XIP 恢复 意味着:

    1.存在主插槽图像和辅助插槽图像。

    2. 版本号最高的映像 由安全启动执行。

    例如、 basic_persistent  具有以下版本号:

    稍后我们将看到  basic_oad_onchip 版本号为1.0。 这意味着当闪存中同时存在两个映像时、  将执行 basic_oad_onchip。 这是有道理的、因为 您要开发的就是您的应用

       启用 XIP 恢复时 的恢复意味着如果其中一个映像被失效、擦除等、它将恢复 到闪存中仍然存在的映像(即如果辅助插槽被擦除、失效等)、主插槽应用程序将在启动期间执行、反之亦然。  

    好的、好的、现在我们已经解释了这一点、我们可以继续进行实际的工作流程。

    1.构建  basic_persistent  映像。  

    您将注意到会生成多个.hex 和.bin 文件。

    basic_persistent_sb.bin 文件包含由安全启动工具签名的应用程序 、但是 不包含 SCFG/CCFG。

    basic_persistent_sb.hex 文件包含由安全启动工具 和签名的应用程序 包含 SCFG/CCFG。

    basic_persistent.hex 文件包含所示值  仅使用 SCFG/CCFG   没有应用 、并且具有   未被安全启动加载程序工具签名 。 可以忽略此文件。

     basic_persistent.bin 文件包含  仅限应用 和  无 SCFG/CCFG  而且有   未被安全启动加载程序工具签名 。 可以忽略此文件。

    basic_persistent_sb.hex  我们希望 先刷写芯片。  原因:

    1.basic_persistent_sb.hex   应位于主时隙中。  

    2.它包含  SCFG/CCFG 、我们只需刷写一次。  

    basic_oad_onchip 与  basic_persistent 具有相同的文件类型和数量。  

    我不会  像 basic_persistent 那样全面介绍 basic_oad_onchip 、因为它与我在上面介绍的大致相同。 但是、我建议查看 sysconfig 文件中的 basic_oad_onchip、并注意上面所示的操作。 另外、查看  工程的编译后处理步骤以了解如何生成映像也很有帮助:

    构建这两个工程后、我们可以继续刷写。

    ——

    我们将需要  basic_persistent_sb。 十六进制  和  basic_oad_onchip_sb。 bin  添加到工程。

    首先、  使用 Uniflash 刷写 basic_persistent_sb.hex 文件。

    如果芯片为空、则应  在此步骤之后刷写 HSM 固件。 否则、继续执行下一步。

    现在、转到 "Settings & Utilities" 、并确保 在加载前检查 Do not erase program

    现在我们可以刷写  basic_oad_onchip_sb .bin  位于辅助插槽(0x31000)的地址。

    刷写这两个映像后、您就可以了!

    要下载的任何其他映像必须是  basic_oad_onchip_sb .bin  间隔。

    希望这能有所帮助!

    此致、

    Nima Behmanesh

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

    你好、Nima、  

    非常感谢您的明确解释。

    我按照您告诉我的步骤操作、使用 uniflash 的闪存 成功。 但当我继续使用 Btool 时,尝试刷新新新版本的 oad_onchip 时,总是有相同的错误  

    PuTTY 就显示了这一点  

    请您就此提供帮助。

    谢谢你  

    谨致问候;  

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

    您好:

    您正在尝试通过无线方式下载什么文件(类型、大小等)?

    您是否介意在 Android/iPhone 应用商店中尝试 SimpleLink 应用?  

      我仅使用 SimpleLink 应用进行了测试、而不是使用 Btool 进行测试。 这可能是内部工具问题。

    此外、您是否介意执行您所经历的确切步骤、并记录与上述流程的任何修改/偏差?

    此致、

    Nima Behmanesh

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

    你好 Nima;  

    我成功地通过 BTool 进行升级、因为我已经使用 connect 应用程序测试了、结果失败。 我使用的步骤是:

    • 在适用于 CC2745的 Uniflash 会话中、当我转到  Settings & Utilities  选中 "Do do not erase program before load"时、我刷写 persistent_sb.hex 会出错。
    • 因此、首先我继续一次刷写两个映像:

     *persistent_sb.hex

    * OAD_Onchip_sb.bin 位于加载地址0x30000,在 fw_update git 存储库中提供。

    • 我在另一个电路板上刷写了 host_app.hex。
    • 创建新版本的 oad_onchip_v2_sb.bin。
    • 在 BTool 中、我连接了两个电路板、然后选择无线下载、选择我的图像的新版本并直接发送。

    我认为问题在于 Btool。

    感谢你的帮助。

    谨致问候;