一.前言
在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。为了快速响应市场需求,一个技术变得极为重要,即OTA空中下载技术。
物联网平台支持通过OTA方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段,通过固件升级用户提供更好的服务。OTA固件升级功能不仅能够更新固件,而且还能重新配置片上硬件资源。同时,设备固件可通过OTA固件升级流程获得更新的补丁和更多安全算法防范病毒攻击。
二.什么是OTA升级
通过OTA方式实现固件或软件的升级;
只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网络/蓝牙。
那什么是有线升级呢,也叫做本地升级,比如我们平时为电脑装系统,就是提前将系统下载到U盘上,再通过USB连接连接到电脑上进行电脑系统升级,也就是说通过UART,USB或者SPI通信接口来升级设备固件就叫做有线升级;
三.OTA升级流程
四.Linux OTA升级
Linux系统的组成:
主要由三大部分组成,包括uboot(引导启动程序)、kernel(内核)和rootfs(根文件系统)。
三者在flash中的分区如下:
应用程序存放于rootfs。
Linux系统的启动流程:
系统升级:
Linux系统由uboot\kernel\rootfs三大部分组成,对Linux系统进行升级,也就是对flash中这三个分区的数据进行更新替换。
由于uboot\kernel\rootfs在flash分区中是以二进制数据存储的,与MCU固件在flash中存的是二进制数据一样,包括uboot\kernel\rootfs的升级文件也是以二进制数方式直接写入到对应的Flash分区。其升级方式与MCU固件的升级原理基本是一致的。
一般可在uboot中下载升级包来升级uboot\kernel\rootfs ,与MCU在BootLoader程序中完成升级类似。
更新方式:
1.直接覆盖旧程序;
2.保留旧程序,执行新程序;
直接覆盖旧程序:
保留旧程序,执行新程序: