FOTA常见问题
2023-08-31
模组固件和业务脚本的升级方式有哪些
固件升级:差分升级、最小系统升级
脚本升级:app_fota升级、整包升级、全量升级
如何进行固件升级
- 使用QPYcom工具制作升级包。
- 上传升级包到服务器。
- 使用HTTP或FTP根据服务器的链接地址下载升级包写入设备并校验升级包。
- 升级包校验后需要重启模块,系统在设备重启之后自动进行OTA升级。
- 升级完成后,可通过modem.getDevFwVersion()查看固件版本。
更多详情请参考链接:[fota](fota - 固件升级相关功能 - QuecPython (quectel.com))
如何进行业务升级
- 上传目标文件到服务器。
- 通过HTTP根据服务器的链接地址下载待升级的目标文件到文件系统中。
- 设置升级标志记录是否要进行文件升级。
- 重启模块,重启后即可启动升级工作,同时清除升级标志。
- 升级完成后,可在文件系统分区查看升级后的目标文件。
更多详情请参考链接:[app_fota](app_fota - 用户文件升级相关功能 - QuecPython (quectel.com))
fota升级的机制是怎样的,能否保证升级失败后不会变砖,能否断电再上电后继续升级
- fota升级机制:开始升级-下载目标包-下载成功-校验-校验成功-重启模块-升级成功。
- 最小系统升级不可以保证,其他升级方式可以保证升级失败后不会变砖,因为最小系统是一边升级一边刷新固件分区,其他固件升级方式可以退回原来的模式所以不会变砖。
- 断电分两种情况:
- 下载过程中断电:重新上电运行后需要调用升级接口重新触发下载,会从头开始下载。
- 升级过程中断电:可以记录升级标志和上次升级的位置,重新上电后继续上次的位置进行升级直到升级完成并重启。主要原理是:每次升级之前先备份正在升级的分区的原始固件内容,同时记录当前升级的偏移位置,下次上电后可以继续上次升级的位置进行升级。
什么情况下无法进行FOTA升级
- 新旧固件不是同一个基线的固件包。
- 内存空间不足。
- 升级地址错误。
- 最小系统不支持HTTPS升级。
- 网络中断。