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.

[参考译文] CC3235MODSF:编写服务包 API -签名和确认

Guru**** 2395925 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1221352/cc3235modsf-writing-the-service-pack-api---signature-and-confirmation

器件型号:CC3235MODSF

您好!

我正在尝试使用 SimpleLink API/AT Wifi 命令更新服务命令。 我不想对整个 WiFi 模块重新编程、因此我使用的是 AT+FileWrite 命令。 我有两个问题。

首先- 我知道服务包需要用其签名关闭、但我所做的似乎不起作用。  我将根据《SimpleLink Wi-Fi AT Command 用户指南》发送以下命令:

AT+FileClasse=340588583、3d115b452f22c81ebf830863fce98d53e63db662

该格式为:  

AT+FileClose–[fileHandle]、[NULL]、[SHA1签名]

发送此报告时、我收到"-5"错误、该错误未出现在"SimpleLink CC31xx/CC32xx 主机驱动程序" error.h 列表中。 根据我看到的 wifi 模块源代码、"-5"可能表示  STRMPL_ERROR_SIZE 错误。 我试着给它发送一个较短的签名的虚构字符,我收到了一个"确定"的回应回来。 我认为我加入的签名太长了、但我不确定如何设置其格式。 我的理解是 SHA-1通常采用40符号十六进制值进行格式化。 我应该如何设置它的格式?

我的第二个问题是如何知道服务包写入成功? 当我发送一个简短的,废话的签名在 FileClose ,它响应"确定",即使它不应该是一个成功的写有一个不好的签名。 是否有办法进行服务包版本检查?

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

    您好、Anna、

    我注意到两件奇怪的事情,关于你最初的命令。 首先、签名应比您发送的签名长得多。 签名可以在 SDK 工具文件夹中找到(本例中的路径为 C:\ti\simplelink_cc32xx_sdk_6_10_00_05\tools\cc32xx_tools\servicepack-cc3x35)。 第二、当您更新我们的第2代器件(CC32xx)时、您需要使用 SHA2、而不是 SHA1 (但无论如何、如果您错过了私钥、您不能计算签名–您应该使用我们提供的签名)。

    对于这两个问题、我都需要一些时间来检查错误的来源。 我会在1到2个工作日内回复您。

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

     您好、Anna、

    1.转到 SDK 中 atcmd_file.c 的第315行、并将 ATCMDFILE_SHA256_LEN 更改为256。 这应该在 if 语句的 ATCmdFile_closeParse()中的 commented /*Signation*/下。 (路径为 simplelink_cc32xx_sdk_6_10_00_05/source/ti/net/atcmd/)

        /* Signature */
        if ((ret = StrMpl_getAllocStr(&buff, (char **)&params->signature, ATCMD_DELIM_TRM, 256 ,ATCmd_excludeDelimStr)) < 0)
        {
            if (ret != STRMPL_ERROR_PARAM_MISSING)
            {
                return ret;
            }
            ret = 0;
        }
    

    2.为 atcmd (gmake.exe)构建核心文件。 此过程的文档可在以下位置找到: file:///C/C:/ti/simplelink_cc32xx_sdk_6_10_00_05/docs/simplelink_mcu_sdk/Quick_Start_Guide.html #build-core-libs)   

    3.最后,当使用 AT+FileClose 命令时,第三个输入应该是签名

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

    感谢您的参与。 这是否意味着在不改变构建的情况下无法编写服务包? 对于我正在处理的板、我无法轻松地对其进行重新编程、因此我想编写服务包、而不是构建新的映像。  

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

    正确、您 必须 更改编译以修复签名长度。