固件空中升级方法、装置和植于处理器的软件架构制造方法及图纸

技术编号:37126112 阅读:27 留言:0更新日期:2023-04-06 21:24
本申请涉及一种固件空中升级方法、装置和植于处理器的软件架构。固件空中升级方法包括:获取待加载服务升级包内的映像文件;待加载服务升级包为服务器制作且储存于片外FLASH内;将映像文件存入片内ROM的业务层内对应的区域;片内ROM的业务层内包括为各类服务划分的一一对应的独立区域;加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务,避免传统技术对整个业务层删除再重写导致在升级过程中其他功能服务不能使用的问题,而实现固件升级过程中,其他功能服务仍然能够使用,由于本申请固件空中升级方法针对需要升级更新的服务或者新添服务,因此大大缩减了升级包的长度,在固件空中升级过程中,减少了对储存芯片的占用。减少了对储存芯片的占用。减少了对储存芯片的占用。

【技术实现步骤摘要】
固件空中升级方法、装置和植于处理器的软件架构


[0001]本申请涉及软件
,特别是涉及一种固件空中升级方法、装置和植于处理器的软件架构。

技术介绍

[0002]固件空中升级(Firmware Over The Air,FOTA)是指利用无线传输为具有连网功能的设备,提供固件升级的服务,以达到更迭产品功能的目的。传统升级方法采用以一片连续的ROM(Read

Only Memory,只读存储器)区域作为对象进行升级。对ROM空间地址划分为boot loader(引导加载程序)层、协议栈层、业务层,且每一层次的代码空间分配是连续的。由于业务层代码是实现设备的逻辑功能的区域,升级大部分情况只对业务层代码升级替换。
[0003]具体升级过程为将整块业务层代码进行打包制作成升级包,然后下发至设备,升级业务层代码时,设备需要先跳转至boot loader层引导启动升级,升级过程中会擦除整块业务层区域的代码,然后将接收到的升级包内容写回业务层中,最后跳转回业务层代码运行。
[0004]该升级方案特点是实现流程单一、易操作,但存在短板:用户在设备升级期间无法正常使用所有功能,原因是进入升级后,代码需要跳转到boot loader层引导升级,升级阶段下还会擦除整块业务层区域的代码,所以导致这个期间无法正常使用设备的业务,需等整个升级过程完成后,跳转回业务层才能正常使用。因此,在实现过程中,专利技术人发现传统技术中至少存在如下问题:传统固件空中升级技术在升级过程中导致设备功能无法正常使用。
>
技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够在加载新服务时保证其他功能服务能够正常使用的固件空中升级方法、装置和植于处理器的软件架构。
[0006]第一方面,本申请实施例从终端设备侧提供一种固件空中升级方法,包括以下步骤:
[0007]获取待加载服务升级包内的映像文件;待加载服务升级包为服务器制作且储存于片外FLASH内;
[0008]将映像文件存入片内ROM的业务层内对应的区域;片内ROM的业务层内包括为各类服务划分的一一对应的独立区域;
[0009]加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务。
[0010]可选的,加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务的步骤中,还包括步骤:
[0011]解析映像文件,得到映像文件内的代码段;
[0012]调用分散加载器对代码段进行重定位,转化成新版服务。
[0013]可选的,调用分散加载器对代码段进行重定位,转化成新版服务的步骤中,包括步骤:
[0014]调用分散加载器对新版服务对应的接口进行重定位;
[0015]调用分散加载器对新版服务对应的调用函数进行重定位;
[0016]调用分散加载器对新版服务对应的全局变量进行重定位。
[0017]可选的,加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务的步骤中,包括步骤:
[0018]将新版服务写入服务管理列表;
[0019]调用服务管理器对新版服务进行注册;
[0020]调用任务调度器创建新版服务对应的任务,并采用时间片轮询调度策略运行已有任务和新版服务对应的任务。
[0021]可选的,加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务的步骤之前,还包括步骤:
[0022]若存在与新版服务相对应的旧版服务,则删除旧版服务。
[0023]可选的,删除旧版服务的步骤中,包括步骤:
[0024]调用服务管理器注销旧版服务,并将旧版服务从服务管理列表中移除;
[0025]调用任务调度器注销旧版服务对应任务的任务接口。
[0026]可选的,获取待加载服务升级包内的映像文件的步骤中,包括步骤:
[0027]利用片外FLASH接收服务器下发的待加载服务升级包;
[0028]利用片外FLASH解析待加载服务升级包,得到待加载服务升级包内的映像文件。
[0029]第二方面,本申请实施例还从服务器侧提供一种固件空中升级方法,包括以下步骤:
[0030]获取待加载服务的代码;
[0031]采用交叉编译对待加载服务的代码进行编译,生成映像文件;
[0032]对映像文件进行封装,生成待加载服务升级包;
[0033]将待加载服务升级包通过TV端下发至终端设备;待加载服务升级包用于指示终端设备加载新版服务。
[0034]第三方面,本申请实施例还从终端设备侧提供一种固件空中升级装置,包括:
[0035]文件获取模块,用于获取待加载服务升级包内的映像文件;待加载服务升级包为服务器制作且储存于片外FLASH内;
[0036]对位存储模块,用于将映像文件存入片内ROM的业务层内对应的区域;片内ROM的区域为在片内ROM的业务层上为各类服务划分的独立区域;
[0037]加载运行模块,用于加载映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和新版服务。
[0038]第四方面,本申请实施例还从服务器侧提供一种固件空中升级装置,包括:
[0039]代码获取模块,用于获取待加载服务的代码;
[0040]编译模块,用于采用交叉编译对待加载服务的代码进行编译,生成映像文件;
[0041]封装模块,用于对映像文件进行封装,生成待加载服务升级包;
operating system,实时操作系统)任务调度器、服务管理列表、任务层、服务管理器、分散加载器、芯片级SDK以及数据库;其中,业务层包括按服务划分的独立服务模块,例如,划分成HID案件服务、语音服务、电池服务等,各独立服务模块之间是相互独立隔离,反应到硬件上,各独立服务模块一一对应地储存于处理器的片内ROM业务层内的独立区域(独立区域与独立区域之间在片内ROM的空间地址上是非连续的、非连接的),即各独立服务模块分别独立地储存在片内ROM业务层上时,在固件空中升级过程中,相互之间无关联,可单独针对一个或几个独立服务模块进行升级,而不造成对其它独立服务模块的影响。任务层为由任务调度器创建的与服务对应的任务,例如HID按键服务对应HID按键任务、语音服务对应语音任务、电池服务对应电池任务。数据库包括启动文件、调度器、库函数、片内外设和外挂驱动文件、芯片内部资源管理表。服务管理列表用于管理服务,注册服务。
[0058]以下将结合上述软件构架以及附图3和4,从终端设备侧对本申请固件空中升级方法的步骤进行详细说明,如图3所述,本申请固件空中升级方法包括以下步骤:
[0059]步骤S310,获取待加载服务升级包内的映像文件;待加载服务升级包为服务器制作且储存于片外FLASH内。
[0060]需要说明的是,待加载服务升级包由服务器根据待加载服务对应的代码制作而成。待加载服务升级包可用于对旧版服务进行本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种固件空中升级方法,其特征在于,包括以下步骤:获取待加载服务升级包内的映像文件;所述待加载服务升级包为服务器制作且储存于片外FLASH内;将所述映像文件存入片内ROM的业务层内对应的区域;所述片内ROM的业务层内包括为各类服务划分的一一对应的独立区域;加载所述映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和所述新版服务。2.根据权利要求1所述的固件空中升级方法,其特征在于,加载所述映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和所述新版服务的步骤中,包括步骤:解析所述映像文件,得到所述映像文件内的代码段;调用分散加载器对所述代码段进行重定位,转化成所述新版服务。3.根据权利要求2所述的固件空中升级方法,其特征在于,调用分散加载器对所述代码段进行重定位,转化成所述新版服务的步骤中,包括步骤:调用所述分散加载器对所述新版服务对应的接口进行重定位;调用所述分散加载器对所述新版服务对应的调用函数进行重定位;调用所述分散加载器对所述新版服务对应的全局变量进行重定位。4.根据权利要求2所述的固件空中升级方法,其特征在于,加载所述映像文件对应的新版服务,并采用时间片轮询调度策略调度已有服务和所述新版服务的步骤中,包括步骤:将所述新版服务写入服务管理列表;调用服务管理器对所述新版服务进行注册;调用任务调度器创建所述新版服务对应的任务,并采用时间片轮询调度策略运行所述已有任务和所述新版服务对应的任务。5.根据权利要求1所述的固件空中升级方法,其特征在于,将所述映像文件内的新版服务进行加载运行的步骤之前,还包括步骤:若存在与所述新版服务相对应的旧版服务,则删除所述旧版服务。6.根据权利要求5所述的固件空中升级方法,其特征在于,删除所述旧版服务的步骤中,包括步骤:调用服务管理器注销所述旧版服务,并将所述旧...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:惠州视维新技术有限公司
类型:发明
国别省市:

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

1