嵌入式设备固件代码升级流程及总结。

本文详细介绍了嵌入式设备固件代码的升级流程,包括Flash区域划分、升级步骤、校验和激活等关键环节。同时,讨论了Uboot作为启动加载器的角色及其在不同系统启动中的作用,以及如何获取和定制Uboot。
摘要由CSDN通过智能技术生成
嵌入式设备的程序是存在flash中的。

首先要明确flash区域的划分:

名称 地址
boot 0x0000 ~0x10000
应用层(app) 0x10000~ 0x80000

  • 升级的流程步骤:
    • step1: 下发升级使能的参数配置:根据通信下发的配置的参数判断要不要升级
    • step2: 上位机 获取ImageBlockSize(获取升级包的大小),这样上位机每帧数据可以传固定字节数的升级包
    • step3: 初始化升级过程,上位机下发的数据格式是包含两个元素的结构体, image_identifier和image_size。其中 image_identifier包含了配置文件(配置文件里面的数据就是上位机用来下发升级相关的参数的),主要包含:文件类型+对散列校验码加密的加密类型+ 校验类型+版本控制+ 散列校验码(当对散列校验码加密的加密类型) 。入伙文件类型为0xFD,加密类型位0x01,校验类型为0x01,版本控制为" VERSON001",散列校验码或散列校验码密文。重点: 上面所说的都是上位机下发下来的,下位机也就是嵌入式设备此时需要清除升级镜像和传输位图。
    • step4: 传输升级包:上位机每次下发的数据是包含2个元素的结构体:block num和update_data。下位机对刚接收到的第一帧升级数据,需要进行特殊处理下(要传升级包了,嵌入式设备总的准备下呀),往后的升级包,嵌入式设备只需要正常的保存下下发的升级包内容,更新下升级包的位图就可以了。
    • step5:检查升级包是否传输完成:上位机将升级包传输完成后,这时候要读下表里面的参数(也就是升级包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值