FOTA常见问题

模组固件和业务脚本的升级方式有哪些

固件升级:差分升级、最小系统升级

脚本升级:app_fota升级、整包升级、全量升级

如何进行固件升级

  1. 使用QPYcom工具制作升级包。
  2. 上传升级包到服务器。
  3. 使用HTTP或FTP根据服务器的链接地址下载升级包写入设备并校验升级包。
  4. 升级包校验后需要重启模块,系统在设备重启之后自动进行OTA升级。
  5. 升级完成后,可通过modem.getDevFwVersion()查看固件版本。

更多详情请参考链接:[fota](fota - 固件升级相关功能 - QuecPython (quectel.com))

如何进行业务升级

  1. 上传目标文件到服务器。
  2. 通过HTTP根据服务器的链接地址下载待升级的目标文件到文件系统中。
  3. 设置升级标志记录是否要进行文件升级。
  4. 重启模块,重启后即可启动升级工作,同时清除升级标志。
  5. 升级完成后,可在文件系统分区查看升级后的目标文件。

更多详情请参考链接:[app_fota](app_fota - 用户文件升级相关功能 - QuecPython (quectel.com))

fota升级的机制是怎样的,能否保证升级失败后不会变砖,能否断电再上电后继续升级

  • fota升级机制:开始升级-下载目标包-下载成功-校验-校验成功-重启模块-升级成功。
  • 最小系统升级不可以保证,其他升级方式可以保证升级失败后不会变砖,因为最小系统是一边升级一边刷新固件分区,其他固件升级方式可以退回原来的模式所以不会变砖。
  • 断电分两种情况:
  1. 下载过程中断电:重新上电运行后需要调用升级接口重新触发下载,会从头开始下载。
  2. 升级过程中断电:可以记录升级标志和上次升级的位置,重新上电后继续上次的位置进行升级直到升级完成并重启。主要原理是:每次升级之前先备份正在升级的分区的原始固件内容,同时记录当前升级的偏移位置,下次上电后可以继续上次升级的位置进行升级。

什么情况下无法进行FOTA升级

  1. 新旧固件不是同一个基线的固件包。
  2. 内存空间不足。
  3. 升级地址错误。
  4. 最小系统不支持HTTPS升级。
  5. 网络中断。