System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于STM32的改进Bootloader进行IAP升级的方法技术_技高网

一种基于STM32的改进Bootloader进行IAP升级的方法技术

技术编号:41063671 阅读:4 留言:0更新日期:2024-04-24 11:16
本申请提出一种基于STM32的改进Bootloader进行IAP升级的方法,属于信息处理技术领域,在RAM中创建execution region字段来实现在程序的运行,所述execution region字段为operation_context,所述operation_context由Bootloader和Application分别定义在相同的.bss.NoInit字段的相同地址中,在Bootloader和Application进行相互跳转时保存的相关参数不会被初始化;operation_context的配置信息包括为固件启动、固件升级、固件异常,当配置信息部位上述信息时判断为初次启动,将operation_context的配置信息设置为固件启动。申请解决了Bootloader引导程序占用资源过多的问题,同时可以降低Flash的读写次数,延长了Flash的使用寿命。

【技术实现步骤摘要】

本专利技术涉及一种基于stm32的改进bootloader进行iap升级的方法,属于信息处理。


技术介绍

1、在现有的bootloader技术中,通常采用的技术方案有:

2、1.通过在flas h中创建配置信息区域来完成在applicatio n固件升级,完成升级后跳转到bootloader时,将进行相关信息的存储;

3、2.通过在bootloade r中集成iap或ota的升级代码来实现在applicatio n中触发固件升级时跳转到bootloader实现升级。

4、现有技术中存在的缺点:

5、1.在flas h中创建配置信息区域的方案中,flas h的分区的最小单位是扇区,在stm3 2中扇区的大小通常是1kbyte s或者是2kbyte s,bootloade r的配置信息区通常不需要这么大的空间导致了空间的浪费,并且flas h的擦除的最小单位是扇区,如果在配置信息区存储其他数据,在修改bootlaode r的配置信息时会一同擦除,其他数据需要读取、擦除再写入,比较繁琐并且flash对于扇区擦除的速度比较慢,降低整个系统升级的性能;

6、2.在bootloade r中集成iap或ota的升级代码方案中,需要在开发bootloade r时完成ia p或ota升级的代码,在产品发布之后需要修改应用程序升级的方式不光需要修改applicatio n还需要同步修改bootloade r,同时由于包含了ia p或ota升级的代码,bootloader会占用很大一部分应用程序的存储空间。

7、市场亟需一种在系统或固件升级时减少或不需对bootloader的覆写或修改,仅需要读取相关指令,这样既保证了系统可以及时得到更新换代,还不用频繁的刷新或修改bootloader重新启动系统,使得系统减少了对flash的覆写损耗,延长了使用寿命,还始终保持有一个纯净稳定的引导系统。

8、以医用eit(电阻抗断层成像)设备为例,eit与ct的功能相似,都可以实现对肺部的成像,但做ct,必须将患者转运到ct室,eit可以动态连续地显示肺部功能变化的区域,

9、相对灵活,可以放在患者床边,把电极片绑在患者的胸部,随时完成肺部的成像,需要保持eit设备的供电的连续性和稳定性,不能因为需要硬件升级就将设备重启。


技术实现思路

1、针对上述现有技术的不足,本专利技术的目的在于提供一种基于stm32的改进bootloader进行iap升级的方法。

2、根据本专利技术的实施方案,提供的方案为:

3、一种基于stm32的改进bootloader进行iap升级的方法,包括,

4、在ram中创建execution region字段来实现在程序的运行,

5、所述execution region字段为operation_context,由bootloader和application分别定义;

6、所述operation_context由bootloader和application分别定义在相同的.bss.noinit字段的相同地址中,在bootloader和application进行相互跳转时保存的相关参数不会被初始化;

7、operation_context的配置信息可以为固件启动、固件升级、固件异常,当配置信息不为上述信息时判断为初次启动,将operation_context的配置信息设置为固件启动。

8、进一步地,当operation_context判断为固件启动方式,则跳转到application应用程序分区执行;

9、在设备application进行了iap或ota升级之后,将operation_context的配置信息调整为固件升级模式并重启设备;

10、bootloader通过operation_context的配置信息对下载分区中的固件进行crc校验,如果校验失败则判定此次的应用固件升级失败,直接修改operation_context的配置信息为启动模式正常启动上一次的应用程序,如果校验成功,则清除应用固件分区,将下载分区中的新固件复制到应用分区中,设置operation_context为固件启动模式触发重启;

11、在应用固件的运行中出现了无法挽回的错误,此时application将operation_context设置为固件异常然后触发重启,bootloader在接收到operation_context为固件异常后会进行恢复出厂固件的操作然后进行重启,保证设备的正常的运行状态。

12、进一步地,固件启动的条件判断优先级高于bootloader相关驱动初始化的优先级,避免在跳转到application之后运行的环境遭到破坏。

13、进一步地优化方案为,将application应用固件分区进行分类,对不同功能组件的应用模块进行分区存储,

14、将factory恢复出厂设置分区,application应用固件分区中各个不同功能组件分区的应用模块和download下载分区的地址和文件信息存储在module information内,各个分区的内容依次存储在module sector1,module sector2……内。

15、进一步地,在execution region字段还包括module_context,module_context字段由bootloader定义在module_information当中,在bootloader启动后会先进行设备的基本功能初始化,然后读取module_information中的配置信息module_context,在对每个进行crc完整性校验,确保模块没有被篡改或损坏;

16、通过验证的模块以动态加载的形式加载到应用程序当中,各个不同的应用模块组成一个完整的应用程序;

17、在程序正常运行的过程中,如果存在模块需要进行iap或ota升级,bootloader会先对该模块进行卸载,然后在进行双bank分区的备份,随后对该模块进行iap或ota升级,升级结束后,在将该模块动态加载到应用程序中。

18、再进一步地优化方案为,存储介质包括内部flash和外部存储介质,内部的flash主要用于存储bootloader和核心业务application和factory,外部flash用来存储业务的应用组件和download的信息,应用组件以elf文件格式进行保存,将download为iap或ota升级下载分区也设置在外部flash,同样使用elf文件格式进行保存,在bootloader启动时,会先将外部flash同时挂在到文件系统当中,通过文件系统可以获取当前外部flash存储的所有应用组件;

19、bootloader通过检索当前文件管理系统中的所有的文件获取当前应用程序所支持的所有组件信息,并通过内部设定的函数指令完本文档来自技高网...

【技术保护点】

1.一种基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,

2.根据权利要求1所述的基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,

3.根据权利要求2所述的基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,

4.根据权利要求1所述的基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,

5.根据权利要求4所述的基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,

6.根据权利要求4所述的基于STM32的改进Bootloader进行IAP升级的方法法,其特征在于,包括:

7.根据权利要求6所述的基于STM32的改进Bootloader进行IAP升级的方法,其特征在于,包括:

【技术特征摘要】

1.一种基于stm32的改进bootloader进行iap升级的方法,其特征在于,

2.根据权利要求1所述的基于stm32的改进bootloader进行iap升级的方法,其特征在于,

3.根据权利要求2所述的基于stm32的改进bootloader进行iap升级的方法,其特征在于,

4.根据权利要求1所述的基于stm32的改进bootloader...

【专利技术属性】
技术研发人员:曹晋
申请(专利权)人:上海融易迈医疗健康科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1