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:CC2745 安全启动问题

Guru**** 2524550 points
Other Parts Discussed in Thread: CC2745R10-Q1, SYSCONFIG, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1549540/cc2745r10-q1-cc2745-secure-boot-issue

器件型号:CC2745R10-Q1
Thread 中讨论的其他器件:SYSCONFIG、UNIFLASH

工具/软件:

您好、

CC2745 我测试了安全启动、使用了官方工程的默认配置、并烧录了 basic_persistent_LP_EM_CC2745R10-Q1_freertos_ticlang_sb.hex 和 basic_ble_oad_onchip_LP_EM_CC2745R10_Q1_freertos_ticlang_sb.bin 文件。 芯片启动后、会运行 basic_persistent 程序。 我读取了芯片上 0x00 的固件区域、发现它是 0xFF、这意味着只有 0x31000 具有固件、并且 0x00 中的固件已擦除。 有关此问题尚未解决、请参阅我之前的文章: e2e.ti.com/.../5766226

我的要求是使用安全启动。 在量产过程中、芯片将使用两个固件进行编程:basic_persistent 和 basic_ble_oad_onchip。 我希望安全启动优先考虑上电时检查 basic_ble_oad_onchip 的有效性。 如果有效、则应直接运行 basic_ble_oad_onchip。 如果无效、则运行 basic_persistent。 应如何配置此要求以实现?

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

    您好:

    我的要求是使用安全启动。 在量产过程中、芯片将使用两个固件进行编程:basic_persistent 和 basic_ble_oad_onchip。 我希望安全启动优先考虑上电时检查 basic_ble_oad_onchip 的有效性。 如果有效、则应直接运行 basic_ble_oad_onchip。 如果无效、则运行 basic_persistent。 应如何配置此要求以实现?

    此操作在示例中默认完成、因此无需进行配置。 如果查看工程的 SysConfig 文件中的安全配置设置、您将看到其中一个工程的版本号低于另一个工程。 安全启动将始终引导至版本号最高的映像。  

    该示例的工作方式实际上与您所说的非常相似、当发生更新时、它会使当前运行的映像无效。

    CC2745 我测试了安全启动、我使用了官方工程部门的默认配置、并烧录了 basic_persistent_LP_EM_CC2745R10-Q1_freertos_ticlang_sb.hex 和 basic_ble_oad_onchip_LP_EM_CC2745R10_Q1_freertos_ticlang_sb.bin 文件。 芯片启动后、会运行 basic_persistent 程序。 我读取了芯片上 0x00 的固件区域、发现它是 0xFF、这意味着只有 0x31000 具有固件、并且 0x00 中的固件已擦除。 有关此问题尚未解决、请参阅我之前的文章: e2e.ti.com/.../5766226

    要刷写这些映像、必须遵循特定的刷写序列。 你 无法同时刷写两个映像 。 如果要同时刷写这两个映像、必须使用 srec_cat 等工具将它们组合成一个映像。

    1.首先通过执行两次批量擦除来确保芯片为空白。 这也会清除 HSM 固件。 这样做是为了确保器件处于已知状态。

    2.刷新位于中的.out 文件 /bin/hsm/cc27xxx10_hsm_fw_v3.0.0.out 文件中。 刷写后、复位器件、并确保 EVM 上的绿色指示灯闪烁或亮起。 这将刷写 HSM 固件、无需进行多个闪存。

    3.确保通过 Uniflash 将 HSM 固件加载到器件上:

    单击  读取 HSM 系统信息  配置。 如果成功、您应该会看到 HSM 版本信息。

    4.使用 Uniflash 刷写 basic_ble_persistent_sb.hex 文件。  

    5.刷写 basic_ble_oad_onchip_sb.bin 文件之前、请确保中的设置  Settings & Utilities  -->  在编程加载之前、请勿擦除 被选中。 如果您在未设置此设置的情况下刷写器件、之前的映像将被擦除。

    6.连接到设备并执行 OAD。

    如果您发现无法将任何内容刷写到设备中、可能是因为设备输入了 ROM 紧急。 为了摆脱这种情况,你必须再次擦除芯片(并继续重试,如果它失败),使其摆脱 ROM 恐慌。

    如果您遇到任何问题、请告诉我。

    此致、

    Nima Behmanesh

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

    您好、

    我使用脚本命令将 basic_persistent_LP_EM_CC2745R10-Q1_freertos_ticlang_sb.hex 和 basic_ble_oad_onchip_LP_EM_CC2745R10_Q1_freertos_ticlang_sb.bin 合并到单个 test.hex 文件中:
    srec_cat.exe -o test.hex - Intel basic_ble_oad_onchip_LP_EM_CC2745R10_Q1_freertos_ticlang_sb.bin — 二进制-offset 0x31000 basic_persistent_LP_EM_CC2745R10-Q1_freertos_ticlang_sb.hex - Intel
    刷写 TEST.hex 后、basic_ble_oad_onchip 程序会运行(通过蓝牙名称确认)、但当我使用 UniFlash 读取地址 0x00 处的数据时、数据全部为 0xff、这意味着 basic_persistent 应用程序仍在被擦除。 我的目标是、当两个应用程序都有效时、系统应该跳转到并运行 basic_ble_oad_onchip 应用程序(而不擦除 basic_persistent)。 但是、当我执行 OAD 更新时、我将擦除 basic_ble_oad_onchip 应用程序的标头、然后重置系统、此时我期望程序跳转到并运行 basic_persistent 应用程序。

    谢谢你

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

    您好、

    请允许我再过一天来研究这个问题。

    此致、

    Nima Behmanesh

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

    您好、

    我对此进行了深入研究、发现在合并图像时、我看到了同样的行为。 但是、我认为这与工程的整体配置有关。 我将尝试在 EOD 或星期一上回复您。

    此致、

    Nima Behmanesh  

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

    大家好、请问是否有最新进展

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

    您好:

    很抱歉耽误你的时间。 我认为问题是其中一个工程必须配置为次级安全引导加载程序。 我正在尝试将 basic_persistent 工程从将应用插槽迁移到 SSB 插槽、并将它们组合在一起、看看我是否看到了相同的行为。

    我仍在处理此迁移、但完成后、我将提供一个链接供您尝试。 此外、您还可以在应用中并行尝试此方法。

    此致、

    Nima Behmanesh

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

    谢谢您、如果有任何新的发展、请及时通知我、因为我有一个正式项目要使用。

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

    您好:

    我将在本周处理这一问题、并将在星期三上获得 EOD 的更新。 我也会告诉您该日期之前的任何发现。

    此致、

    Nima Behmanesh

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

    您好、我想了解最新的发展

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

    您好:

    抱歉。 我们目前的带宽有限。  

    这是意料之外的、我一直在与研发团队合作以确定问题。 上述建议的修复方法尚未经过测试、但我希望本周对其进行测试并提供反馈。  

    此致、

    Nima Behmanesh

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

    您好、

    我发现解决方案是做几个更改:

    1. basic_persistent 应用程序必须放在辅助插槽中、并且其固件版本必须设置为与 basic_oad_onchip 相同的版本。

    2. basic_oad_onchip 必须放在主插槽中,并且其版本必须与 basic_persistent 固件版本匹配。

    进行这些更改后、您可以组合映像并刷写它们、而无需擦除任何槽位。

    此致、

    Nima Behmanesh