【技术实现步骤摘要】
嵌入式设备的固件升级方法、装置、芯片和计算设备
[0001]本专利技术涉及嵌入式
,具体涉及一种嵌入式设备的固件升级方法
、
装置
、
芯片和计算设备
。
技术介绍
[0002]嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求
(
功能
、
可靠性
、
成本
、
体积
、
功耗
、
环境等
)
灵活裁剪软硬件模块的专用计算机系统
。
由于嵌入式系统具有便利灵活
、
性价比高
、
嵌入性强等特点,其在各个领域得到了广泛应用,例如目前快速发展的物联网领域和可穿戴式智能设备领域
。
嵌入式系统通常也被称为嵌入式设备,通常将嵌入式设备中的软件称为固件,固件根据其功能划分为引导程序
、
应用程序和程序资源
。
固件通常存储于嵌入式设备的可擦写非易失性存储器,例如芯片内 ...
【技术保护点】
【技术特征摘要】
1.
一种嵌入式设备的固件升级方法,用于从外部设备获取升级文件进行固件升级,其特征在于,所述升级文件包括前级装载程序和后级装载程序;所述方法包括:步骤
S200
,从所述外部设备获取所述前级装载程序,并将至少部分前级装载程序存储在可擦写非易失性存储器中;步骤
S400
,将所述前级装载程序加载至
RAM
;步骤
S600
,在所述
RAM
中运行所述前级装载程序,以从所述外部设备获取所述后级装载程序,并将所述后级装载程序加载至所述
RAM
中;步骤
S800
,在所述
RAM
中运行所述后级装载程序,以更新所述嵌入式设备的固件
。2.
根据权利要求1所述的方法,其特征在于,所述前级装载程序包括第一装载程序和第二装载程序;所述步骤
S200
包括:步骤
S210
,从所述外部设备获取所述第一装载程序,并将所述第一装载程序存储在所述可擦写非易失性存储器中;步骤
S220
,运行所述第一装载程序,以从所述外部设备获取所述第二装载程序;所述步骤
S400
包括:将所述第二装载程序加载至所述
RAM
;所述步骤
S600
包括:在所述
RAM
中运行所述第二装载程序,以从所述外部设备获取所述后级装载程序,并将所述后级装载程序加载至所述
RAM
中
。3.
根据权利要求2所述的方法,其特征在于,所述第一装载程序由通信接口代码和第一加载代码组成,其中,所述通信接口代码用于实现所述嵌入式设备和所述外部设备的通信接口,所述第一加载代码用于通过所述通信接口从所述外部设备获取所述第二装载程序
。4.
根据权利要求1所述的方法,其特征在于,所述步骤
S200
包括:从所述外部设备获取所述前级装载程序,并将全部的所述前级装载程序存储在所述可擦写非易失性存储器中
。5.
根据权利要求1所述的方法,其特征在于,所述步骤
S200
之后,所述方法还包括:在所述
RAM
中设置标志位,其中,所述标志位在掉电时会被删除;所述步骤
S600
包括:步骤
S610
,运行引导程序,以判断所述
RAM
中是否存在标志位;步骤
S620
,若所述引导程序判断所述
RAM
中存在标志位,在所述
RAM
中运行所述前级装载程序,以从所述外部设备获取所述后级装载程序,并将所述后级装载程序加载至所述
RAM
中,删除所述标志位;步骤
S630
,若所述引导程序判断所述
RAM
中不存在标志位,引导所述嵌入式设备正常启动
。6.
根据权利要求1所述的方法,其特征在于,所述嵌入式设备的固件包括引导程序
、
应用程序
、
程序资源中的一个或多个,所述后级装载程序包括按顺序排列的
N
个子装载程序,其中
N
为正整数,
N≥1
,每个子装载程序分别用于更新所述嵌入式设备中与其对应的固件;所述步骤
S600
包括:在所述
RAM
中运行所述前级装载程序,以从所述外部设备获取第
i
个子装载程序,并将所述第
i
个子装载程序加载至所述
RAM
中,其中
i
为正整数,
1≤i≤N
,
i
的初始值为1;所述步骤
S800
包括:在所述
RAM
中运行所述第
i
个子装载程序,以从所述外部设备的所述升级文件中获取与所述第
i
个子装载程序对应的第
i
个固件的升级数据从而更新该固件;
所述步骤
S800
之后,所述方法还包括步骤
S1000
:对
i
自加1并转至步骤
S600
,直至
i
=
N。7.
根据权利要求6所述的方法,其特征在于,所述可擦写非易失性存储器的记录区域记录有当前升级进度,所述步骤
S600
包括:在所述
RAM
中运行所述前级装载程序,以根据所述记录区域记录的当前升级进度从所述外部设备获取相应的第
i
个子装载程序,并将该第
i
个子装载程序加载至所述
RAM
中,其中,相应的第
i
个子装载程序为所述当前升级进度下所需执行的下一操作步骤用于升级的第
i
个固件所对应的子装载程序;所述步骤
S800
包括:步骤
S810
,在所述
RAM
中运行所述第
i
个子装载程序,根据所述记录区域记录的当前升级进度,若当前升级进度为第
i
个固件擦除成功,则执行步骤
S830
;若当前升级进度为第
i
个固件写入成功,则执行步骤
S840
;若当前升级进度为无升级状态,则执行所述步骤
S820
;若当前升级进度为第
i
个固件升级成功,则执行步骤
S1000
;步骤
S820
,擦除所述可擦写非易失性存储器中存储的与所述第
i
个子装载程序对应的第
i
个固件,并在所述可擦写非易失性存储器的记录区域记录当前升级进度为第
i
个固件擦除成功;步骤
S830
,从所述外部设备的所述升级文件中获取该固件的升级数据,将该固件的升级数据存储至所述可擦写非易失性存储器,并在所述记录区域记录当前升级进度为第
i
个固件写入成功;步骤
S840
,若校验该固件升级成功,在所述记录区域记录当前升级进度为第
i
个固件升级成功;若校验该固件升级失败,在所述记录区域记录当前升级进度为该固件擦除成功的前一升级进度,所述前一升级进度为第
(i
‑
1)
个固件升级成功或无升级状态
。8.
根据权利要求6所述的方法,其特征在于,所述后级装载程序还包括
N
个校验程序,校验程序与子装载程序一一对应,每个校验程序在所述后级装载程序中的排列顺序位于与该校验程序对应的子装载程序之后;所述步骤
S800
之后所述步骤
S1000
之前,所述方法还包括:步骤
S910
,在所述
RAM
中运行所述前级装载程序,以根据所述后级装载程序中程序的排列顺序,从所述外部设备获取与所述第
i
个子装载程序对应的第
i
个校验程序,并将...
【专利技术属性】
技术研发人员:姚棉鸿,凌煊峰,李福勇,
申请(专利权)人:珠海市杰理科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。