主题中讨论的其他器件: UNIFLASH
您好!
在对 cc3235modsf 执行 OTA 更新时、自动回滚出现问题。
我正在编写文件 /sys/mcuflashimg.bin、调用 sl_Stop、PRCMHibernateCyclone 触发器并测试新固件。 如果成功,我将调用 sl_FsCtl (sl_FS_CTL_bundle_commit,...)。
如果文件 在首次启动时未通过提交验证、我希望该文件自动恢复为上一个文件;如果文件根本无法正常工作、我希望该文件在几秒钟后自动回滚。 使用功能固件进行测试时、效果良好。 但是、当写入错误文件时、我会遇到两种意外行为:
1:使用 sl_FsClose (FileHandle、FS_certificate_file_name、buff、key_size)关闭文件时;即使密钥不是正确的、它返回0。
2:cc 随后不会唤醒。 我需要从外部对其进行复位
更多信息:
要打开文件、我将使用以下标志:
uint32_t 标志= sl_FS_OVERRITE;
flags |= sl_FS_create;
flags |= sl_fs_create_failsafe;
flags |= sl_fs_write_bundle_file;
flags |= sl_FS_create_MAX_SIZE (FW_MAX_FILE_SIZE);
flags |= sl_fs_create_secure;
flags |= sl_fs_create_public_write;
写入新文件后、slFsFileInfo_t.Flags 为0x258。
文件写入后捆绑包状态为1、调用 sl_Stop 后捆绑包状态为2。
我也尝试调用 Platform_CommitWdtConfig (如 OTA_cloud 示例中所示)来设置看门狗、但没有成功。
我使用的是最新的 SDK 3_30_01_02和 Service Pack 4.4.4.1.3_3.1.0.5_3.1.0.19
通过对 cc3220modasf 执行类似的过程,调用 sl_FsClose ()时,我会得到错误 sl_error_FS_wrong_signature_security_alert
您有什么想法吗?
请随时了解更多信息。
此致、
C é dric