System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 引导加载程序更新方法、微控制器及计算机可读存储介质技术_技高网

引导加载程序更新方法、微控制器及计算机可读存储介质技术

技术编号:41228418 阅读:13 留言:0更新日期:2024-05-09 23:45
本发明专利技术公开了一种引导加载程序更新方法、微控制器及计算机可读存储介质,所述引导加载程序更新方法包括以下步骤:在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址;基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域;将所述第一存储区域的地址设置为所述启动地址,并重启运行所述升级的引导加载程序,其中,所述数据包含所述升级的引导加载程序。通过以上方法,即使面对断电的场景也可以有效防止系统砖化。

【技术实现步骤摘要】

本专利技术涉及操作系统领域,尤其涉及引导加载程序更新方法、微控制器及计算机可读存储介质


技术介绍

1、在目前市场上主流的智能硬件产品包含微控制器单元(microcontroller unit,mcu)的芯片,大部分都支持固件升级。智能硬件中软件会包含两部分:引导加载程序(bootloader)+应用程序(application program,app),在实际应用中,使用bootloader对应用app进行升级。如果开发过程中bootloader存在bug,则往往通过app给bootloader进行升级,该过程会在应用中擦除原有的bootloader再写入新的bootloader,以实现升级的目的。倘若在这个过程中发生断电,则会使得系统陷入原有的bootloader无法执行且新的bootloader也未升级成功的境地,以至于影响系统的正常启动。

2、上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。


技术实现思路

1、本专利技术的主要目的在于提供一种引导加载程序更新方法、微控制器及计算机可读存储介质,旨在解决以往的bootloader的升级方式,倘若在这个过程中发生断电,则会使得系统陷入原有的bootloader无法执行且新的bootloader也未升级成功的境地,以至于影响系统的正常启动的技术问题。

2、为实现上述目的,本专利技术提供一种引导加载程序的更新方法、设备及计算机可读存储介质,所述引导加载程序的更新方法包括以下步骤:</p>

3、在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址;

4、基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域;

5、将所述第一存储区域的地址设置为所述启动地址,并重启运行所述升级的引导加载程序,其中,所述数据包含所述升级的引导加载程序。

6、可选地,所述将所述第一存储区域的地址设置为所述启动地址,并重启运行所述升级的引导加载程序的步骤之后,还包括:

7、基于所述引导加载程序检测应用程序是否需要进行更新;

8、在所述应用程序需要进行更新时,将所述第二存储区域擦除;

9、接收应用程序的更新文件并将所述更新文件写入所述第二存储区域;

10、在所述应用程序更新完成时,基于所述引导加载程序跳转运行所述应用程序。

11、可选地,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之后,还包括:

12、确定重启标志位存储的位置;

13、基于所述位置,将所述重启标志位设置为预设值,以指示系统进行重启;

14、在系统检测到所述重启标志位为所述预设值时,执行系统重启的操作。

15、可选地,所述在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址的步骤包括:

16、对所述第二存储区域进行擦除,并将所述引导加载程序的升级文件写入所述第二存储区域;

17、在所述升级文件验证通过时,获取所述第二存储区域的地址;

18、基于所述第二存储区域的地址,修改微控制器的引导加载程序配置寄存器,以将所述第二存储区域的地址修改为所述微控制器的启动地址。

19、可选地,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之前,还包括:

20、获取所述第二存储区域中引导加载程序的第一版本号,以及所述第一存储区域中引导加载程序的第二版本号;

21、判断所述第一版本号是否大于所述第二版本号;

22、在所述第一版本号不大于所述第二版本号时,向系统反馈更新错误的指令。

23、可选地,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤包括:

24、基于所述启动地址运行所述引导加载程序;

25、将所述引导加载程序的升级文件写入所述第一存储区域,并对所述数据进行完整性验证;

26、在验证通过时,基于所述升级文件更新所述第一存储区域中的引导加载程序。

27、可选地,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤还包括:

28、基于所述启动地址运行所述引导加载程序;

29、基于所述第二存储区域中的数据,生成对应的镜像文件;

30、在所述镜像文件验证通过时,将所述镜像文件写入所述第一存储区域。

31、可选地,所述在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址的步骤之前,还包括:

32、在接收到用户触发的更新指令时,确定所述第一存储区域的地址;

33、将所述第一存储区域的地址设置为启动地址;

34、基于所述启动地址,控制系统进行重启。

35、此外,为实现上述目的,本专利技术还提供一种微控制器,所述微控制器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的引导加载程序更新程序,所述引导加载程序更新程序配置为实现如上所述的引导加载程序更新方法的步骤。

36、此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有引导加载程序更新程序,所述引导加载程序更新程序被处理器执行时实现如上所述的引导加载程序更新方法的步骤。

37、本专利技术实施例通过提供一种引导加载程序更新方法、设备及计算机可读存储介质,在基于第一存储区域接收到升级的引导加载程序时,将升级的引导加载程序写入第二存储区域,并将第二存储区域的地址设置为启动地址,基于启动地址进行重启,运行第二存储区域中更新后的引导加载程序,并将第二存储区域的数据拷贝至第一存储区域,也就是将更新后的引导加载程序更新到第一存储区域中,将第一存储区域的地址设置为启动地址,并重启运行第一存储区域中升级后的引导加载程序。通过以上方法,即使面对断电的场景也可以有效防止系统砖化。

本文档来自技高网...

【技术保护点】

1.一种引导加载程序更新方法,其特征在于,所述引导加载程序更新方法包括以下步骤:

2.如权利要求1所述的引导加载程序更新方法,其特征在于,所述将所述第一存储区域的地址设置为所述启动地址,并重启运行所述升级的引导加载程序的步骤之后,还包括:

3.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之后,还包括:

4.如权利要求1所述的引导加载程序更新方法,其特征在于,所述在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址的步骤包括:

5.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之前,还包括:

6.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤包括:

7.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤还包括:

8.如权利要求1所述的引导加载程序更新方法,其特征在于,所述在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址的步骤之前,还包括:

9.一种微控制器,其特征在于,所述微控制器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的引导加载程序更新程序,所述引导加载程序更新程序配置为实现如权利要求1至8中任一项所述的引导加载程序更新方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有引导加载程序更新程序,所述引导加载程序更新程序被处理器执行时实现如权利要求1至8任一项所述的引导加载程序更新方法的步骤。

...

【技术特征摘要】

1.一种引导加载程序更新方法,其特征在于,所述引导加载程序更新方法包括以下步骤:

2.如权利要求1所述的引导加载程序更新方法,其特征在于,所述将所述第一存储区域的地址设置为所述启动地址,并重启运行所述升级的引导加载程序的步骤之后,还包括:

3.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之后,还包括:

4.如权利要求1所述的引导加载程序更新方法,其特征在于,所述在基于第一存储区域接收到升级的引导加载程序时,将所述升级的引导加载程序写入第二存储区域,并将所述第二存储区域的地址设置为启动地址的步骤包括:

5.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启动,运行第二存储区域中的所述引导加载程序,并将所述第二存储区域的数据拷贝至所述第一存储区域的步骤之前,还包括:

6.如权利要求1所述的引导加载程序更新方法,其特征在于,所述基于所述启动地址启...

【专利技术属性】
技术研发人员:马君宝张翀钟卓如
申请(专利权)人:深圳鳍源科技有限公司
类型:发明
国别省市:

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

1