DA1458x bootloader在多个image存在时的判断条件
来源:互联网 发布:炉石淘宝买卡背 编辑:程序博客网 时间:2024/05/17 11:58
mkimage:
1.mkimage single
image.image_id(uint8_t) = 0xff;
2.mkimage multi
image1.image_id = 0x01;
image2.image_id = 0x00;
bootloader:
1.从0x1f000读product_header,解析出两个image在flash中的位置imageposition1 imageposition2;
2.从imageposition1 imageposition2读出两个image的imageHeader
3.判断两个image是否合法,如果只有image1有效,则将image1整个读入内存;
如果两个image都有效,则要判断哪个是新版本,判断条件如下:
if(image1.image_id==0xff && image2.image_id==0) image2;
if(image1.image_id==0 && image2.image_id==0xff) image1;
if(image1.image_id >= image2.image_id) image1;
else image2;
依上:
1.第一次mkimage multi生成的固件,启动后image1有效;(0x01>0x00)
另外,手机APP SUOTA使用时要注意:
1.BLE设备要使能diss profile,起码要在广播中添加diss标记,否则APP SUOTA不识别该BLE设备;
2.要更新的image_new.version要比image_old.version大(或者不同即可,待验证),否则APP在读完imageHeader后会报错:
Same Image Error
接着会断开连接,有些Android版本的软件在下载image时直接提示连接断开,基本上就是这个问题;
1.mkimage single
image.image_id(uint8_t) = 0xff;
2.mkimage multi
image1.image_id = 0x01;
image2.image_id = 0x00;
bootloader:
1.从0x1f000读product_header,解析出两个image在flash中的位置imageposition1 imageposition2;
2.从imageposition1 imageposition2读出两个image的imageHeader
3.判断两个image是否合法,如果只有image1有效,则将image1整个读入内存;
如果两个image都有效,则要判断哪个是新版本,判断条件如下:
if(image1.image_id==0xff && image2.image_id==0) image2;
if(image1.image_id==0 && image2.image_id==0xff) image1;
if(image1.image_id >= image2.image_id) image1;
else image2;
依上:
1.第一次mkimage multi生成的固件,启动后image1有效;(0x01>0x00)
2.第二次mkimage single 生成的待更新版本,使用suota下载到flash的image2位置后启动,image2有效;(0xff > 0x01)
3.如果再需要更新版本,新版本image1的image_id只需设置为0即可;
0xff>0xfe>...0x01>0>0xff>...
另外,手机APP SUOTA使用时要注意:
1.BLE设备要使能diss profile,起码要在广播中添加diss标记,否则APP SUOTA不识别该BLE设备;
2.要更新的image_new.version要比image_old.version大(或者不同即可,待验证),否则APP在读完imageHeader后会报错:
Same Image Error
接着会断开连接,有些Android版本的软件在下载image时直接提示连接断开,基本上就是这个问题;
1 0
- DA1458x bootloader在多个image存在时的判断条件
- 在SQLServer里面判断各种存在的条件
- javascript多个判断条件的改写
- 多个条件判断二进制的简化
- 判断某个条件的记录是否存在
- 如何判断多个字段组成的关键字在另外一张表中是否存在
- 如何判断多个字段组成的关键字在另外一张表中是否存在
- 在fl2440上烧写的第一个bootloader
- 多态存在的条件
- 定义 多个条件判断 组合 为一个判断条件 的方法
- js 判断多个时间段是否存在重叠的部分
- 排序需要多个判断条件的解决方法
- jstl 多个判断条件正确的写法
- flex的条件判断:存在即为true
- mongo 条件判断某个field是不是存在的$exists
- 多个条件判断语句实现方法
- sturts2标签判断多个条件
- 根据2个条件判断集合里面是否存在元素,用拉姆达表达式
- Leetcode --9
- opencv Mat创建图像
- Fiddler与Charles的特殊用途 一、Fiddle2(v2.4.2.6,windows) fiddler除了常规的替换http请求、模拟慢网速外,还有一些日常开发里能用到的特
- 正则表达式验证邮箱,身份证号码
- Android:30分钟弄明白Touch事件分发机制
- DA1458x bootloader在多个image存在时的判断条件
- JavaScript之Navigator对象(BOM)
- 文件传输
- python实现TF-IDF算法
- Git学习入门
- 静态作用域和块结构学习
- 如何使用RestTemplate访问restful服务
- php redis 扩展安装
- 关于ssm框架的整合步骤