一种BootLoader程序更新方法技术

技术编号:26530613 阅读:24 留言:0更新日期:2020-12-01 14:09
本发明专利技术提供一种BootLoader程序更新方法,属于嵌入式系统设计技术领域。该方法包括:(1)处理器与上位机建立通信连接,并运行当前的BootLoader程序;(2)由当前的BootLoader程序从上位机下载BootLoader下载程序,并将BootLoader下载程序存储到RAM中的预定区域;(3)跳转到所述BootLoader下载程序的入口地址,执行所述BootLoader下载程序;(4)BootLoader下载程序从上位机下载BootLoader目标程序到Flash中的BootLoader区域。本发明专利技术通过与上位机建立通信连接,从上位机下载BootLoader目标程序实现对BootLoader程序的更新,由于无需对嵌入式系统的外壳进行拆卸,也无需专门的调试工具下载BootLoader目标程序,具有操作方便简捷的优点。

【技术实现步骤摘要】
一种BootLoader程序更新方法
本专利技术涉及一种BootLoader程序更新方法,属于嵌入式系统设计

技术介绍
嵌入式系统从软件角度通常可分为三个层次:引导加载程序(即BootLoader程序)、操作系统和应用程序。其中,嵌入式系统上电或复位时通常从首选启动地址开始执行,而这个地址处存储的就是BootLoader程序,即BootLoader程序是嵌入式系统上电或复位后运行的第一段软件代码,在它完成操作系统硬件的初始化之后,就从次级启动地址执行,将固化的嵌入式应用程序加载到内存(RAM)中,并跳转过去运行。大多数BootLoader程序包含两种不同的操作模式:启动加载模式和下载模式。启动加载模式下,BootLoader程序从目标机上的Flash类固态存储设备上将操作系统或应用程序加载到RAM中运行;下载模式下,BootLoader程序通过串口连接或网络连接等通信手段从主机下载文件,然后将下载的文件写到目标机上的Flash类固态存储设备中。汽车嵌入式控制系统中的BootLoader程序同样能够引导控制系统运行应用程序和对应用程序进行更新。其中,应用程序的更新可以利用CAN总线等外部总线通过上位机或远程模块进行更新,BootLoader程序的更新则一般需要将控制系统的外壳打开,然后利用调试工具下载BootLoader目标程序进行更新,操作十分不便。
技术实现思路
本专利技术的目的是提供一种BootLoader程序更新方法,用以解决利用现有的BootLoader程序更新方法对BootLoader程序进行更新时,操作十分不便的问题。为实现上述目的,本专利技术提供了一种BootLoader程序更新方法,该方法包括以下步骤:(1)处理器与上位机建立通信连接,并运行当前的BootLoader程序;(2)由当前的BootLoader程序从上位机下载BootLoader下载程序,并将BootLoader下载程序存储到RAM中的预定区域;(3)跳转到所述BootLoader下载程序的入口地址,执行所述BootLoader下载程序;(4)BootLoader下载程序从上位机下载BootLoader目标程序到Flash中的BootLoader区域。本专利技术的有益效果是:通过与上位机建立通信连接,从上位机下载BootLoader目标程序实现对BootLoader程序的更新,由于无需对嵌入式系统的外壳进行拆卸,也无需专门的调试工具下载BootLoader目标程序,具有操作方便简捷的优点。进一步地,该方法还包括步骤(5)重启处理器的步骤。在重启处理器后,更新后的BootLoader程序即可生效。为了提高BootLoader程序更新进程的可控性,进一步地,所述步骤(3)中,在接收到上位机的指令后才进行跳转。为了建立上位机与处理器之间的通信连接,进一步地,所述上位机通过总线与处理器建立通信连接。为了提高数据通信的实时性,进一步地,所述总线为CAN总线。附图说明图1是现有技术中处理器的存储空间分配示意图;图2是本专利技术的BootLoader程序更新流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例对本专利技术进行进一步详细说明。如图1所示,处理器(例如ARM处理器)的存储空间分为RAM区域(以下简称RAM)、空地址区域和Flash区域(以下简称Flash)。其中,RAM又进一步划分为数据区域和BootLoader下载区域(即用于存储BootLoader下载程序的RAM中的预定区域);Flash又进一步划分为BootLoader区域(用于存储BootLoader程序)、未使用区域和应用程序区域(用于存储应用程序)。其中,BootLoader下载程序从BootLoader下载程序的入口地址处开始执行,BootLoader程序从首选启动地址处开始执行,应用程序从次级启动地址处开始执行。本实施例的BootLoader程序更新流程如图2所示,处理器与上位机建立通信连接,并运行当前的BootLoader程序;在需要进行BootLoader更新时(例如接收到BootLoader程序更新指令时),先判断是否满足下载条件(如网络连接是否正常),若满足下载条件则由当前的BootLoader程序从上位机下载BootLoader下载程序;判断存储地址是否属于RAM,若是,则将BootLoader下载程序存储到RAM中的预定区域;校验下载是否有效,若有效,则跳转到BootLoader下载程序的入口地址,即可开始执行BootLoader下载程序;BootLoader下载程序从上位机下载BootLoader目标程序到Flash中的BootLoader区域;校验下载是否有效,若有效,则重启处理器,完成对BootLoader程序的更新;若无效,则重新下载BootLoader目标程序。本实施例中,当判断出下载有效时,就跳转到BootLoader下载程序的入口地址;作为其他实施方式,还可以在接收到上位机的特定指令后才进行跳转,从而提高BootLoader程序更新进程的可控性。本实施例中,上位机通过CAN总线与处理器建立通信连接;作为其他实施方式,上位机还可以通过其他类型的串行总线(例如SPI总线)与处理器建立通信连接。本文档来自技高网...

【技术保护点】
1.一种BootLoader程序更新方法,其特征在于,该方法包括以下步骤:/n(1)处理器与上位机建立通信连接,并运行当前的BootLoader程序;/n(2)由当前的BootLoader程序从上位机下载BootLoader下载程序,并将BootLoader下载程序存储到RAM中的预定区域;/n(3)跳转到所述BootLoader下载程序的入口地址,执行所述BootLoader下载程序;/n(4)BootLoader下载程序从上位机下载BootLoader目标程序到Flash中的BootLoader区域。/n

【技术特征摘要】
1.一种BootLoader程序更新方法,其特征在于,该方法包括以下步骤:
(1)处理器与上位机建立通信连接,并运行当前的BootLoader程序;
(2)由当前的BootLoader程序从上位机下载BootLoader下载程序,并将BootLoader下载程序存储到RAM中的预定区域;
(3)跳转到所述BootLoader下载程序的入口地址,执行所述BootLoader下载程序;
(4)BootLoader下载程序从上位机下载BootLoader目标程序到Flash中的BootLoader区域。

【专利技术属性】
技术研发人员:楚金甫赵心刘亚闯梁法明顾帅旗张莉莉
申请(专利权)人:河南森源电动汽车有限公司森源汽车股份有限公司
类型:发明
国别省市:河南;41

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

1