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.

[参考译文] CC3235S:如何更新 CC3235S 上的受保护/sys 配置文件? (/sys/ap.cfg、/sys/devname.cfg,…)?

Guru**** 2606725 points
Other Parts Discussed in Thread: CC3235S, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1577630/cc3235s-how-to-update-protected-sys-config-files-on-cc3235s-sys-ap-cfg-sys-devname-cfg

器件型号:CC3235S
Thread 中讨论的其他器件: UNIFLASH

大家好—关于 CC3235S 上 SimpleLink 文件系统的快速问题。

作为更新流程的一部分、我们需要更新器件上的网络设置(SSID、密码、IP 地址等)。 我们要更改的文件包括/sys/ap.cfg、、/sys/devname.cfg/sys/httpsrv.cfg

是否可以/sys/*直接从 MCU 代码(例如/)覆盖这些文件sl_FsOpen()sl_FsWrite()、或者这些文件仅通过一些特殊机制进行保护和写入?
作为参考,当我们尝试打开它们时,我们得到了一个错误(返回)sl_FsOpen-10248。 是否有任何支持的工作流以下列方式之一更新它们:

  • 直接从 MCU 覆盖(使用适当的标志/签名)、

  • 例如sl_WlanSet()sl_NetCfgSet()、在运行时使用 SimpleLink API、

  • 将它们包含到 OTA 映像/清单中、以便 OTA 对其进行更新、

  • 或仅通过 UniFlash/出厂/服务包进行更新?

任何指示或最佳做法都将得到赞赏。

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

    您好、

    如果您查看 CC3235 器件的示例工程、编译该工程可让您看到 MCU+Image 文件夹、该文件夹具有 syscfg/SL_FS/sys 目录、其中包含您提到的配置文件的所有二进制文件。 要更改器件的 SSID、IP 地址等、尤其是用作 AP 时、一种简单的方法是在“Network Processor“选项卡的角色设置中的 image.syscfg 中编辑这些设置。

    在便携式示例中有一个很好的示例。

    祝您好运、我希望这对您有所帮助。

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

    谢谢 Brandon!

    我了解情况、但在实践中、我们需要在现场更改这些配置设置。 此时、需要连接硬件编程器来更新器件。
    我实施了一个 引导加载程序 、允许通过 CAN 总线更新器件固件和文件、剩下的挑战是通过 WiFi 为系统配置文件实现相同的结果。
    我可以将文件上载到平台,但我无法找到明确的确认或反驳我的怀疑,这些系统文件是无法访问的用户代码修改(甚至阅读).

    因此、我的问题是:这些文件是否可通过 MCU/用户代码写入/覆盖、如果是、正确的过程是什么? 如果不是、在字段中更改这些设置的推荐支持方法是什么?

    提前感谢您。
    Vlad

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

    您好、

    这是一个非常好的观点,我很抱歉误解你的初始问题。 我最初提到过、您可以编辑 syscfg 设置以更改 SSID、IP 地址等、对于现场已有的器件、您可以肯定地使用 OTA 来更新这些配置。  

    至于直接覆盖您提到的系统文件,我必须仔细看看,因为我相信,在编辑这些文件时有一些限制,因为它们会影响设备的功能。 我知道 /sys/mcubootinfo.bin 可以按照 NWP 指南第 145 页所示进行编辑、并具有示例代码中显示的标志、但我需要检查对其他系统文件(如 ap.cfg 等)执行相同操作是否安全 我还将检查并查看这些设置是否也可以直接使用 NWP API 进行编辑、这样您就不必更改受限文件。

    此致、

    Brandon Liu

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

    谢谢你,布兰登,我真的很感激!

    我们不使用 OTA — 我们的引导加载程序通过 CAN 总线工作。

    目前、我使用以下 API 调用来进行这些更改:

    sl_WlanSet(SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_SSID, valLen, (unsigned char*)val);
    sl_WlanSet(SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_SECURITY_TYPE, sizeof(_u8), (_u8*)&sec);
    sl_WlanSet(SL_WLAN_CFG_AP_ID, SL_WLAN_AP_OPT_PASSWORD, valLen, (unsigned char*)val);
    sl_NetAppSet(SL_NETAPP_DEVICE_ID, SL_NETAPP_DEVICE_URN, valLen, val);

    我的主要问题是、我可以直接重写这些系统文件吗?
    因为对于这样一个小的变化,实现完整的 JSON 解析和相关的 API 调用感觉像不必要的开销,我的意思是,例如,在进行重大更改时,例如更新一行中的多个参数(IP 地址、DHCP 选项等),直接覆盖这些系统文件似乎更有效,而不是通过完整的 JSON 解析和调用 API 层。 如果我用相同的文件覆盖由 syscfg 实用程序创建的文件、实际上会发生什么情况?

    此致、
    Vlad

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

    尊敬的 Vlad

    否、您不能依赖重写这些文件、因为它们被视为安全文件、用户代码无法通过 sl_FS API 进行访问。

    1 月

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

    您好、Jan!

    我想同样的规则适用于所有系统文件、对吧?

    此致、

    Vlad

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

    您好、

    很抱歉、我不能说这是否适用于所有系统文件。 但最重要的可能是连接配置文件这样。

    1 月

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

    尊敬的 Vlad:

    感谢您的耐心。 如前所述、您可以编辑 mcubootinfo、但最好是通过 API 调用更改设置来编辑其他系统文件(您提到的文件)的内容。