一种嵌入式微处理器的程序在线升级方法、装置及介质与流程

文档序号:27141022发布日期:2021-10-30 00:36阅读:241来源:国知局
一种嵌入式微处理器的程序在线升级方法、装置及介质与流程

1.本发明涉及一种程序升级方法,尤其是涉及一种嵌入式微处理器的程序在线升级方法、装置及介质。


背景技术:

2.嵌入式微处理器的程序是通过专有烧录软件加载hex文件或者bin文件,连接jlink工具或者其他烧录工具,采用在线或者离线式烧录,但一般需要派遣工作人员现场拆卸产品外壳,然后通过专用工具和软件对其进行在线烧录。
3.专利申请号202011412498.4的专利文献公开了一种基于tf卡升级mcu软件的方法、装置及系统,主要是通过接收软件升级指令,然后加载tf卡程序,对嵌入式微处理器进行程序升级。但此方法需要工作人员预先把程序存储在tf卡中,然后通过下发命令的方式进行程序升级。专利申请号202010326017.1的专利文献公开了一种mcu程序远程升级方法和系统,主要是通过通讯将更新的程序存入外设存储区,然后在通过把外设存储器的数据写入mcu内部存储器中,从而达到小容量mcu的程序更新的一种方法,但需要外挂一块ram或者eeprom存储需要更新的程序,然后再加载至mcu内部flash,进而进行程序升级。上述两个专利文献都存在嵌入式微处理器需要额外的存储设备临时存储更新的程序,成本高。


技术实现要素:

4.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种成本低的嵌入式微处理器的程序在线升级方法、装置及介质。
5.本发明的目的可以通过以下技术方案来实现:
6.第一方面,本发明提供一种嵌入式微处理器的程序在线升级方法,包括以下步骤:
7.s1、获取程序运行标志位状态,并根据该状态判断是否需要更新固件,若是,则执行步骤s2,若否,则直接运行程序;
8.s2、实时监听并接收程序更新固件,判断接收数量是否达到设定值,若是,则将接收的程序更新固件存储于临时变量中,执行步骤s4,若否,则执行步骤s3;
9.s3、判断接收动作是否完成,若是,则将接收的程序更新固件存储于临时变量中,若否,则返回步骤s2;
10.s4、判断接收动作是否完成,若是,则执行步骤s5,若否,则返回步骤s2;
11.s5、基于存储的程序更新固件更新程序,并更新程序运行标志位状态。
12.进一步地,所述临时变量采用flash。
13.进一步地,将接收的程序更新固件存储于临时变量中后,清除接收数据长度信息。
14.进一步地,所述设定值为2
n byte,n为9~12。
15.进一步地,所述设定值为2048byte。
16.进一步地,在程序被运行时执行步骤s5。
17.第二方面,本发明提供一种嵌入式微处理器的程序在线升级装置,包括:
18.状态判断模块,用于获取程序运行标志位状态,并根据该状态判断是否需要更新固件;
19.固件接收模块,在所述状态判断模块的判断结果为是时响应,用于实时监听并接收程序更新固件,对接收的程序更新固件按设定值分块存储于临时变量中,直到接收动作完成;
20.更新模块,基于存储的程序更新固件更新程序,并更新程序运行标志位状态。
21.进一步地,所述更新模块在接收到程序被运行时响应。
22.第三方面,本发明提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述嵌入式微处理器的程序在线升级方法的指令。
23.第四方面,本发明提供一种嵌入式微处理器系统,包括存储器和被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述嵌入式微处理器的程序在线升级方法的指令。
24.与现有技术相比,本发明具有以下有益效果:
25.1、本发明采用单次只需接收设定字节大小(如2048byte)升级程序的方式,就可以达到程序远程更新的目的,解决了嵌入式微处理器升级需要外挂tf卡等方式,有效解决了已有嵌入式微处理器的程序升级ram空间不足问题。
26.2、本发明可通过以太网等接口可以实现在线远程升级固件,降低了嵌入式微处理器程序升级硬件成本。
27.3、本发明采用远程升级,远程升级程序通过ram

flash的方法,ram循环接收远程升级程序并依次写入flash中,减少了其他多余的步骤,降低了升级过程中数据丢失错误的风险,提高了效率和程序更新的稳定性。
附图说明
28.图1为本发明的流程示意图。
具体实施方式
29.下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
30.实施例1
31.如图1所示,本实施例提供一种嵌入式微处理器的程序在线升级方法,包括以下步骤:
32.s1、获取程序运行标志位状态,并根据该状态判断是否需要更新固件,若是,则执行步骤s2,若否,则直接运行程序;
33.s2、实时监听并接收程序更新固件,判断接收数量是否达到设定值,若是,则将接收的程序更新固件存储于临时变量中,执行步骤s4,若否,则执行步骤s3,本实施例中的临时变量采用flash;
34.s3、判断接收动作是否完成,若是,则将接收的程序更新固件存储于临时变量中,
若否,则返回步骤s2;
35.s4、判断接收动作是否完成,若是,则执行步骤s5,若否,则返回步骤s2;
36.s5、基于存储的程序更新固件更新程序,并更新程序运行标志位状态。
37.进一步地,将接收的程序更新固件存储于临时变量中后,清除接收数据长度信息,为下一次数据长度累积做准备。
38.在步骤s2中,设定值为2
n byte,n为9~12。本实施例的设定值为2048byte,即本实施例的flash存储块一次性存储需2048byte的整数倍。
39.在步骤s5中,app程序运行后,判断是否有更新固件,若是,则基于存储的程序更新固件更新程序,并更新程序运行标志位状态。
40.上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
41.实施例2
42.本实施例提供一种嵌入式微处理器的程序在线升级装置,包括:状态判断模块,用于获取程序运行标志位状态,并根据该状态判断是否需要更新固件;固件接收模块,在所述状态判断模块的判断结果为是时响应,用于实时监听并接收程序更新固件,对接收的程序更新固件按设定值分块存储于临时变量中,直到接收动作完成;更新模块,基于存储的程序更新固件更新程序,并更新程序运行标志位状态。其余同实施例1。
43.实施例3
44.本实施例提供一种嵌入式微处理器系统,包括存储器和被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如实施例1所述嵌入式微处理器的程序在线升级方法的指令。
45.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1