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.

[参考译文] CC3235MODASF:从 CC3235MODASF 到 CC3235MODAS 的 OTA

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1035763/cc3235modasf-ota-from-cc3235modasf-to-cc3235modas

器件型号:CC3235MODASF
主题中讨论的其他器件:UNIFLASHCC3235SCC3235MODASCC3235SF

您好!

 由于芯片短缺、我们正在考虑将我们的产品之一从 CC3235MODASF 切换到  CC3235MODAS。 通过一些优化、我们可以不使用1MB 内部闪存。  

为了避免必须保持两个不同的固件、我想在两个变体上使用相同的二进制文件。 我为   CC3235MODAS 制作了一个固件、该固件在 CC3235MODASF 上正常运行。  现在、我要尝试从 SF 到 S 固件进行 OTA。

我所期望的是:

-删除 标签 为 SL_FS_WRITE_BUNDLE_FILE 的/sys/mcuflashimg.bin。

-使用  标签 SL_FS_WRITE_BUNDLE_FILE 编写/sys/mcuimg.bin

-检查新固件,如果 使用 sl_FsCtl ((slFsCtl_e) sl_FS_CTL_bundle_commit 成功提交,...)

我的问题是:  

1:是否有方法 使用 sl_FsDel 设置标志 SL_FS_WRITE_BUNDLE_FILE?  

2: /sys/mcuflashimg.bin 被设置为使用公共写入来确保安全。 我将默认令牌保留在 uniflash 中、我理解这意味着它是不可恢复的。 当尝试删除不带令牌的文件时、我收到错误 SL_ERROR_FS_INVALID_TOKEN_SECURITY_ALERT。 是否有任何方法 可以删除文件而不通过 uniflash 进行刷新?

此致、

C é dric

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

    您好、Cedric、  

    我不确定你到底要做什么。 " 使用 sl_FsDel 设置标志 SL_FS_WRITE_BUNDLE_FILE "是什么意思?

    SL_FS_WRITE_BUNDLE_FILE 是 OTA 映像中用于标记必须一起替换的文件(或在其中一个文件无法更新时恢复)的标志。  sl_FsDel 有何相关性?

    假设您使用 Uniflash 创建 OTA 映像-您可以创建2个项目、一个用于 S、一个用于 SF、两个项目将包含相同的文件、 但对于 SF 器件、映像将被称为"mcuflashimg.bin";对于 S 器件、相同的代码将被写入"mcuimg.bin"。  

    我可能缺少一些内容、因此请 描述更新过程。

    BR、

    Kobi

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

    您好、Kobi、

    我正在尝试从  闪存中执行的 mcuflashimg.bin 映像进行 OTA、到 从 RAM 中执行的 mcuimg.bin 映像。  

    我认为应按以下顺序完成

    1:擦除 (或标记为删除) mcuflashimg.bin  

    2:写入 mcuimg.bin

    3:在 mcuimg.bin 上重新引导并提交捆绑包

    但是、我似乎无法删除  mcuflashimg.bin、也无法以可逆的方式删除它。

    我希望它更清晰。  

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

    否 您无法删除 mcuflashimg.bin (如果添加时没有供应商令牌)。

    是 CC3235S (CC3235MODAS)还是 SF 器件?

    您最初是如何(以及为什么)将 mcuflashimg.bin 写入闪存的?

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

    目前我正在  CC3235MODASF 上进行测试。  

     mcuflashimg.bin 是通过 UART 编程和 Uniflash cc3235sf 项目输出编写的。

    在我们的主要产品上、我们使用 SF 变体、因为我们需要额外的空间、这就是我们没有考虑最终在另一个产品上改用 S 变体的原因。

    好的、然后我知道、由于缺少令牌、如果我们只想为 S 和 SF 变体使用一个固件、则可以使用、但前提是通过 UART 编程升级整个系统。

    现在、我将使用 令牌进行测试、看看是否可以  以可逆的方式从 mcuflashimg 切换到 mcuimg。 我想开关是可行的、但不能恢复。

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

    我仍然不确定你要做什么。

    S 器件将需要不同的映像(RAM 中的代码(.text)部分位于不同的地址、而闪存文本部分则位于不同的地址)。

    为什么不为 S 器件构建另一个映像? 您的方法如何简化流程?

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

    通过在 SF 器件上运行 S 固件、我的方法通过仅为 S 和 SF 器件提供一个固件来简化维护。 否则、将来我将不得不维护两个不同的固件分支。

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

    好的、所以您在 SF 器件上运行 S 代码(不使用闪存)。

    您只需 将文件"sys/mucimg.bin"添加为用户文件(具有与 MCU 映像中使用的相同的标志)到 uniflash CC3235SF 工程(由于类型正在验证、因此在 uniflash 中每个器件需要2个工程) 固件将加载到 RAM 而不是闪存中。   

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

    是的、这就是我所做的。 当刷写 Uniflash 时、它在 cc3235SF 的 RAM 中运行正常。  

    现在、我将尝试从 mcuflashimag.bin 到 mcuimg.bin 进行 OTA。

    我刚刚测试了删除  mcuflashimag 和写入 mcuimg、但它似乎不会在 mcuimg 上引导。 我怀疑引导加载程序会继续使用内部可执行闪存中的代码。

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

    这非常棘手。

    我认为、除非您对闪存进行格式化和重新编程(例如使用 sl_FsProgramming)、否则您无法删除内部闪存。