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:使用嵌入式编程刷写失败(使用代码-10289)

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1434056/cc3220sf-flashing-with-embedded-programming-fails-with-code--10289

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

工具与软件:

大家好!

我在使用嵌入式编程 exe 刷写固件时遇到问题。 以前、使用虚拟证书链进行刷写不会出现任何问题。 但是、切换到自定义证书链后、该过程会因错误代码-10289和扩展错误代码2633而失败

有趣的是、当我使用具有相同定制证书的 UniFlash 时、闪存成功完成。 对于故障排除或解决此问题的任何见解、我们都将不胜感激。

谢谢!

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

    您好!

    此错误表示文件的签名错误(关闭文件时)。

    映像中包含了什么目录、以及如何根据证书配置文件(MCU 映像文件和其他用户文件、如果您有)?

    如果它 能与 Uniflash 配合使用、那么它就没有理由不能与嵌入式编程配合使用。

    Shlomi

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

    您好!

    我们使用的是 self.signed 证书。

    然后、我们创建了一个证书目录、而证书目录由我们的根私钥签名。


    证书是什么
    根 CA 证书 vmed_root_ca_cert

    供应商证书 vmedd_cert_trusted

    MCU 映像由此厂商证书"vmedd_cert_trusted"的私钥签名   
    没有其他文件经过签名或加密


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

    我们生成了这样的目录

    REM 生成证书目录
    SLImageCreator.exe 工具 make_cert_catalog --cert_folder %CertificatesFolder%--out_file %CatalogPath%

    使用供应商私钥对目录进行 REM 签名
    SLImageCreator.exe tools sign --file %CatalogPath%--priv %PrivateKeyPath%--out_file %CatalogSignedPath%--fmt "binary_SHA1"

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

    您好!

    不确定 OTP 过程是怎样进行的、但只是为了确保您是否在私有目录中包含了您正在使用的根 CA? 我想现在可以使用 OTP、正如您提到的、它可以与 Uniflash 一起使用。

    只是想确保我理解、使用 Uniflash、编程成功、对吧? 此外、该应用程序已加载、并按预期运行。 是这样吗? 是不是只有嵌入式编程不起作用?

    Shlomi

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

    您好!
    我们的两个证书都存在于根目录中、如  

    根 ca 证书=  vmedd_root_ca_cert

    供应商证书=   vmedd_cert_trusted

    使用 uniflash 进行编程成功实现了100%。 到目前为止、我们已经测试了数百台设备、并且 在过去两个月内正常运行。


    "是不是只有嵌入式编程不起作用?"
    是的、使用我们的私有证书、嵌入式编程将无法正常工作。 我们之前使用虚拟证书对嵌入式编程进行了测试、结果非常理想

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

    我在流程中仍然不理解的是 OTP 发生在哪里。

    只能使用 Uniflash 来实现 OTP。 您能否描述这两种情况(Uniflash 和嵌入式编程)的流程?

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

    您好!

    我不需要 OTP 来进行嵌入式编程。 我们正在使用 uniflash 执行 OTP。

    您能否描述两种情况下的流程(Uniflash 和嵌入式编程)?

    您能否更详细地解释一下"流"一词是什么意思?

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

    那么、您要在 OTP 已刷写时进行编程吗?

    我说的流程是指通过嵌入式编程时所采取的步骤。

    您能否附加 ImageConfig.xml 文件? 我想查看文件名和配置。

    Shlomi

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

    e2e.ti.com/.../ImageConfig.xml

    这是我的  ImageConfig.xml。

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

    [报价 userid="53835" url="~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1434056/cc3220sf-flashing-with-embedded-programming-fails-with-code--10289/5506832 #5506832"]现在您正在闪存 OTP 时进行编程?

    是的、OTP 已刷写

    通常、我使用 dslite CLI 或 GUI 创建 uniflash 映像

    我将使用 dslite CLI 执行这些步骤

    1. 添加文件
    2. 添加根证书颁发机构文件  

    ${dslite} --mode cc32xx project add_file --name ${uniflash_project_name}--file      ${vmedd_root_ca-cert}--fs_path vmedd_root_ca_cert --flags nofailsafe、nopublicwrite --overwrite

         3. 添加可信证书文件

    ${dslite} --mode cc32xx project add_file --name ${uniflash_project_name}--file      ${vmedd_cert}--fs_path vmedd_cert_trusted --flags nofailsafe、nopublicwrite --overwrite

    4.设置可信目录

     ${dslite}--模式 cc32xx 项目 set_certstore -- 名称${uniflash_project_name} --文件${vmedd_catalog} --符号${vmedd_catalog_signed}--覆盖

           

     5.添加 MCU 映像

     ${dslite}--mode cc32xx project add_file --name ${uniflash_project_name}--project_path ${uniflash_project_path} --file ${mcu_image}--mcu --flags failsafe、secure、publicwrite --overwrite --write ${vmedd_priv}--${cert_key}

     6.创建 Uniflash 映像

      ${dslite}- mode cc32xx project create_image --name ${uniflash_project_name}--project_path ${uniflash_project_path}

     7.使用嵌入式编程刷写设备

    ImageProgramming.exe -p ${port}-i ${ucf_file}-v

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

    您好!

    如果我查看 Uniflash CLI (或 GUI)刷写映像的过程、会发现有一个用于使用供应商证书目录的复选框。

    此标志不是 xml 文件的一部分、因此嵌入式编程在签名时失败、因为无法根据 OTP 公钥对其进行验证。

    总而言之、当使用 OTP 功能时、必须将 Uniflash 用于映像编程。

    我没有办法验证它,但似乎是这样的。

    您能否仔细检查自己的方面并通过 Uniflash CLI 进行编程、看看编程是否成功?

    此致、

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此标志不是 xml 文件的一部分、因此嵌入式编程在签名时失败、因为无法根据 OTP 公钥对其进行验证。

    对于 uniflash、当检查供应商证书目录时、编程成功。  
    对于嵌入式编程、在检查供应商证书目录时、编程会失败。

    此标志不是 xml 文件的一部分、因此嵌入式编程在签名时失败、因为无法根据 OTP 公钥对其进行验证。

    这是否意味着我不能使用我的私人目录?
    在这种情况下 、我现在应该怎么做?

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

    您好!

    问题是、OTP 支持是在稍后阶段添加的、需要将次级引导加载程序加载到 RAM 并执行。

    这是由 Uniflash 完成的、而嵌入式编程使用的是一个没有这些功能、外形更薄的次级引导加载程序(旧版)。

    只更改新的引导加载程序将不起作用、因为还必须修改该过程(例如写入 RAM 中的不同位置)。

    因此、仅 Uniflash 支持 OTP。

    Shlomi

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

    非常感谢您的详细答复。 我们是否可以期待在不久的将来对嵌入式编程工具进行任何更新?

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

    尊敬的 Swapnil:

    请注意。 你知道 python 吗? Unilfash Image Creator 在 Python 2.7中编写,并编译成 exe 文件。 我希望我不需要说更多...

    1月