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.

[参考译文] CC3220SF:从 CC3200移植自定义 WiFi 升级过程

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/852376/cc3220sf-porting-a-custom-upgrade-over-wifi-procedure-from-cc3200

器件型号:CC3220SF
主题中讨论的其他器件: CC3200CC3220RUNIFLASH

您好!

采用 CC3220SF 后、我们的 WiFi 升级过程失败。

sl_FsDel()实际上不会删除引导映像文件。 这是其中一个步骤。

代码:

lRetVal = sl_FsDel ("/sys/mcuflashimg.bin、1);// 1是 ImageCreator 中使用的令牌

函数函数函数函数函数莫名 lRetVal 实际上返回0

这是用于初始烧录 MCU 的文件配置:

请提供帮助。

谢谢、

Moshe

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

    您好 Moshe、

    您无法删除设备正在运行的引导映像。 CC32xx 会将之前的映像保留为失效防护、一旦您通过运行新映像来检查新映像、就必须提交新映像才能完成 OTA 更新。

    有关  更多详细信息、请参阅 SimpleLink Academy OTA 模块和 OTA 应用报告。

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

    谢谢。  我不使用 OTA API、而是使用 FS API、尝试用简单的 FS 操作替换文件。 可以这么做吗?

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

    您好!

    二进制文件更新(/sys/mcuflashimg.bin)的逻辑比旧版 CC3200复杂得多。 需要执行多个步骤、包括按精确顺序重新启动和提交。 OTA 示例中说明了如何正确实现这一点。 您可以在 此处找到其他信息

    1月

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

    是否可以完全删除此文件的安全功能?

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

    您好!

    否 这是不可能的。 但是、可以在 CC3220和 CC3235器件上实现自己的更新程序、但与旧版 CC3200相比、只需更努力。

    有一个 CC3220R 器件(没有用户级安全性和执行闪存)、但该器件不会让您的任务更轻松。

    1月

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

    再次感谢。

    我正朝这一程序敲我的头。

    当前 sl_FsCtl ()正在返回 SL_ERROR_FS_INVALID_魔术_NUM   -这意味着什么?!

    在哪里可以找到这样的示例代码,以便使用 FS API 以编程方式替换 img bin 文件?

    在写入 img 文件后关闭该文件时也出现问题。 在 FsClose ()未返回错误后,我收到了一些错误,表示未正确关闭。

    它似乎与签字有关。 我可以从哪里获得它? 我在 ImageCreator 刻录过程中看不到这是输入的。

    谢谢!

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

    您好!

    由于返回了幻数错误、您的文件系统似乎已经存在一些问题。 不幸的是,我不熟悉这个问题。 请等待 TI 方的答复。

    关闭 此处所示的安全文件时有关签名的信息

    1月

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

    您好 Moshe、

    如 Jan 所述、INVALID_MEGIC_NUM 错误表示闪存存在一些损坏。 我不知道导致这种情况的原因(通常与闪存 SPI 线路上的问题有关)。  

    OTA 的建议方法是覆盖 MCU 映像(而不删除旧映像)。

    当您设置"公共写入"标志时,您将启用应用程序以覆盖内容(这是 MCU 映像的默认设置,它似乎是根据 Uniflash 屏幕截图设置的)。

    此外、还应使用失效防护功能(看起来您已取消设置此功能)在安装错误/不起作用的映像时保护器件。 如果新映像无法启动、则可以使用复位来恢复到最后一个工作映像(如果按照 OTA 示例操作-您将看到如何启用看门狗、从而自动复位器件)。 如果您验证新映像、则应提交 MCU 映像、使其成为可操作映像(如果使用了看门狗、则还应重置看门狗)。

    当然、您可以使用 FS 命令从头开始创建自定义 OTA、但我建议 您至少检查"ota_archive.c"(在 OTA 库中)的逻辑、作为新映像安装的参考。 除了上述功能外、还演示了如何验证 OTA 内容(使用数字签名)。 它从可由 Uniflash 生成(并签名)的 tar 文件中提取内容。

    BR、

    Kobi


      

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

    在哪里可以找到 TI 游乐场的私钥。 我想使用它来对我的 img bin 文件进行签名,并在 FsClose ()期间使用它。

    谢谢

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

    您好!

    dummy-root-ca-cert 的私钥(\simplelink_cc32xx_sdk_3_30_01_02\tools\cc32xx_tools\certificate-pador\)。

    1月

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

    当我按照 fs.h 文件中的建议使用 openssl.exe 时,会出现以下错误:

    C:\Program Files\OpenSSL Win64\bin>openssl dgst -binary -shA1 -sign dummy-root-ca-cert-key -out tmp.hex C:\tmp.txt
    无法加载密钥文件
    28092:错误:0909006C:PEM 例程:GET_NAME:NO START LINE:crypto\pem\pem_lib.c:745:期望:任何私钥

    (使用以前由 openssl 生产的我自己的私钥运行时、它可以正常工作。 但是,当我尝试使用自己的密钥进行 img bin 升级时,在使用 sl_error_FS_root_CA_is_unkown 的 FsClose 上失败。)

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

    您好!

    我认为您的 openssl 命令需要 PEM 证书,但 dummy-root-ca-cert-key 是 DER 格式。

    1月

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

    我成功地使用 openssl 转换到 PEM、但在创建摘要(签名) 时仍然出现相同的错误、预期为:任何私钥

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

    您好!

    根据此主题、您似乎仍然没有正确的 PEM 文件。

    更新了:好的、我尝试了这种方法、我看到了类似的错误。 我不确定发生了什么。 请等待其他用户提出意见。

    1月

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

    可能是转换问题。

    请尝试以下操作:

    //转换为 PEM

    OpenSSL RSA -inform der -outform PEM -in dummy-root-ca-cert-key -out dummy-root-ca-cert-key.pem

    //使用 PEM 键签名

    OpenSSL dgst -二进制-shA1 -签名 dummy-root-ca-cert-key.pem -out tmp.hex tmp.txt


    您还可以使用 Uniflash 中的工具(在选择 CC32xx 器件并启动映像创建器后)对文件进行签名。

    BR、

    Kobi