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.

[参考译文] CC3220MODA:如何确保写入过程

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/984336/cc3220moda-how-to-ensure-the-write-procedure

器件型号:CC3220MODA
主题中讨论的其他器件:UNIFLASHCC3220MOD

您好!

当我们启动 cc3220器件时、如果我们执行一些文件系统操作来将 Jons 数据等文件写入闪存、一旦发生电源故障或在写入文件期间执行电源复位、闪存分区将消失、需要使用 uniflash 来恢复它。

这是我的闪存存储器分区布局、并使用自定义的4MB 闪存。

所以我只是想知道有什么方法可以确保文件访问在文件访问期间断电时保持安全(至少不要中断分区...)? 它将如何导致设备需要重新刷新...

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

    您好!

    "闪存分区将消失"是什么意思? 您是说已写入文件的内容已损坏、还是文件系统中的所有文件均已损坏、包括文件\sys\mcuimg.bin、设备将不再启动?

    如果要在写入失败期间将文件内容恢复到最后正确状态、则可以对用户文件使用失效防护选项。

    您使用什么 SKD 和 ServicePack? 请确保将最新的 SDK 和最新的 ServicePack 上载到 sFlash 中。

    您通过代码写入 sFlash 的频率如何?

    1月

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

    您好、Jan、

    "您是指已写入文件的内容已损坏或文件系统中的所有文件均已损坏、包括文件\sys\mcuimg.bin、设备将不再启动?" 是的、因此我必须使用 uniflash 来恢复它。

    "代码写入 sFlash 的频率如何?" 每次启动器件时、写入一次。 此问题只是在电源故障时发生。

    这是我一侧的当前 SDK 版本:

    Simplelink_cc32xx_sdk_2_10_00_04

    Simplelink_cc2640r2_sdk_4_30_00_08

    Simplelink_sdk_ble_plugin_3_20_00_24

    您能否向我展示有关失效防护的文档/演示代码? 不过、它可能只是用于 OTA、还是可用于任何类型的文件操作?

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

    您好!

    很抱歉我不明白。 您的意思是"是"。 是否已损坏已写入文件或文件系统中的所有文件已损坏?

    SDK 版本2.10已经很旧了。 将近三岁。 您能否尝试使用最新的 SDK 版本。 不要忘记也更新 CC3220MOD 内的 ServicePack。

    失效防护选项您可以使用任何用户文件。 需要使用失效防护标志创建文件(使用 Uniflash 或使用带有标志 SL_FS_CREASE_FAILSAFE 的 API sl_FsOpen())。

    在启动代码后重新写入 sFlash 可能不是最佳方法。 如果您的代码发生错误、将导致意外的器件重启、这可能会很快导致 sFlash 的物理损坏。 请注意、每个扇区的 sFlash 写入周期数量有限(每个扇区为100k/写入周期)。

    1月

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

    您好、Jan、

    很抱歉我不明白。 您的意思是"是"。 是否已损坏已写入文件或文件系统中的所有文件已损坏? <=是意味着"文件系统中的所有文件都已损坏、无法启动"

    我将尝试使用最新的 SDK 并启用失效防护功能、以便再次进行测试。

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

    我的客户已经测试了失效防护...但运气不好~

    这是他唯一要编写的代码:

    这可能是硬件问题吗?

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

    您好!

    请告诉我最新 SDK 的结果。 不要忘记在设备中使用最新的 ServicePack。

    请注意、您应该创建一次失效防护文件(使用 CREATE 标志)、并且在使用 open 仅用于写入之后。 如果您的器件处于开发模式、则可以使用 Uniflash 检查您的文件是否成功创建为失效防护。

    1月

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

    您好、爱知、

    我同意 Jan 的建议。 请告诉我们结果。

    -Ben M