犬鸭肉干为什么要添加丙三醇 为什么食品里面添加丙三醇
2023-07-28
很多朋友对在线升级,|_物联网中的OTA升级原理不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。
从最新的固件方式来看,可以分为以下几类:01OTA升级1.1概念OTA:空中下载技术,即空中下载技术。OTA升级:通过OTA升级固件或软件。只要是通过无线通信升级的,都可以称为OTA升级,比如网络/蓝牙。通过有线方式升级称为本地升级,如通过UART、USB或SPI通信接口升级设备固件。
1.2优点1。通过OTA,可以升级分布在各地的设备的软件,而不用让运维人员到处跑。2.物联网平台支持通过OTA进行设备固件升级,是智能设备修复系统漏洞,实现系统升级的手段。
3.在快速变化和发展的物联网市场中,新产品的需求不断涌现,因此智能硬件设备的更新需求变得前所未有,设备不再是曾经销售的传统设备。用户可以通过固件升级提供更好的服务。1.3实现原理的核心流程:1。制作升级包2。正在下载升级包3。检查和签署升级包4。更新程序的下载模式:
无论是OTA升级还是有线通讯升级,升级包下载的模式都包括后台下载和非后台下载两种模式。后台下载:
升级时,新固件是在后台悄悄下载的,也就是新固件的下载是应用功能的一部分。在下载新固件的过程中,应用可以正常使用,即整个下载过程对用户不敏感。下载完成后,系统跳转到BootLoader程序,BootLoader完成用新固件覆盖旧固件的操作。比如智能手机以后台模式升级Android或iOS系统,在新系统下载过程中手机可以正常使用。非后台桌面下载:
升级时系统需要从应用程序跳转到BootLoader程序,BootLoader下载新的固件。下载完成后,BootLoader继续完成用新固件覆盖旧固件的操作,升级结束。以前的功能机使用非后台升级操作系统,即用户需要长时间按一些键才能进入bootloader模式才能升级,整个升级过程中无法使用手机的正常功能。新旧固件覆盖模式:
新固件更换旧固件覆盖有两种方式:双区模式和单区模式。双区模式:
在双区模式中,旧固件和新固件各自占据闪存中的一个存储体(存储区域)。假设旧固件放在bank0(运行区),新固件放在bank1(下载区)。升级时,应用程序会先将新固件下载到bank1。只有在新固件下载并验证成功后,系统才会跳转到BootLoader程序,然后擦除旧固件所在的bank0区域,并将bank1的新固件复制到bank0。桌面后下载必须在双区域模式下升级。
优点:如果升级过程中出现问题或者新固件出现问题,也可以选择旧固件系统继续执行,不受其影响。缺点:在系统资源紧张的情况下,占用flash空间的一个存储区域比较困难。单区模式:
单区模式下非后台桌面下载只有一个bank0(运行区),新旧固件共享这个bank0。升级时,进入bootloader程序后擦除旧固件,然后将新固件直接下载到同一银行。下载后检查新固件的有效性,新固件有效升级,否则要求重新启动。优点:与双区模式相比,单区模式在Flash空间上节省了一个bank,当系统资源紧张时,单区模式是一个不错的选择。缺点:
如果升级过程或新固件出现问题,单区模式只能停留在引导加载程序中,等待再次升级尝试。此时,设备的正常功能不能再使用。从用户的使用角度来看,这个时候可以说设备已经变成“砖头”了。相比较而言,双区模式牺牲了大量的存储空间,却带来了更好的升级体验。02MCU OTA升级
以MCU的固件升级为例,说明嵌入式裸机程序的OTA升级。因为裸机固件是固化在设备的内存(比如flash)中的,也就是机器码存储在内存中,所以MCU通过OTA固件升级,也就是通过OTA把内存中旧固件的机器码替换成新固件的机器码。数字签名签名:A发送消息给b,A先计算消息的消息摘要,然后用自己的私钥加密消息摘要。加密的消息摘要就是签名。
签名验证:B收到消息后,也会用和A一样的方法计算消息摘要,然后用A的公钥解密签名,和自己计算的消息摘要进行比较。如果相同,则说明A把消息发给了b,同时A也不能否认自己把消息发给b的事实(b)用A的公钥解密一个签名文件的过程称为‘签名验证’)密码学的基本概念:1 .什么是消息摘要?2.什么是非对称加密和解密?私钥和公钥?3.什么是数字签名?
数字签名的作用:确保数据的完整性、保密性和发送者不可否认的作用。消息摘要函数:MD4、 MD5、 sha-1、 sha-256、 sha-384、 sha-512数字签名算法:RSA、Rabin、ElGamal、DSA 2 .升级包的内容一般包括固件、头和签名值。固件:固件
标题信息。存储配置信息,如版本号和产品类型。签名值:签名值。签署固件和标头后的值。签名工具:上位机软件,可以计算固件的签名值,并将固件打包成升级包的格式。固件签名:上位机软件首先计算整个固件的消息摘要,用非对称密码的私钥对摘要进行加密。加密的消息摘要数据是签名值。固件签名的含义:
计算哈希值可以识别固件是否被篡改或伪装,保证固件的完整性。使用非对称密钥签名便于后续验证升级包身份的合法性。2.2根据上位机软件与MCU设备约定的通信协议下载升级包,上位机软件通过OTA将升级包发送给MCU设备,MCU设备收到数据后,根据通信协议解析升级包的数据,并将升级包的数据保存在内存中。通信协议的作用:
通信双方通常用于数据交换的格式。下载方式:1。应用下载:后台2。在BootLoader下载:非后台2.3检查并签署升级包。MCU设备收到所有升级包后,首先计算升级包中固件的摘要,然后用非对称密钥的公钥解密升级包的签名值。如果解密的固件摘要与其自身计算的相同,则检查和签名成功。
2.4 更新固件验签成功保证了固件的完整性和合法性后,MCU设备从应用程序进入BootLoader程序,在BootLoader程序中将flash中的新固件数据搬运到旧固件的存储区,将其覆盖。然后BootLoader程序启动固件运行,此时固件为新固件。
flash固件数据更新:擦除flash,写flash。
03Linux OTA升级
Linux系统的组成:
主要由三大部分组成,包括uboot(引导启动程序)、kernel(内核)和rootfs(根文件系统)。
三者在flash中的分区如下:
应用程序存放于rootfs。
Linux系统的启动流程:
3.1 系统升级Linux系统由uboot\kernel\rootfs三大部分组成,对Linux系统进行升级,也就是对flash中这三个分区的数据进行更新替换。
由于uboot\kernel\rootfs在flash分区中是以二进制数据存储的,与MCU固件在flash中存的是二进制数据一样,包括uboot\kernel\rootfs的升级文件也是以二进制数方式直接写入到对应的Flash分区。其升级方式与MCU固件的升级原理基本是一致的。
一般可在uboot中下载升级包来升级uboot\kernel\rootfs ,与MCU在BootLoader程序中完成升级类似。
3.2 应用程序升级在Linux系统中,应用程序是存放在文件系统中,并以可执行程序文件的方式存在,其在系统中就是文件,这与MCU固件存放在flash分区的方式不同。
应用程序的升级流程与MCU固件、Linux系统升级基本一致。应用程序的升级除了可以升级可执行文件外,还可以升级配置文件等。
应用程序升级流程:
制作升级包(打包签名工具)、下载升级包(下载工具)、升级包验签、程序更新
与MCU OTA升级区别:
制作升级包:将应用程序相关的文件(可执行程序、库文件、配置文件等)打包为压缩包
作为一个整体再进行签名。
升级包下载和验签通过后,将压缩包解压,可以得到应用程序的相关文件。
应用程序的更新,可以通过启动应用程序的程序来更新,如启动脚本、启动程序,类似MCU升级的BootLoader程序作用。
更新方式:
1.直接覆盖旧程序;
2.保留旧程序,执行新程序;
直接覆盖旧程序:
保留旧程序,执行新程序:
如ping\pong操作
04总结
OTA升级的核心:
以上知识分享希望能够帮助到大家!
版权声明:本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们
推荐阅读
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
2023-07-28
栏目热点
犬鸭肉干为什么要添加丙三醇 为什么食品里面添加丙三醇
LilyGoT手表键盘C3迷你电脑套件
索泰ZBOXEdgeCI342迷你电脑正式上市
谷歌在最新的视频预告片中展示了PixelWatch的独特设计
三星与设计师Juun.J合作推出限量版可折叠产品和配件
从2023年起Fitbit设备将需要Google帐户
TOKKCAMC2+智能WiFi独立日 夜视摄像头
三星正在与全球时尚品牌JUUN.J合作
OnePlusNordWatch的颜色选项通过泄露的渲染揭示
就在第一款Nothing手机发布之前一种新的TWS芽设计浮出水面